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.
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.