Open-Drain vs. Push-Pull: Ausgänge im Vergleich

Beide sind Ausgangsstufen für digitale Signale, unterscheiden sich aber darin, wie sie H erzeugen. Ein Push-Pull-Ausgang kombiniert einen pMOS zur Versorgung und einen nMOS zur Masse und treibt H und L aktiv über Transistoren. Er ist daher schnell, und im Ruhezustand fließt kaum Strom. Ein Open-Drain-Ausgang besitzt nur den nMOS zur Masse: L zieht er aktiv nach unten, für H trennt er den Ausgang ab und ein Pull-up-Widerstand zieht die Leitung hoch. Die Anstiegsflanke ist dadurch langsamer, aber mehrere Ausgänge lassen sich an eine Leitung anschließen (Wired-AND), und die Pull-up-Spannung ist frei wählbar. Deshalb wird er für I2C und Interrupt-Leitungen verwendet.

MerkmalPush-Pull-AusgangOpen-Drain-Ausgang
Aufbau der AusgangsstufeZwei Transistoren: pMOS zur Versorgung und nMOS zur Masse (gleiche Form wie ein CMOS-Inverter)Nur ein nMOS zur Masse. Der Drain ist auf den Pin geführt, zur Versorgung hin gibt es nichts
Erzeugung von HDer pMOS schaltet ein und verbindet den Pin mit der VersorgungDer nMOS schaltet aus und trennt den Pin ab (hochohmig); ein externer Pull-up-Widerstand zieht ihn hoch
Erzeugung von LDer nMOS schaltet ein und verbindet den Pin mit MasseDer nMOS schaltet ein und verbindet den Pin mit Masse (gleich)
AnstiegsgeschwindigkeitSchnell. Der pMOS lädt die LeitungLangsam. Bestimmt durch die Zeitkonstante RC aus Pull-up-Widerstand R und Leitungskapazität C (z. B. etwa 0,47 µs bei 4,7 kΩ und 100 pF)
AbfallgeschwindigkeitSchnell. Der nMOS entlädt die LeitungSchnell. Der nMOS entlädt die Leitung
Mehrere Ausgänge an einer LeitungNicht möglich. Treffen H und L aufeinander, fließt ein großer Strom von der Versorgung zur MasseMöglich. Sobald ein Ausgang L ausgibt, liegt die Leitung auf L (Wired-AND)
Verbindung mit Schaltungen anderer SpannungDie H-Spannung entspricht der eigenen Versorgungsspannung. Für Schaltungen mit anderer Spannung ist ein Pegelwandler nötigDie H-Spannung wird durch die Pull-up-Spannung bestimmt und lässt sich im Rahmen der Spannungsfestigkeit des Pins an die Gegenseite anpassen
StromaufnahmeIm Ruhezustand nahezu null (nur Leckstrom). Beim Umschalten fließen Lade- und EntladeströmeSolange L ausgegeben wird, fließt dauerhaft Strom durch den Pull-up-Widerstand (etwa 0,7 mA bei 3,3 V und 4,7 kΩ)
Typische GeschwindigkeitAuch einige zehn MHz und mehr möglichBegrenzt durch Pull-up-Widerstand und Kapazität. Bei I2C z. B. 100 kHz, 400 kHz, 1 MHz
Typische AnwendungenSchnelle Signale wie SPI- und UART-Signale, Takte, allgemeine GPIOs und SpeicherbusseI2C und SMBus, von mehreren Bauteilen gemeinsam genutzte Interrupt- und Reset-Leitungen, Verbindung mit Schaltungen anderer Spannung, Ansteuerung von LEDs

Die Zahlenwerte sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.

Wann welche Variante?

