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?
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.
:
Bearbeitet durch User
Wieviel Strom fließt, ist nicht interessant; die INs messen nur Spannung. Denk dir die Transistoren als Widerstände, die zusammen mit dem Pullup einen Spannungsteiler bilden, und die entweder relativ klein oder relativ groß zum Widerstand des Pullups sind.
:
Bearbeitet durch User
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
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?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.