Hallo, auch wenn ich vermutlich gleich gesteinigt werde muss ich es doch Fragen. Ich habe vor Jahren mal ein Controllerboard gebaut mit einem 80C517A meine ich mich noch erinnern zu können. Ich hatte damals an den Ports immer eine Treiberstufe ULN2803. Ich hatte immer Probleme abgesehen von Ein- und Ausgang mit den Pegeln sodas ich an alle Portpins einen 4K7 Pullup gemacht habe. Ich habe nun einen MEGA128 und habe hier eine Testplatine gebaut bei der ich ebenfalls ULN2803 verwende. Da ich beim 128 ja Pullups schalten kann habe ich auf externe Pullups verzichtet und nun wieder das gleiche Phänomen wie damals das die Pegel nicht von einer logischen 0 auf eine Logische 1 wechseln sondern ich ein flackern der LEB erkennen kann.Kann es sein das es sich empfiehlt trotz internen Pullup doch einen externen zu bestücken? Wenn ein Portpin auf Ausgang definiert ist kann ich ja keinen Pullup setzen ist es hier auch ratsam einen Pullup zu bestücken? Also Ausgangspin per Pullup auf Vcc und dann in Reihe einem Widerstand auf die Basis des Transistors. Der Anfänger
Externe Pullups braucht man an den AVR-Ausgängen nicht, da diese als Push-Pull aufgebaut sind und damit im Gegensatz zu 8051-Derivaten auch bei High-Pegel ordentlich Strom liefern. Wenn's trotzdem nicht funktioniert: Hast du die betreffenden Portpins auch wirklich durch Setzen der entsprechenden Bits im DDRx-Register als Ausgang konfiguriert? Oder hast du in gewohnter 8051-Marnier einfach nur die Bits im PORTx-Register auf high gesetzt? Dann bleiben die Portpins Eingänge. Bei als Eingang konfigurierten Portpins wird durch das Setzen der PORTx-Bits der interne Pullup aktiviert. Durch diesen kann ein schwacher Strom fließen, der aber den ULN wahrscheinlich nicht voll durchsteuert. Dies führt zu dem von dir beschriebenen 8051-ähnlichen Verhalten. Setze also im DDRx-Register für jeden Portpin, der mit dem ULN verbunden ist, das entsprechende Bit beim Programmstart auf 1. Anschließend kannst du über die Bits des PORTx-Registers die Ausgangspegel bestimmen: 1 ergibt ein niederohmiges High, 0 ein niederohmiges Low. Dazu wird weder ein interner noch ein externer Pullup und benötigt. Du brauchst auch keinen zusätzlichen Basiswiderstand. Der ist im ULN2803 schon eingebaut und so dimensioniert, dass er für 5V-Pegel passt.
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.