Wann braucht man eigentlich pull-up / down Widerstände?

Alles andere hier herein
Antworten
Benutzeravatar
Micha
Beiträge: 813
Registriert: Sa 24. Mär 2012, 21:45
Wohnort: Merseburg
Kontaktdaten:

Wann braucht man eigentlich pull-up / down Widerstände?

Beitrag von Micha »

Seitdem ich mit Digitalkram bastle war das immer einer der etwas unklaren Punkte - wann braucht man Pull-up bzw. Pull-down Widerstände, und wann kann man die Dinger weglassen? Beispiele und Projekte, die man im Internet findet, sind diesbezüglich nicht immer konsistent.

Erst neulich war ich wieder überrascht, bei einem Z80 Projekt auf Pins zu stoßen, die ohne Schutzwiderstand direkt auf +5V gelegt waren. Manche Projekte machen das, andere sehen in dem Fall einen Pull-up vor - oder führen alle bedürftigen Signale gemeinsam auf einen Pull-up.

Vielleicht stammt meine Verwirrung diesbezüglich daher, dass meine Bastel-Aktivitäten mit Microcontrollern angefangen haben? Die haben ja jede Menge konfigurierbarer I/O Pins, und da sollte man schon vorsichtig sein, die Schaltung idiotensicher zu machen?

Mein derzeitiges Verständnis: wenn ein Pin garantiert immer Input ist (z.B. /NMI beim Z80, oder die Input Pins von 74xx Schaltkreisen) dann kann man es je nachdem was Sinn macht direkt auf GND oder Vcc schalten. Wenn ein Pin, dass für die gegebene Schaltung als Input genutzt wird eigentlich frei konfigurierbar ist (bei Atmels & Co.) sollte man immer einen Widerstand dranschalten, um eine Zerstörung des Chips per Software zu vermeiden.

Ist dieses Verständnis sachlich korrekt?
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Benutzeravatar
volkerp
Beiträge: 82
Registriert: Di 30. Jun 2009, 20:19

Re: Wann braucht man eigentlich pull-up / down Widerstände?

Beitrag von volkerp »

Pull-Up-Widerstände an Eingängen dienen in erster Linie als Strombegrenzung, falls im Fehlerfall irgendwas schief laufen sollte. Für TTL-Logik ist das Pflicht. Ansonsten sind Logik-Schaltkreise ja extra dafür gebaut, einen Pegel von Vcc direkt verarbeiten zu können. Es ist also nicht falsch, für Bastelprojekte auf Pull-Ups zu verzichten. Im Zweifel hilft ein Blick ins Datenblatt, da steht meist drin, ob und welche Widerstände nötig sind.
Benutzeravatar
Micha
Beiträge: 813
Registriert: Sa 24. Mär 2012, 21:45
Wohnort: Merseburg
Kontaktdaten:

Re: Wann braucht man eigentlich pull-up / down Widerstände?

Beitrag von Micha »

volkerp hat geschrieben:Für TTL-Logik ist das Pflicht.
Der Rest der Antwort erschliesst sich mir sofort, bei diesem Satz bin ich nicht sicher - bedeutet das wenn man einen Eingang eines 74xx definiert auf logisch 1 setzen will (per Verschaltung) dass man den mit einem Widerstand an 5V anschliessen muss - also nicht direkt auf 5V verbinden darf?
Entspricht nicht meinem derzeitigen Wissensstand, aber ich lasse mich gern belehren.
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Hauke
Beiträge: 79
Registriert: Mo 26. Mär 2012, 07:26

Re: Wann braucht man eigentlich pull-up / down Widerstände?

Beitrag von Hauke »

Ok.

Das könnte etwas ausführlicher werden.


Eingangspins dürfen direkt an VCC wenn beide Voraussetzungen erfüllt werden:
- Eingang ist unter ALLEN Umständen IMMER ein Eingang
(auch im Reset und sonstigen Betriebszuständen)
- Eingang verträgt VCC
(das ist nicht immer so, Stichworte Dual voltage, und ADC)

Ein Beispiel für Pins die direkt an VCC gehören sind z.B. die Hardware Adresspins an I²C Bausteinen.

Wenn die Spannung abweicht (z.B. am ADC des AVR mit 2,56V interner Referenz) dann sind reine Pullups eher ungeeignet. Welche Lösung man dann verwendet hängt vom Anwendungsfall ab.


Pullups/Pulldowns sind eigendlich immer dann Pflicht, wenn das angeschlossene Signal sein Pegel wechseln kann und wenn der Pegel zeitweise nicht definiert wäre.

Je stärker sie sind (je niedriger ihr Widerstandswert ist) desto sicherer Wird das Signal auf den gewünschten Pegel gebracht. Aber desto größer ist der Strom der fließt!
Vorsicht ein zu hoher Strom kann Ausgangspins und/oder die Pullup/Downs zerstören!!!
Ich verwende Üblicherweise 3k9, 4k7 und 10k


Beispiel: /Reset (active low)
Normalerweise per Pullup auf Highsignal.
Wird nur im Fall eines extern gewünschten Reset durch externe Maßnahmen (Taster, Resetbaustein, externer Watchdog) auf Low gezogen.

Beispiel: Stecker/Dongle/Taster Erkennung
Eingangspin ist an einen offenen Kontakt eines Taster/Steckers angeschlossen. Signal wird per Pullup auf einen definierten Highpegel gezogen.
Der andere Kontakt des Taster oder der Gegenpol des Steckers sind fest auf low gesetzt.
Werden jetzt die Kontakte verbunden, dann wird der Pullup kurzgeschlossen und das Signal landet bei low.
Das ganze funktioniert natürlich anders herum.

Beispiel: Eingang an einem Open-Collector- oder Open-Drain-Ausgang
Der Ausgang kann das Signal nur auf Low ziehen. Für das Highsignal muss dann ein Pullup sorgen.

Beispiel: Eingang an einem Open Emitter-Ausgang
Das gleiche wie oben nur wird hier ein Pulldown benötgt.

Beispiel: Bidirektionale Datenleitung
Zwei Tristate Eingänge (von vermutlich unterschiedlichen Bausteinen) sind miteinander verbunden.
Wenn beide im High-z (Eingang ohne internen Pullup/Pulldown) Zustand sind, dann ist der Logikpegel auf der Leitung Zufall. Das kann dann recht kuriose Effekte zu Folge haben, weil die Schaltung statische Wechselfelder auffangen kann.

Oder der Pegel bewegt in einen unzulässigen mittleren Bereich. Das kann bei rein digitalen Eingängen ohne Schmidt Trigger zu einem stark erhöhten Stromverbrauch führen.

Deshalb sollte bei einer bidirektionale Datenleitung immer an einen externen Pullup oder Pulldown angeschlossen sein.
Dieser zieht das Signal auf einen definierten Pegel (auch im Resetfall wenn die internen evt. abgeschaltet sind) und es kommen auf der Leitung nur die Daten an die einer der Kommunikationspartner auch wirklich gesendet hat.

Ich hoffe das ganze war halbwegs klar verständlich und und nicht zu lang.

P.S.
Um auf das Beispiel zu kommen.
Ein Eingang von einem 74xx kann natürlich auf VCC oder GND gelegt werden, wenn nicht Anderes daran angeschlossen werden soll.
Antworten