Forum: Mikrocontroller und Digitale Elektronik AVR Prob - Ausgang geht nur auf 700mV bei High Pegel


von Dominik Schmidt (Gast)


Lesenswert?

Moin !

Ich bastele da gerade an einer Schaltung mit einem AVR AT90S2313. Und
zwar versuche ich das RC-CAM System (http://www.rc-cam.com/) auf einen
AVR zu übertragen. Soweit so gut ich habe auch schon fast alles am
rennen. Aber eine Sache macht mir Stress ...

Vielleicht kurz was zu meinem Aufbau und meinem Equipment ...
Ich verwende wie gesagt einen AT90S2313 mit angeklemmten MAX232 für
Debugging.
Dann habe ich eine GSmart Mini 3 Kamera. Das ist so ein Teilchen hier:
http://www.mustek.de/ger_/img/produkte/gsmini3.jpg

So, dann habe ich am AVR die PINs 6-8 für die Kameraansteuerung
genommen.
Pin 6 (PD2) - Ausgang - Kamera einschalten
Pin 7 (PD3) - Ausgang - Bild schießen
Pin 8 (PD4) - Eingang - prüfen ob Cam an oder aus ist

Diese Aus-/Eingänge sind über 330Ohm Widerstände mit der Kamera
verbunden (an den entsprechenden Tastern / Stellen).

Über Pin 12 (PB0) werte ich das Signal der Fernsteuerung / Empfänger
aus. Das klappt auch einwandfrei.

So, nun mache ich folgendes:
- PD2 auf High setzen für ca. 100ms -> die Kamera schaltet ein
- PD3 auf High setzen für ca. 100ms -> Foto wird gemacht
Wenn ich nun die Kam wieder ausschalten möchte, dann muss ich PD2
nochmals für 100ms auf High setzen (das entspricht dann dem Druck auf
den Ein / Austaster). Hier passiert aber nüx. Die Kam bleibt stur an.
Sie geht erst nach 60 Sekunden von selber aus. Jetzt kann ich die Kam
auch nicht mehr einschalten.

Ok, ich habe dann mal an dem Pin nachgemassen was denn da so an
Spannung anliegt. Und wie ich mit Erschrecken feststellen musste waren
es nur ~700mV. Das da nix an- / oder ausgeht ist logisch...
Nun stellt sich mir aber die Frage, warum ist da so eine geringe
Spannung? Ich kann mir nicht vorstellen das da ein so großer Strom
fließt, dass die Spannung so einbricht. Zumal auch noch die 330Ohm
Widerstände in der Leitung hängen. Und beim ersten Einschalten habe ich
ja auch sauber die 5V auf dem Portpin.

Mitlerweile habe ich noch zwei Änderungen gemacht. Cam und µC werden
jetzt von der gleichen Spannungsquelle gespeist (~4,4V). Weiterhin
setze ich den PortPin für das An- und Abschalten der Kam nicht mehr auf
Low sondern ich ändere den Pin vom Ausgang zum Eingang. Dadurch hat er
dann einen Tri-State Status. Der Code dazu schaut so:
Sub Kamera_an_aus
  Config Pind.2 = Output             'rechts am Board
  Set Portd.2
  Waitms 2000
  Config Pind.2 = Input              'Input = TriState Status !
End Sub

Kann mir jemand einen Tip geben, wie ich das nun in den Griff kriege?
Evtl. einen Transistor als Schalter verwenden ?!

von Thomas K. (thkais)


Lesenswert?

Hast Du die 700mV direkt am µController-Pin gemessen? Falls ja, dann ist
da garantiert etwas mit der Portdefinition faul, denn selbst, wenn die
Kamera den Eingang aus irgendeinem unerfindlichen Grund auf Low legen
sollte, würden durch den 3300 Ohm-Widerstand die 5V am Port-Pin
durchkommen. Ich tippe mal auf Softwarefehler.
Übrigens ist der Port bei der Konfiguration, wie Du sie in dem
Programmschnipsel machst, nicht Tristate, sondern Du schaltest den
Pull-Up Widerstand ein. Du müßtest zusätzlich eine "0" auf dem
Port-Pin ausgeben, um einen echten Tristate zu bekommen.

von Dominik Schmidt (Gast)


Lesenswert?

Moin !

Also so ??

Sub Kamera_an_aus
  Config Pind.2 = Output             'rechts am Board
  Set Portd.2
  Waitms 2000
  Config Pind.2 = Input              'Input = TriState Status !
  Reset Portd.2           '<<< so auf Null setzen?
End Sub

Grüße Dominik

von Dominik Schmidt (Gast)


Lesenswert?

Moin !

So ich habe das ganze mal auf das Minimum reduziert ...
Mit diesem Code passiert folgendes:
- Kamera geht an
- nach 5 Sekunden geht die Kamera aber nicht aus
- wenn die Kamera selber ausgegangen ist, geht sie zumindest schon mal
wieder an. Also schon mal ein Schritt in die richtige Richtung.

Hier der Code:
'----------------------------------------------------------------------- 
-----
'        Kamera an / aus
'----------------------------------------------------------------------- 
-----
$regfile = "2313def.dat"
$crystal = 8000000
$baud = 9600

Declare Sub Kamera_an_aus

' PD2 / Pin 6 = OUTPUT -> Cam einschalten    kurz auf High dann wieder
Low
Config Pind.2 = Input                                       'rechts am
Board

Do
  Kamera_an_aus
  Wait 5
  Kamera_an_aus
  Wait 5
Loop
End
'Programmende

Sub Kamera_an_aus
  Config Pind.2 = Output                                    'rechts am
Board
  Set Portd.2
  Waitms 100
  Config Pind.2 = Input                                     'Input =
TriState Status !
  Reset Portd.2
End Sub

Greetz Dominik

von Rolf Magnus (Gast)


Lesenswert?

@Thomas Kaiser (thkais)

Wie kommst du auf 3300 Ohm? Da steht 330. Das wären bei 5V im Falle
eines Kurzschlusses immerhin schon 15 mA. Ich kenne die AT90er-Reihe
nicht. Schaffen deren Ausgänge soviel Strom?

@Dominik

Hab ich das richtig verstanden, daß du einfach nur die Portpins an die
Leitungen der Taster der Kamera angeschlossen hast? Bist du dir denn
sicher, daß du die einfach so mit Logikpegeln gesteuert werden müssen
und du beim ein/aus auch den richtigen Anschluß erwischt hast?

von Thomas K. (thkais)


Lesenswert?

Ups - 330Ohm - da habe ich das "O" als "0" gelesen. Man sollte doch
wieder zur Schreibweise mit dem Querstrich durch die "0"
zurückgehen.

@Magnus: Wie Du schon vermutest, können die "alten" Atmels nicht
besonders viel sourcen.
Auch der Einwand mit den Logik-Pegeln ist berechtigt, ich war davon
ausgegangen, daß Dominik das abgecheckt hatte...

Isofern wäre es besser, das Ganze mal mit einem Transistor, der den
Schalter "schließt", auszuprobieren. Allerdings müßte da die richtige
Richtung ausprobieren / ausmessen.

von Dominik Schmidt (Gast)


Lesenswert?

Moin !

Soderle ...
>Einwand mit den Logik-Pegeln
Dazu kann ich folgendes sagen ... Ich habe an der Kam einen Taster (den
für ein / aus). Auf der einen Seite des Tasters liegen 4,4V die dann
beim drücken logischerweise auch auf der anderen Seite anliegen.
So, nun war meine Idee, ich schließe an der Spannungslosen Seite meinen
µC Pin an. Will ich nun die Cam einschalten, dann setze ich den Pin auf
High und die Kam geht an. Im Prinzip sollte das doch gehen, oder? Jetzt
ist nur die Frage ob der µC genug Strom liefert. Habe das leider noch
nicht gemessen.
Was mich aber dennoch verwundert ... 1x geht die Cam ja an. Nur danach
gehts nimmer.

>Isofern wäre es besser, das Ganze mal mit einem Transistor, der den
Schalter "schließt", auszuprobieren.
Jep, das werde ich auch tun. Alternativ könnte man evtl. auch ein
Treiber-IC nutzen. Da hätte man mehrere belastbare Ausgänge gleich in
einem passenden Gehäuse.

>Bist du dir denn sicher, daß du die einfach so mit
>Logikpegeln gesteuert werden müssen und du beim ein/aus
>auch den richtigen Anschluß erwischt hast?
Also das es der richtige Anschluss ist, das sollte passen. Das kann man
ja mit einem Multimeter einfach nachmessen.
Ob es mit Logikpegeln geht ist ja letztlich das Problem. Scheinbar
nicht sauber. Wie gesagt, werde da mal einen Transistor oder ein
Treiber IC verwenden.

Grüße Dominik

von Thomas K. (thkais)


Lesenswert?

Es besteht auch noch die Möglichkeit, daß die Tasten der Kamera
gemuplitplext sind. Dann würde man im Standby die volle Spannung
messen, während des laufenden Betriebs würde dann auch das richtige
Timing eine Rolle spielen. So richtig herauskriegen wird man das mit
einem Multimeter aber nicht.

von Thomas K. (thkais)


Lesenswert?

Meine Güte, totaler Tastensalat. "gemultiplext" meinte ich natürlich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.