Open Collector Bus Schaltung

OP #4120503
Lesenswert?
• ▲
▼
Hallo zusammen
Ich verstehe einfach den Sinn und die Funktionsweise einer Open 
Collector Bus Schaltung nicht. Ein Bild liegt im Anhang.

Angenommen, beide "Nodes" senden keine Daten - die Transistoren sind 
also aus - dann ist deren Widerstand ja enorm hoch und somit müsste auch 
die Spannung über den IN Pins quasi 0 sein, oder?

Wenn jetzt einer der beiden senden will - der Transistor ist geöffnet 
und leitet....dann ist die Spannungsquelle ja mit Ground verbunden und 
es läuft viel über den Sender...aber dann empfängt der Sender ja "Daten" 
und nicht der Empfänger?
Angehängte Dateien:
#4120514
Lesenswert?
• ▲
▼
Wenn die Transistoren offen sind definiert der Pullup-Widerstand den 
Pegel. Also gibts High-Pegel. Wenn mindesten einer geschlossen ist gibts 
Low-Pegel.

Beide Eingänge empfangen den gleichen Buszustand, sowohl beim Sender als 
auch beim Empfänger, wenn man Laufzeiten mal aussen vor lässt.
Gast #4120632
Lesenswert?
• ▲
▼
Kevin Haeni schrieb:
> Angenommen, beide "Nodes" senden keine Daten - die Transistoren sind
> also aus - dann ist deren Widerstand ja enorm hoch und somit müsste auch
> die Spannung über den IN Pins quasi 0 sein, oder?

Hmm, ich weiss nicht, was Du genau mit Spannung über die IN-Pins meinst,
aber die Sache ist eigentlich recht einfach: Wenn alle Transistoren die
and dem Bus hängen sperren, dann wird die Leitung durch den Pull-Up
(in Deinem Bild R_up) hochgezogen (auf +V). Wenn jetzt einer 
durchschaltet, dann wird die Leitung auf Masse gezogen.

> Wenn jetzt einer der beiden senden will - der Transistor ist geöffnet
> und leitet....dann ist die Spannungsquelle ja mit Ground verbunden und
> es läuft viel über den Sender...

Der Pullup sollte schon angemessen sein. Wenn der Wert zu groß ist, dann 
werden die Flanken von 0->1 ziemlich unsauber. Andererseits wird man
auch aus Stromspargründen nicht an's untere Limit gehen, oder gar 
soweit, daß das dein Kollektor gar nicht mehr wegsaugen kann.

Hier gibt's ein paar interessante Bilder:
http://dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors

> aber dann empfängt der Sender ja "Daten" und nicht der Empfänger?

Keine Sorge, der Sender hat da schon ein bisschen Logik eingebaut,
sodaßer er eben nicht sein eigenes Zeugs einliest. Ist aber meistens
im Datenblatt des zu verwendenden Chips schematisch dargestellt.

LG,
Norbert
OP #4120689
Lesenswert?
• ▲
▼
Vielen Dank für die Antworten.

Der Tipp mit dem Spannungsteiler war gut...aber sehe ich das richtig, 
dass nun der Bus so programmiert werden muss, dass ein Low Pegel bei den 
In Pins bedeutet, dass Daten empfangen werden und ein High Pegel dass 
keine Daten empfangen werden?
Gast #4120704
Lesenswert?
• ▲
▼
Hallo

die Daten sind eine Folge von Rechtecksignalen. z.B. 0-1-1-0

nehmen wir an die linke Seite sendet und die Zeit für ein Bit ist fix: 
Transistor ein-aus-aus-ein.

Beide Seite sehen die Signale an ihren IN.

Wer sendet hängt vom Protokoll ab. Bei Master -Slave ( z.B. I^2C 
)bestimmt der Master wann der Slave sendet.

Bei gleichberechtigten Sendern ( z.B. 10MBit Ethernet auf Koax )erkennen 
die Sender durch rücklesen am IN ober die Sendung gestört wird.
#4120820
Lesenswert?
• ▲
▼
Kevin H. schrieb:
> Der Tipp mit dem Spannungsteiler war gut...aber sehe ich das richtig,
> dass nun der Bus so programmiert werden muss, dass ein Low Pegel bei den
> In Pins bedeutet, dass Daten empfangen werden und ein High Pegel dass
> keine Daten empfangen werden?

Denk noch mal darüber nach, was Du da geschrieben hast!
Wenn nur Low-Pegel empfangen werden, brauchst Du überhaupt keine Daten 
zu übertragen - denn immer "0" ist keine sinnvolle Information.

Richtig wäre die Formulierung etwas so:

Der Teilnehmer, der empfangen will, muss seinen Sender abschalten, das 
heißt den Transistor sperren (OUT = 0). Dann sieht er bei "IN" die Daten 
des anderen Teilnehmers.
Der Teilnehmer, der senden will, schaltet über "OUT" den 
Sende-Transistor ein und aus. Der andere Teilnehmer sieht bei "IN" die 
Sendedaten.

Hinweis: Zwischen "IN" und "OUT" ist eine Invertierung durch den 
Transistor. Also wenn "OUT" = High ist, ist "IN" = Low und umgekehrt.

Gruß Dietrich

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.