Forum: Analoge Elektronik und Schaltungstechnik AVR: Unbeabsichtigte Spannungsversorgung über JTAG?!


von J.W. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Controller-Board mit ISP, Quarzoszillator, Schalter und 2 
LEDs für einen Atmega32 aufgebaut (Schaltung siehe Anhang). Aller Pins 
von Port A bis D sind auf zwei Anschlussleisten herausgeführt. Über 
diese Leisten wird das Board auch mit einer geregelten Spannung von 5V 
versorgt (Pin 1 und 2 von ConA: +5V, Pin 29 und 30 von ConB: GND). Mein 
Testprogramm lässt einfach die zwei angeschlossenen LEDs abwechseld 
leuchten. Klappt auch alles wunderbar.

Allerdings sind an den Pins C2 bis C5 zwei optische Drehgeber 
angeschlossen (A1/B1, A2/B2). Wenn einer dieser Pins auf einem 
high-Pegel ist, dann wird der Controller trotz Schalter mit einer 
Spannung von etwa 3,5V "versorgt". Die LEDs glimmen welchselseitig. Das 
heißt, dass sowohl LEDs als auch Controller laufen. Sind die Drehgeber 
nicht angeschlossen, glimmt auch nix.

Ich vermute jetzt, dass die Elektronik des Drehgebers irgendwie das 
Board versorgt und dabei die Spannung auf 3,5V zusammenbricht. 
Allerdings bestehen weder in der Schaltung von auf dem realen Board 
Verbindungen zu den Versorgungsleitungen. Ich sehe da den Fehler nicht.

Da Pins C2 bis C5 die JTAG-Pins sind, könnte da ein Zusammenhang 
bestehen? Ich benutze kein JTAG. Alle Pins sind bis auf C6 und C7 (LEDs) 
als Eingänge mit TriState konfiguriert. JTAGEN auf 1 oder 0 erzeugt das 
selbe Ergebnis.

Hat jemant eine Idee? Bin für jede Anregung dankbar.

Gruß J.W.

von Εrnst B. (ernst)


Lesenswert?

Der AVR hat von jedem Pin (bis auf Reset) eine Diode nach Vcc.
d.H. Jeder Pin an dem eine Spannung > Vcc(+0.5V) anliegt, kann den AVR 
versorgen.
Du stellst vermutlich die Board-Spannung ab (Vcc=0) aber die Drehgeber 
haben noch Strom und geben einen High-Pegel aus. Über die Clamp-Dioden 
nach VCC wird dadurch der Rest vom Board versorgt.
Auf 3.5V bricht die Spannung dabei vermutlich ein, weil die 
Drehgeber-Ausgangstreiber nicht genug Strom liefern können.

von Johannes M. (johnny-m)


Lesenswert?

J.W. wrote:
> Da Pins C2 bis C5 die JTAG-Pins sind, könnte da ein Zusammenhang
> bestehen? Ich benutze kein JTAG. Alle Pins sind bis auf C6 und C7 (LEDs)
> als Eingänge mit TriState konfiguriert. JTAGEN auf 1 oder 0 erzeugt das
> selbe Ergebnis.
Wenn Du kein JTAG benutzt und die betreffenden Pins als I/O verwenden 
willst, dann musst Du das JTAG-Interface über die JTAGEN-Fuse 
deaktivieren! Ansonsten läuft an den vier Pins gar nichts.

AVR Fuses

von Peter D. (peda)


Lesenswert?

Du mußt natürlich die Drehgeber mit der gleichen Spannung versorgen, wie 
den MC.
Wenn das nicht geht, schalte Dioden direkt vor die MC-Pins (Pin an 
Anode) und den internen Pullup ein.

AVRs mögen es garnicht, wenn an den Pins Spannung anliegt, bevor oder 
nach VCC.
Ältere AVRs hatten dann gerne mal den Flash gelöscht oder Fuses 
verstellt.


Peter

von J.W. (Gast)


Lesenswert?

Danke für die schnellen und konkreten Antworten.

Verstehe jetzt das Problem. Ich müsste also vor jeden Eingangspin eine 
Diode hängen und den Pullup aktivieren, dann sollte es gehen. Leider 
muss der Drehgeber und andere Sensoren weiter versorgt werden, da sie 
noch von anderen Controllern verwendet werden.

Werde ich dann gleich mal ausprobieren.

Vielen Dank nochmal an alle!

Gruß

J.W.

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.