Push-Pull-Ausgang
Wenn ein Ausgang einen Eingang treibt und Geschwindigkeit oder geringe Stromaufnahme wichtig sind. Gewöhnliche Digitalsignale wie GPIO, SPI und UART gehören hierher.
Open-Drain-Ausgang
Wenn mehrere Bauteile dieselbe Leitung treiben (I2C, gemeinsame Interrupt- oder Reset-Leitungen) oder wenn ein Signal über eine andere Pull-up-Spannung an eine Schaltung mit anderer Spannung übergeben werden soll.
Umschaltung
Bei vielen Mikrocontrollern lassen sich GPIOs per Konfiguration zwischen Push-Pull und Open-Drain umschalten. Für I2C verwendete Pins werden als Open-Drain konfiguriert und mit externen Pull-up-Widerständen versehen.

Häufige Fragen

Wie wählt man den Wert des Pull-up-Widerstands?

Je kleiner der Widerstand, desto schneller die Anstiegsflanke, aber desto größer der Strom, solange L ausgegeben wird, und desto höher die L-Spannung (VOL). Die Obergrenze ergibt sich aus der Leitungskapazität und der geforderten Anstiegszeit, die Untergrenze aus dem Strom, den der Ausgang aufnehmen kann, und der VOL-Spezifikation. Bei I2C sind einige kΩ üblich (etwa 2,2–10 kΩ).

Was passiert, wenn man zwei Push-Pull-Ausgänge direkt verbindet?

Gibt einer H und der andere L aus, fließt über den pMOS der H-Seite und den nMOS der L-Seite ein großer Strom von der Versorgung zur Masse (Buskonflikt). Die Leitungsspannung bleibt zudem auf einem undefinierten Zwischenwert, und es drohen Erwärmung und Zerstörung von Bauteilen. Für gemeinsam genutzte Leitungen verwendet man daher Open-Drain- oder Tri-State-Ausgänge, deren Ausgang sich abtrennen lässt.

Warum verwendet I2C Open-Drain?

Weil mehrere Geräte dieselben SDA- und SCL-Leitungen treiben. Dass der Empfänger SDA auf L zieht, um ein ACK zu senden, dass ein Slave SCL auf L hält, um den Master warten zu lassen (Clock Stretching), und dass bei gleichzeitigem Sendebeginn mehrerer Master arbitriert wird – all das nutzt die Wired-AND-Eigenschaft, nach der die Leitung auf L liegt, sobald ein Teilnehmer L ausgibt.

Was ist der Unterschied zu Open-Collector?

Das Prinzip ist dasselbe: Ist der Ausgangstransistor ein Bipolartransistor, spricht man von Open-Collector, bei einem MOSFET von Open-Drain. Beide ziehen nur L aktiv nach unten, H wird über einen Pull-up-Widerstand erzeugt.

Verständnis prüfen

Welches Verhalten ist richtig, wenn mehrere Open-Drain-Ausgänge an eine Signalleitung mit Pull-up-Widerstand angeschlossen werden?

  1. ADie Ausgänge kollidieren miteinander und werden stets zerstört
  2. BGibt auch nur einer 0 aus, wird die Leitung 0, und es wirkt als Wired-AND
  3. CGibt auch nur einer 1 aus, wird die Leitung 1
Antwort und Erläuterung anzeigen

Antwort: B. Gibt auch nur einer 0 aus, wird die Leitung 0, und es wirkt als Wired-AND

Ein Open-Drain-Ausgang hat zwei Zustände: Er zieht die Leitung per Transistor auf Masse oder trennt sie ab, und die 1 wird vom Pull-up-Widerstand erzeugt. Gibt auch nur einer 0 aus, wird die Leitung 0, und nur wenn alle abtrennen, wird sie 1 (Wired-AND); auch bei Kollision der Ausgänge wird nichts zerstört. Er wird bei I²C-Bussen, Interrupt-Leitungen und zur Pegelumsetzung zwischen Schaltungen mit unterschiedlichen Versorgungsspannungen verwendet. Die steigende Flanke wird von Pull-up-Widerstand und Leitungskapazität bestimmt und ist daher langsam.

