Hallo,
ich verwende den IC SN74LV07A, einen nicht-invertierender Treiber,
dessen Ausgang oben-drain ist. Er soll über ein USB-Kabel mit einer
anderen Platine kommunizieren. Um das Problem mit dem
Wellenwiderstand zu lösen, möchte ich eine Serienterminierung
vornehmen. Dazu muss Rs = Rz minus den Innenwiderstand der Quelle sein.
Ich weiß nicht ob ich nun blind bin, aber ich finde ihn nicht im
Datenblatt.
http://www.ti.com/lit/ds/symlink/sn74lv07a.pdf
Oder kann ich ihn aus einen der vielen Spannungs- und Stromangaben
errechnen?
Hallo,
Der steht in irgendeinem Baustein-Family Handbook.
Aber mit einem Open Drain wird das nix.
Da sind die Innenwiderstände zwischen high und low Zustand zu
unterschiedlich.
Gruß Anja
Anja schrieb:> Da sind die Innenwiderstände zwischen high und low Zustand zu> unterschiedlich.
Wie meinst du das? Ich wäre davon ausgegangen, dass sie bei high im
MΩ-Bereich liegen würden und bei low irgendwo zw. 15..50Ω. Also so wie
bei einem normalen IC auch.
Moment mal.... ich habe da etwas durcheinander gebracht. Die MΩ sind ja
auf der Seite von Eingängen. Nicht von Ausgängen.
Verstehen tuh ich es aber trotzdem nicht.
G. schrieb:> ich verwende den IC SN74LV07A, einen nicht-invertierender> Treiber, dessen Ausgang oben-drain ist. Er soll über ein> USB-Kabel mit einer anderen Platine kommunizieren. Um das> Problem mit dem Wellenwiderstand zu lösen, möchte ich eine> Serienterminierung vornehmen. Dazu muss Rs = Rz minus den> Innenwiderstand der Quelle sein.
Hmmm. Ich würde das wesentlich hemdsärmeliger versuchen:
Am Empfänger mit einem Pullup terminieren, und am Sender
den Open-Drain-Treiber und weiter nix.
Senderseite ist so zwar total fehlangepasst, weil sie je
nach Zustand zwischen Kurzschluss und Leerlauf schwankt;
das dürfte aber nicht stören, weil die Empfangsseite
korrekt abgeschlossen ist und somit keine Reflexionen
auftreten. Speisung des Senders über das Kabel und den
Pullup.
Nachteil: Bei L fließen dauernd 37mA.
Anja schrieb:> Aber mit einem Open Drain wird das nix.
Da hat Anja natürlich vollkommen recht. Oder der Pullup müsste auch rund
20Ω haben, aber dann gibt es kein brauchbares LOW mehr.
Nimm lieber einen normalen Treiber - keinen mit Open-Drain.
Dann kannst du einfach einen Serienwiderstand mit Z-(15..20Ω) nehmen.
Also bei einem 50Ω-Kabel passen 33Ω sehr gut.
Wenn du beim Empfänger den Open-Drain benötigst, dann gehe dort auf
einen LV125 und verbinde dessen Eingang und seinen OE-Pin miteinander.
Bei Low am Eingang hast du am Ausgang vom LV125 treibend Low und bei
High-Input dann Hi-Z am Ausgang.
HildeK schrieb:> Nimm lieber einen normalen Treiber - keinen mit Open-Drain.> Dann kannst du einfach einen Serienwiderstand mit Z-(15..20Ω) nehmen.> Also bei einem 50Ω-Kabel passen 33Ω sehr gut.
z.B. SN74LV541A
USB Kabel hat übrigens 90 Ohm.
HildeK schrieb:> Da hat Anja natürlich vollkommen recht. Oder der Pullup müsste auch rund> 20Ω haben
Ich hätte ja kein so großes Problem mich von meinem Gedanken mit dem
open-drain zu verabschieden. Aber ich verstehe nicht, warum ihr meint,
dass das nicht geht. Etwa weil die Flanke nach high dann nicht schnell
genug ist? Laut Datenblatt soll der chip max. 13ns brauchen (bei 3V3).
G. schrieb:> Moment mal.... ich habe da etwas durcheinander gebracht. Die MΩ sind ja> auf der Seite von Eingängen.
Bei Open-Drain hast du bei high schon Recht mit MΩ-Bereich. Open Drain
heißt, dass der Ausgang sich bei high im high-Z Zustand befindet.
Georg schrieb:> Joe F. schrieb:>> USB Kabel hat übrigens 90 Ohm> Differentiell. Hat hier überhaupt nichts zu sagen.
Ich bin allerdings auch davon ausgegangen, dass ich Rs dann an die 90Ω
anpassen müsste. Es heißt doch schließlich Rs=Rz-Ri?
G. schrieb:> Georg schrieb:>> Joe F. schrieb:>>> USB Kabel hat übrigens 90 Ohm>> Differentiell. Hat hier überhaupt nichts zu sagen.>> Ich bin allerdings auch davon ausgegangen, dass ich Rs dann an die 90Ω> anpassen müsste. Es heißt doch schließlich Rs=Rz-Ri?
Ich vermute mal, dass der diff. Wellenwiderstand (zwischen D+ und D-)
und der Wellenwiderstand zwischen D+/D- und GND sehr unterschiedlich
sein wird. D+ und D- sind ja ein verdrilltes Adernpaar, D+ und GND
nicht. Also völlig andere Geometrie im Kabel.
G. schrieb:> Ich bin allerdings auch davon ausgegangen, dass ich Rs dann an die 90Ω> anpassen müsste
Nein, bei einer einzelnen Leitung eher an 45 Ohm.
Georg
G. schrieb:> Ich hätte ja kein so großes Problem mich von meinem Gedanken mit dem> open-drain zu verabschieden. Aber ich verstehe nicht, warum ihr meint,> dass das nicht geht.
1. ich glaube nicht, dass der IC einen Pullup mit ca 50Ω (oder weniger,
man hat ja festgestellt, dass die 90Ω die differentielle Impedanz ist)
noch ordentlich nach Null ziehen kann.
2. wenn doch, dann muss er sehr kräftig und niederohmig sein. Sonst gibt
es kein LOW mehr am Ausgang.
3. bei LOW hast du R81 als Serienterminierung. Der Innenwiderstand der
Quelle hat ca. 15...20Ω, parallel dazu liegt R82 (wechselstrommäßig),
also tatsächlich 15Ω||R82+R81. Bei HIGH hast du R81+R82. Jetzt kannst du
die Widerstände so wählen, dass R81=R82≈1.5*Z ist, dann bist du mit
jeder Flanke noch am nächsten dran am tatsächlichen Wellenwiderstand.
(Die Parallelschaltung rührt daher, dass man hier wechseltrommäßige
Betrachtungen ansetzen muss und dabei sind die Spannungsquellen
kurzgeschlossen - wenn es nicht klar ist, male es dir auf)
4. Natürlich ist auch ein Push-Pull-Treiber nicht ideal und hat etwas
unterschiedliche Innenwiderstände bei HIGH und bei LOW, aber das fällt
dann nicht mehr auf. 10..20% Fehlanpassung machen bei Digitalsignalen
keinen Ärger.
Habe ich es übersehen oder hast du es noch nicht genannt: was sind das
für Signale, die du übertragen musst? Möglicherweise etwas recht
langsames? Woher kommt der Wunsch nach einem Open-Drain-Treiber?
Wenn ich so an I²C denke in dem Zusammenhang: der Pullup wäre zu
niederohmig, es ist die negative Flanke wichtig, die positive Flanke ist
eh langsam. Mit einem 33Ω Serien-R könnte man die negative (schnellere)
Flanke dann anpassen.
Da ein USB Kabel ein differentielles Kabel ist, sollte man auch
differentiell kommunizieren, sonst ward das nichts. Was sollte man mit
dem 2. Leiter tun ? offen lassen ? Fuer den Rueckkanal verwenden ?
Hier gibts viele hilfswillige Menschen, die dir korrekt
antworten, dass man optimal einen Quellwiderstand R_q hat,
der gleich der Leitungsimpedanz R_l ist und dass dann am
Empfangspunkt R_e auch dieser Widerstand wirksam sein muss.
Bei deinem Problem ist der o.C. aber KEIN PROBLEM!
Grundsätzlich ist es zur Vermeidung von Reflexionen nur wichtig,
dass die Abschluss-Impedanz R_e gleich der Leitungsimpedanz R_l
st!
Ist der Empfänger hochohmig, schaltet man einen R_e = R_l
als PARALLELEN ABSCHLUSS direkt vor den Empfangsbaustein
und ALLES IST GUT!
Welche Impedanz R_l ein Signalleiter in deinem USB-Kabel gegen
den Schirm = Masse hat, wirst du wissen, wenn du den optimalen
Abschluss gefunden hast. Probierst du 50 Ohm, bist du nicht
sehr weit vom Optimum entfernt. ;-)
Oldie schrieb:> Grundsätzlich ist es zur Vermeidung von Reflexionen nur wichtig,> dass die Abschluss-Impedanz R_e gleich der Leitungsimpedanz R_l> st!
Das ist im Allgemeinen nicht falsch.
> Ist der Empfänger hochohmig, schaltet man einen R_e = R_l> als PARALLELEN ABSCHLUSS direkt vor den Empfangsbaustein> und ALLES IST GUT!
Das geht aber bei digitalen Signalen nicht. Eine normale, digitale
Quelle kann seltenst einen 50Ω-Abschluss treiben. Und bei einem
OC-System mit PullUp erst recht nicht. Also: nichts ist gut!
HildeK schrieb:> Das geht aber bei digitalen Signalen nicht.
Mit digital hat das überhaupt nichts zu tun, sondern mit der
Leistungsfähigkeit des Treibers. Für 5V-Signale an 50 Ohm braucht man
Treiber mit 100 mA, das kann ein normaler LS, HC oder HCT nicht. Dafür
kann man z.B. einen SN74128 nehmen, gibt noch viele andere.
Georg
HildeK schrieb:>> Ist der Empfänger hochohmig, schaltet man einen R_e = R_l>> als PARALLELEN ABSCHLUSS direkt vor den Empfangsbaustein>> und ALLES IST GUT!>> Das geht aber bei digitalen Signalen nicht.
???
> Eine normale, digitale Quelle kann seltenst einen 50Ω-Abschluss> treiben.
Das ist ein Problem der Dimensionierung, nicht des Schaltungs-
prinzipes.
> Und bei einem OC-System mit PullUp erst recht nicht.
???
Der Treiber muss bei Low einen ziemlich großen (Dauer-)Strom
aufnehmen, das ist richtig. Auf diesen Nachteil hatte ich
übrigens im 5. Beitrag dieser Diskussion schon hingewiesen.
Auffälligerweise kann der historische 7406 einen Ausgangsstrom
von 30mA aufnehmen; zusammen mit 100 Ohm Wellenwiderstand (Flach-
kabel) gibt das 3V Hub...
Ich danke euch recht herzlich für die vielen Antworten. Aufgrund eurer
Tipps werde ich nun besser einen "normalen" push-pull Ausgang verwenden,
anstatt einen open-collector.
Da sich nun wegen der richtigen Wahl der Terminierung ein weiteres
Problem offenbart hat, möchte ich dieses besser in einem neuen thread
besprechen (sonst geriet hier alles unnötig durcheinander):
[[Serienterminierung: gilt der Wellenwiderstand NUR für spezielle
Adernpaare?]]