Forum: Mikrocontroller und Digitale Elektronik Open Drain was und wozu?


von Matthias (Gast)


Lesenswert?

Hallo allerseits,

wie der Threadname schon sagt bin ich mir nicht im klaren darüber was
genau ein Open Drain Ausgang ist und wofür sie bei bei Mikrocontrollern
eingesetzt wird. Mir persönlich sind Drains nur von Mosfet-Transistoren
her bekannt aber irgendwie will mir der zusammenhang mit
Mikrocontrollern nicht einleuchten (hab da wohl gerade ein Brett vor
dem Kopf :) ).Leider gibt mir google dazu nur Informationen wie sich
diese bei bestimmten Mikrocontrollern nutzen lassen. Ich bin auf der
Suche nach einer allgemeingültigen Erklärung.

Falls also jemand einen Link hat oder mir eine kurze Erklärung geben
könnte wäre ich wirklich dankbar.

MfG

Matthias

von Rahul (Gast)


Lesenswert?

Guck mal nach Open-Collector. Das ist das Pendant bei Bipolaren
Transistoren.

Gruß Rahul

von Rufus T. Firefly (Gast)


Lesenswert?

Sagt Dir "open collector" etwas? Das ist annähernd das gleiche.

Ein OC/OD-Ausgang kann nur einen Signalpegel auf Masse ziehen oder
unverändert lassen. Einen High-Pegel kann man mit einem OC/OD-Ausgang
nur erzeugen, wenn ein Pullup-Widerstand vorhanden ist.

Mehrere OC/OD-Ausgänge können zusammengeschaltet werden und bilden so
ein logisches OR. Das ist beispielsweise für's Interrupt Sharing sehr
praktisch. Es gibt auch serielle Schnittstellen, die dieses Verfahren
nutzen, die "PS/2"-Schnittstelle, an der Mäuse und Tastaturen hängen,
ist ein weit verbreitetes Beispiel.

von Olaf (Gast)


Lesenswert?

Ich fuerchte wenn du schon weisst wie ein Mosfet funktioniert dann musst
da wohl wirklich gerade eine mittlere Bohle vor deiner Birne haengen.
:-)

OpenDrain entspricht etwas einem vielleicht bekannteren OpenCollector
Ausgang. Mit andeeren Worden ein Ausgang der den Prozessor nur nach
Masse ziehen kann. Zur korrekten Funktion braucht es dann immer einen
Pullupwiderstand auf eine positive Spannung.

Das macht in zwei Faellen sinn:

1. Man kann mehrere Ausgaenge gegen einen Widerstand arbeiten lassen.
Z.b bei Bussen.

2. Die Spannung gegen die der Widerstand geschaltet ist muss nicht
zwangslaeufig mit der Versorgungsspannung des Prozessors identisch
sein. Sie kann z.B niedriger sein (5->3.3V) oder auch hoeher. Es gibt
z.B TTL-Ics mit OC Ausgang die bis zu 30V koennen um damit Nixieroehren
zu schalten.

Olaf

von Rufus T. Firefly (Gast)


Lesenswert?

** Korrektur **

Natürlich ist's kein logisches OR, sondern ein logisches AND.
Sorry.

von Matthias (Gast)


Lesenswert?

erstmal danke für die schnellen antworten.

Das Brett ist wohl eher eine Wand des vergessens alles schon ziemlich
lange her.

Mal sehen ob ich das richtig verstanden habe. Open Drain Ausgange
werden also zum Anschliessen externer Perepherie genutzt mit einem
anderen Spannungspegel (kleinere Motoren ?) und können nur als Ausgang
benutzt werden?

Matthias

von Sebastian (Gast)


Lesenswert?

> Natürlich ist's kein logisches OR, sondern ein logisches AND.

Hm. Definitionssache, oder? Wenn irgendeiner der Busteilnehmer den Bus
auf GND zieht (indem seine Drain-Source-Strecke niederohmig wird), ist
der Bus definiert auf GND, egal wieviele Pullups noch dagegen arbeiten.
Insofern wäre es ein "OR". Anders herum gesehen ist der Bus nur dann
"high", wenn alle_ Teilnehmer _nicht auf GND durchleiten, also
alle Pullups wirksam sind. Insofern ein "AND". Quasi je nach Logik
(active-high/active-low) ein ANDOR. ;-)

von Rufus T. Firefly (Gast)


Lesenswert?

Naja, da man erstmal nicht von negierter Logik ausgeht - ein AND-Gatter
ist nunmal ein AND-Gatter, ist's ein AND. Daß ich das Ding zunächst
ein OR zieh, hat damit zu tun, daß ja üblicherweise Active-Low-Signale
damit verknüpft werden ... und das ist dann ja irgendwie doch ein OR.

Es ist aber ratsam, eine Birne eine Birne zu nennen, egal, ob's nun um
Stiel oder Fruchtfleisch geht - alles andere führt nur zu
Hirnverknotungen.

Also ist das ein AND.

von Rahul (Gast)


Lesenswert?

nene, es ist ein NOR...
Sobald an einem Eingang eine logische 1 (Ugs>0) anliegt, ist der
Ausgang = 0.
Egal, welcher Eingang den entscheidenden Pegel für die Änderung des
Ausgangspegels liefert ( 1 OR 0 = 1), ändert sich der Ausgangspegel.
Da bei der obigen Schaltung am Eingang eine 1 liegt und am Ausgang ein
0 herauskommt, ist die Schaltung ein Inverter.
Schaltet man nun mehrere dieser Open-Collector-/Open-Drain-Inverter
zusammen, bekommen man ein negiertes OR --> ein NOR.

Anderer Sinn der OpenDingsbums-Schaltungen:
Man kann mit einer (bspw. 5V) Spannung einen Verbraucher mit einer
anderen Spannung (bspw. 24V) ohne galvanische Trennung schalten.

Gruß Rahul

von Rufus T. Firefly (Gast)


Lesenswert?

Rahul, Du implizierst die Verwendung von _Invertern_* mit OC-Ausgang.
Nur dann ist's ein NOR.
Von Invertern war aber nicht die Rede, sondern nur von
OD/OC-Ausgängen.
(Sieh' Dir beispielsweise mal die Interrupt-Ausgänge von
Peripheriebausteinen aus der 68xx-Reihe wie 6821, 6850 oder 6840 an)

Es bleibt beim AND, wenn man mehrere OD/OC-Ausgänge (und einen Pullup)
miteinander verknüpft.


*) Inverter mit OC-Ausgang sind 7405 oder 7406, letzterer ist
spannungsfest bis 30V. http://www.indiana.edu/~gmhlab/c501/SN7406.pdf
Ein nichtinvertierendes spannungsfestes Äquivalent ist der 7407. Da
7406/7407 40 mA Strom verkraften, sind sie sehr schöne Treiber.

von Rahul (Gast)


Lesenswert?

Ja, gut...
Bin von der direkten Ansteuerung einen MOSFET oder bipolaren
Transistors ausgegangen...

von Netbandit (Gast)


Lesenswert?

Hi, falls noch Fragen da sind, was Open Drain ist, dann gucke mal auf
diese Seite:
http://www.sprut.de/electronic/pic/grund/ioports.htm#tx
Dort ist ein sehr anschauliches Bild, welches eindeutig die
Funktionsweise des OD/OC Ausganges erklärt.

von Matthias (Gast)


Lesenswert?

Hi

BTW:
Auch Philips nennt die Funktion die auf den I2C-Leitungen mittles OC/OD
realisiert wird Wired-And.

Matthias

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