Was ändert sich, wenn der Pull-up-Widerstand an einem Open-Drain-Ausgang verkleinert wird?

  1. ADie Anstiegsflanke wird langsamer, aber der Strom bei L-Ausgabe sinkt und damit die Leistungsaufnahme
  2. BDie Anstiegsflanke wird schneller, aber der Strom bei L-Ausgabe steigt, und VOL nimmt leichter zu
  3. CDer H-Pegel steigt über die Spannung der Pull-up-Versorgung, sodass der Grenzwert des Empfängereingangs leichter überschritten wird
Antwort und Erläuterung anzeigen

Antwort: B. Die Anstiegsflanke wird schneller, aber der Strom bei L-Ausgabe steigt, und VOL nimmt leichter zu

Der H-Pegel eines Open-Drain-Ausgangs entsteht, indem der Pull-up-Widerstand die Leitung hochzieht, während der Ausgangstransistor sperrt. Die Anstiegsgeschwindigkeit wird durch die Zeitkonstante aus Widerstand und Leitungskapazität bestimmt, bei 10 kΩ und 100 pF beispielsweise 1 µs. Ein kleinerer Widerstand macht die Flanke schneller, doch bei L-Ausgabe fließt Strom von der Versorgung über den Widerstand – bei 3,3 V und 1 kΩ sind es 3,3 mA. Übersteigt dieser Strom die IOL-Bedingung im Datenblatt, liegt VOL nicht mehr im spezifizierten Bereich; man wählt daher einen Wert, der beide Anforderungen erfüllt.

Welche Aussage zur I2C-Kommunikation ist korrekt?

  1. AFür jedes Gerät ist eine eigene Chip-Select-Leitung nötig
  2. BSenden und Empfangen laufen über getrennte Leitungen und können gleichzeitig in beide Richtungen erfolgen
  3. CAn zwei Leitungen, Takt (SCL) und Daten (SDA), hängen mehrere Geräte, und das Gegenüber wird per Adresse gewählt
Antwort und Erläuterung anzeigen

Antwort: C. An zwei Leitungen, Takt (SCL) und Daten (SDA), hängen mehrere Geräte, und das Gegenüber wird per Adresse gewählt

I2C ist eine synchrone serielle Kommunikation, die mehrere Geräte nur über die beiden Leitungen SCL und SDA verbindet. Der Master sendet zuerst die 7-Bit-Adresse des Gegenübers, und nur das Gerät mit dieser Adresse antwortet. Die Leitungen sind Open-Drain, werden über Pull-up-Widerstände auf 1 gezogen und können von jedem Gerät auf 0 gezogen werden. I2C eignet sich für Bauteile wie Temperatur- und Beschleunigungssensoren oder EEPROMs, bei denen wenig Verdrahtung wichtiger ist als Geschwindigkeit.

  1. Wie bestätigt bei I2C die Seite, die ein Byte empfangen hat, den Empfang?
  2. Welche Rolle haben Pegelumsetzer (Level Shifter), die bei der Signalübergabe zwischen zwei Blöcken mit unterschiedlicher Versorgungsspannung eingefügt werden?

Übungsfragen zu Logikschaltungen

Wichtige Begriffe erklärt

Open-Drain-Ausgang
Ausgang, bei dem nur der Drain des Ausgangstransistors herausgeführt ist und nur der Low-Pegel aktiv getrieben wird. Der High-Pegel entsteht über einen externen Pull-up-Widerstand, sodass mehrere Ausgänge eine Leitung teilen oder mit Schaltungen anderer Versorgungsspannung verbunden werden können. Wird z. B. beim I2C-Bus verwendet.
Pull-up-Widerstand
Widerstand, der eine Signalleitung mit der Versorgung verbindet und sie auf 1-Pegel hält, solange nichts treibt. Er verhindert schwebende Eingänge und wird auch bei I2C-Leitungen verwendet.
I2C
Synchrone serielle Kommunikation, bei der mehrere Geräte an zwei Leitungen, Takt (SCL) und Daten (SDA), angeschlossen sind und per Adresse angesprochen werden. Die Leitungen sind Open-Drain und mit Pull-ups beschaltet.

Verwandte Vergleiche