Hallo zusammen,
ich sitze an meinem ersten großen Projekt und bin mit dem Schaltplan so
gut wie fertig. Ich hätte da aber noch eine Frage. Ich weiß, dass das
Thema schon mehrfach diskutiert wurde, aber die Antworten verunsichern
mich sehr. Es geht um unbenutzte Pins an einem ATmega32u4. Ich habe bei
meinen Schaltplan(Teilausschnitt, siehe Screenshot) alle unbenutzten
Pins an einen Pull-Down Widerstand(R26,51k) angeschlossen. Zwei
Verständnissfragen hätte ich jetzt dazu:
1. Wenn ich die Pins nun auf Ausgang deklariere, fliesst ein Strom.
Durch den Einsatz eines Pull-Down Widerstandes verhindere ich ein
Kurzschluss oder?
2. Wenn ich die Pins auf Eingang deklariere, dann liegt an den
unbenutzten Pins ein LOW-Pegel?
Falls die Fragen richtig sind, dann habe ich die Schaltung eigentlich
sicher gebaut. Nur Option 1 würde ich nicht machen, da ich den
Stromverbrauch nicht erhöhen möchte.
Ich hoffe, dass das mit dem Pull-Down Widerstand eine fachmännische
Lösung ist.
LG
Hobby I. schrieb:> Warum nicht einfach unbeschaltet lassen? Wenn du Angst vor> flatternden> Pins hast, jeweils den internen Pullup aktivieren und alles ist stabil.
Ja das wäre auch eine Möglichkeit. Aber wie sieht es mit der
tatsächlichen Stromaufnahme mit deinem Vorschlag aus? Meine Schaltung
soll später mit einem LiPo Akku(3,7V 2000mAh) betrieben werden. Ein
Step-Up und Step-Down sind im Einsatz. Ich will den Akku nicht unnötig
belasten. Wie ich bereits oben geschrieben habe, die Meinungen sind sehr
unterschiedlich.
Mr. Nice Guy schrieb:> alle unbenutzten> Pins an einen Pull-Down Widerstand(R26,51k) angeschlossen.
Würde ich nicht machen.
Das Problem ist nicht der Widerstand, sondern die Verbindung der
I/O-Pins untereinander.
Falls zufällig zwei davon als Ausgang konfiguriert sind, und der Eine
will eine 1 ausgeben, der Andere eine 0, dann hast du nicht nur einen
riesigen Stromfluß, sondern das kann den Chip auch zerstören.
Das kommt nicht vor?
Na gut, Softwarefehler oder Programmabstürze gibt es ja auch nicht
Mach's wie Hobby I. schrieb:
Die Pins nicht miteinander verbinden, und dann nach Gusto als Ausgänge
mit beliebigen Zuständen oder als Inputs mit aktiviertem Pullups (oder
Pull Downs, aber nicht alle µC haben das) konfigurieren.
Die Pullup-Widerstände (in Wirklichkeit sind das schwache
PMOS-Transistoren) verbrauchen keinen Strom, solange du den
zugehörigen Pin nicht auf Masse legst.
Leerlaufende Outputs verbrauchen ebenfals keinen Strom, egal ob sie
eine 1 oder eine 0 liefern.
IO-Pins kurzschließen ist wirklich die mit Abstand schlechteste Idee.
Führe sie auf Testpunkte oder Pfostenleisten, dann kann man Drähte
anlöten, falls man sie später mal braucht.
Peter D. schrieb:> Führe sie auf Testpunkte oder Pfostenleisten, dann kann man Drähte anlöten
Ich verbinde einfach immer 2 davon mit einem Widerstand (der dann nicht
bestückt wird) und schalte die Pins auf Ausgang.
> IO-Pins kurzschließen ist wirklich die mit Abstand schlechteste Idee.
Man könnte sie auch hart auf GND (oder Vcc) legen und die Pads mit
Kupfer fluten. Das wäre noch schlechter, denn dann hilft nicht mal mehr
ein Messer, sondern nur noch "Pinabschneiden" oder "Pinhochbiegen"...
;-)
Peter D. schrieb:> IO-Pins kurzschließen ist wirklich die mit Abstand schlechteste Idee.
Sehe ich auch so!
Wenn da keine ewig langen Leiterbahnen/Kabel also Antennen dran hängen,
sind die eingebauten Pullup das Mittel der Wahl.
Im ATMega8A-Datenblatt steht folgendes:
18.2.4. Unconnected Pins
If some pins are unused, it is recommended to ensure that these pins
have a defined level. Even though most of the digital inputs are
disabled in the deep sleep modes as described above, floating inputs
should be avoided to reduce current consumption in all other modes where
the digital inputs are enabled (Reset, Active mode and Idle mode).
The simplest method to ensure a defined level of an unused pin, is to
enable the internal pull-up. In this case, the pull-up will be disabled
during reset. If low power consumption during reset is important, it is
recommended to use an external pull-up or pull-down. Connecting unused
pins directly to VCC or GND is not recommended, since this may cause
excessive currents if the pin is accidentally configured as an output.
Und die unbeschalteten Anschlüsse in Target einzeln doppelklicken, bei
Funktion "Nicht benutzt(NC)" auswählen, dann werden sie auch beim
Rule-Check nicht mehr angemeckert.
Gruß
Danke für eure Antworten.
Also ich werde bei den unbenutzten I/O- Pins jetzt doch die internen
Pull-ups einschalten. Das Datenblatt hatte ich gelesen und wusste
bereits vorher, dass die Pins einen definierten Pegel haben müssen. Ich
war mir wegen dem Stromverbrauch nicht so sicher, da die Meinungen zu
diesem Thema sehr unterschiedlich ausfallen.
Beim Projekt geht es auch darum, dass die Platine so klein wie möglich
bleibt. Daher werde ich die Idee mit den externen Widerständen doch sein
lassen, damit nicht unnötig Platz auf der Platine beansprucht wird.
Meine Grundidee war es, die unbenutzten Pins mithilfe des Pull-Down
Widerstandes als Eingang zu deklarieren, damit nichts passiert. Das war
wohl doch nicht so Idiotensicher, wie ich es mir gedacht habe. Ein
Programmierfehler hätte dem ganzen geschadet.
Eine Frage hätte ich noch. Wie sieht es mit unbenutzten Pins an einem
Pegelwandler aus? Ich benutze einen CD4504, damit der AVR(5V) mit einem
Bluetooth-Modul(3.3V) kommunizieren kann. Im Datenblatt stand nichts zu
dazu. Ich habe die Pins offen gelassen. Gelten hier die gleichen Regel
wie beim AVR, bezüglich des definierten Pegels?
LG
Mr. Nice Guy schrieb:> Ich habe die Pins offen gelassen. Gelten hier die gleichen Regel wie> beim AVR, bezüglich des definierten Pegels?
Offene CMOS-Eingänge sind generell schlecht, weil sich der dahinter
kommende Eingangstreiber dann auf einen solchen Pegel einstellen wird,
dass beide TreiberFET leiten und ein Querstrom von Vcc nach GND fließt.
Dieser Querstrom belastet die Versorgung und heizt das IC unnötig auf.
Mr. Nice Guy schrieb:> Ich> war mir wegen dem Stromverbrauch nicht so sicher, da die Meinungen zu> diesem Thema sehr unterschiedlich ausfallen.
Soviel ist das nicht. Beim ATtiny25 (5 IOs) im active Mode fällt das
kaum auf. Aber beim ATmega2560 mit 86 IOs summiert sich das schon.
Ok, dann werde ich die unbenutzten Eingänge des CD4504 mit GND verbinden
und lasse die Ausgänge offen, da diese soweit ich verstanden habe, keine
Wirkung auf die Schaltung haben.
Vielen Dank für die Tipps und Ratschläge.