Forum: Analoge Elektronik und Schaltungstechnik IBIS Daten in LTspice - Simulationen nutzen


von Klaus R. (klara)



Lesenswert?

Hallo,
ich habe bisher für einen SN74LVC8T245 Bus Transceiver die Terminierung 
für eine Transmissionline TL mit LTspice optimiert. Eine klassische TL 
hat einen Sender und einen Empfänger. Der Sender hat in der Regel eine 
Serienterminierung.. An Eingang des Empfängers ist in der Regel eine 
AC-Terminierung. Das ist der übliche Aufbau.

In LTspice habe ich in den letzten Jahren für den Sender ein 
Ersatzschaltbild erstellt, siehe Anlage SN74LVC8T245_Sender.png. Der 
Pulse ist ein Trapez mit Flankensteilheiten gemäß Datenblatt.
Angaben zum Wert des Innenwiderstandes findet man nicht so leicht. Er 
wird aber mit 25 Ohm angegeben. Die Werte zu Cco, Rpo, Lpo und Cpo 
findet man in der Tat in den IBIS Modellen.

Zu diesen Werten stellt sich mir schon eine Frage. Der Wellenwiderstand 
der Eingangsbelages liegt nicht weit weg vom Nenn-Wellenwiderstand. Da 
dieser Belag eine Länge von 2mm bis vielleicht 5 mm hat dürfte er 
übetragungstechnisch keine Rolle spielen. Dieser Belag dämpft Frequenzen 
von über 500 MHz.

Jetzt kommt es in der Praxis vor das ich auf eine Länge von 123 mm in 
Abständen von 41 mm Empfänger habe mit einem hochohmigen Eingang und 5 
pF gegen Masse. Wie das Signal das aussieht ist in Anlage "Signal mit 3 
Auskopplungen.png" zu sehen.

Gut, das Problem läßt sich durch Serienwiderstände an ein Eingängen der 
Auskopplungen entschärfen. Die Umsetzung ist jedoch aus Platzgründen 
nicht so einfach.

Ich wollte einfach mal sehen ob eine genauerer Simulation bessere 
Ergebnisse zeigt.
Und hier kann das IBIS Modell helfen.

[Ramp] AVC8T245_IO
  [Rising Waveform]
    Liste: Zeit - Spannung
  [Falling Waveform]
    Liste: Zeit - Spannung

Aus den beiden Listen, in den die Ausgangsspannung nach der Zeit 
aufgeführt ist, läßt sich eine PWL Datei für eine Impulskette erzeugen. 
In Anlage "Vergleich Klassisch & IBIS-PWL.png" sieht man den 
Unterschied. Das ein einfaches trapezförmiges Signal mehr Oberwellen hat 
ist offensichtlich. Das der Unterschied jedoch so deutlich ist hatte 
mich doch etwas überrascht.

Nach dem klassischen, einfachen Modell ist Verlauf Nr. 1 nicht toll, 
aber vielleicht noch gerade tragbar. Die IBIS-PWL zeigt es deutlicher. 
Nr. 1 macht einen kleinen Schlenker und das etwas über Threshold. Das 
muß verbessert werden.

Im den IBIS Listen IO Pullup und IO Pulldown sind die Spannungs- und 
Stromwerte des Outputs wiedergegeben. Somit hätte ich dann ja eigentlich 
einen dynamischen Innenwiderstand.
Sie Anlagen "AVC8T245 IO Pullup.png" und "AVC8T245 IO Pulldown.png".

https://ibis.org/cookbook/cookbook-v4.pdf

An die Stromrichtungen der IBIS Daten muß man sich zunächst erst einmal 
gewöhnen. Das oben angeführte Kochbuch vermittelt dies mit am besten. 
Siehe Seite 55.

Vorausgesetzt das ich die Daten richtig interpretiert habe ergibt sich 
für typische Werte:

Pullup
  0,055 V   31,1 Ohm
  1,820 V  36,1 Ohm

Pulldown
  0,120 V   30,7 Ohm
  1,830 V  32,6 Ohm

https://www.ti.com/lit/an/scea006a/scea006a.pdf

Die TI Publikation aus dem Jahr 1998 "AVC Logic Family Technology and 
Applications" ist recht interessant. Auf Seite 3 haben wir ein Diagramm 
"Figure 2. Impedance Changes Through Switching Transitions" Es geht hier 
schon um die AVC Familie. Dort ist der Impedanzverlauf etwas 
ausgeprägter wiedergegeben als es aus den aktuellen IBIS Daten zu sehen 
ist.

Auf Seite 14 wird es sogar konkret, man hat mit einer Serienterminierung 
von 26 Ohm die besten Ergebnisse erzielt. Bei 50 Ohm Wellenwiderstand 
käme man auf einen Innenwiderstand von 24 Ohm.

Das passt wiederum nicht zu den IBIS Daten.
Wie muß ich das verstehen?

mfg Klaus

: Verschoben durch Moderator
von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Die Ausgangsstufe ist genauso wie die am andere Ende folgende 
Eingangsstufe nichtlinear. Den einen perfekten Serienwiderstand kann es 
also gar nicht geben, eher einen Wert für niedrigste Bitfehlerrate.

: Bearbeitet durch User
von Klaus R. (klara)


Angehängte Dateien:

Lesenswert?

Hallo Abdul,

Klaus R. schrieb:
> https://www.ti.com/lit/an/scea006a/scea006a.pdf
>
> Die TI Publikation aus dem Jahr 1998 "AVC Logic Family Technology and
> Applications" ist recht interessant. Auf Seite 3 haben wir ein Diagramm
> "Figure 2. Impedance Changes Through Switching Transitions" Es geht hier
> schon um die AVC Familie. Dort ist der Impedanzverlauf etwas
> ausgeprägter wiedergegeben als es aus den aktuellen IBIS Daten zu sehen
> ist.

Ich habe als Anhang das angesprochene Diagramm mal beigefügt. Die IBIS - 
Daten im Anhang meines ersten Beitrages AVC8T245_IO_Pullup.png und 
AVC8T245_IO_Pulldown.png sehen da etwas anders aus.

Klaus R. schrieb:
> Vorausgesetzt das ich die Daten richtig interpretiert habe ergibt sich
> für typische Werte:
>
> Pullup
>   0,055 V   31,1 Ohm
>   1,820 V  36,1 Ohm
>
> Pulldown
>   0,120 V   30,7 Ohm
>   1,830 V  32,6 Ohm

Ich habe später noch in einer anderen Veröffentlichung eine weitere Art 
der Bestimmung von Zout gefunden
1
How to Use the IBIS Model
2
Zout = delta V/delta I
3
Zout = |(V2  V1)/(I2  I1)|
4
5
danach ändert sich das Ergebnis, aber ...
6
7
Pullup
8
             alt         neu
9
   0,055 V   31,1 Ohm    31,0 Ohm
10
   1,820 V   36,1 Ohm    50,2 Ohm
11
 
12
 Pulldown
13
             alt         neu
14
   0,120 V   30,7 Ohm    30,6 Ohm
15
   1,830 V   32,6 Ohm    36,0 Ohm

... aber insgesamt sieht das für mich nicht plauisibel aus.

In der Publikation scea006a.pdf spricht man eben von einem 
Serienwiderstand von 26 Ohm der bei einer 50 Ohm Transmission Line die 
besten Ergebnisse brachte. Nebenbei, bei der LVC Familie sieht es 
ähnlich aus.

Abdul K. schrieb:
> Die Ausgangsstufe ist genauso wie die am andere Ende folgende
> Eingangsstufe nichtlinear.

Die Eingangsstufe betrachte ich hier gar nicht. Sie ist zunächst sehr 
hochohmig.

https://www.ti.com/lit/an/slyt413/slyt413.pdf
Seite 9

"The input and output impedances can be critical to
signal transmission. The following equation defines the
characteristic impedance of the IBIS model pins"

In den IBIS Component Daten werden zu jedem Pin R_pkg, L_pkg und C_pkg 
angeben.

https://ibis.org/cookbook/cookbook-v4.pdf

Ich meine im Kochbuch den Hinweis gelesen zu haben, die Leitungslänge 
ist mit 2-4 mm einfach zu kurz um als Wellenwiderstand zu wirken. Aber 
immerhin haben wir hier ein Tiefpassfilter der weit über 500 MHz wirkt.

Die IBIS - Daten zur Waveform, falling und rising, sind für LTspice 
wirklich brauchbar. Bei Frequenzen von 3 MHz und Längen bis 500 mm 
genügt auch ein trapezförmiges Singnal.

Ich sehe in den IBIS Daten nur die Pullup und Pulldown Daten aus denen 
sich eine Funktion des Innenwiderstandes ableiten liesse.
1
Bei AVC und 1,8 V habe ich
2
 bei Pullup   0,880 V 32,6 bzw. 34,7 Ohm
3
 bei Pulldown 0,865 V 31,3 bzw. 32,0 Ohm

Der Unterschied zu 24 Ohm Innenwiderstand in der Publikation 
scea006a.pdf ist mir dennoch zu hoch um darauf einzugehen.
mfg Klaus

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Ich verliere einfach die Übersicht beim Durchlesen deines länglichen 
Textes. Das auch andere nix dazu schreiben, bestätigt mich.

Mit IBIS habe ich keine größeren Erfahrungen, da man das nur sehr 
umständlich in LTspice integrieren kann. Also lasse ich davon bislang 
lieber die Finger.


Also generell so ein paar Gedanken:

Ein paar mm Leitungslänge sind bei 500MHz durchaus sichtbar.

Kannst du überhaupt so genau messen?

Funktioniert dein realer Aufbau nicht wie erwartet?

Willst du die stufenweisen Ankopplungen in deinem Verteilerbaum 
optimieren?

Das die niedrigste Impedanz bei mittlerer Spannung am Ausgang des 
Treibers liegen soll laut Diagramm, verstehe ich auch nicht. Da müßte 
theoretisch die höchste Impedanz beim Flankenwechsel sein!

Die Eingangsterminierung kann man auch noch auf andere Arten 
realisieren, bspw. Spannungsteiler oder negative Impedanz.

Bei nicht optimaler Terminierung transformieren Leitungen.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Klaus R. schrieb:
> Der Unterschied zu 24 Ohm Innenwiderstand in der Publikation
> scea006a.pdf ist mir dennoch zu hoch um darauf einzugehen.
> mfg Klaus

Vielleicht sind es Messfehler oder sonstige Ungereimtheiten.

Bei bipolaren Chips sind Widerstandstoleranzen +/-20% normal, bei CMOS 
werden es eher 30% sein. Werte für Transistoren habe ich nicht im Kopf, 
wird ähnlich sein.

In dem gezeigten Diagramm will man eine designtechnisch integrierte 
gewollte Impedanzerhöhung bei Erreichen der Rail-Spannungen darstellen. 
Das dient der Dämpfung von Reflexionen (aka aktive 
Terminerungssteuerung) und entspricht einer Tiefpaßwirkung der 
Oberwellen.

In deiner Simulation hast du immer einfach 25ohm Ausgangsimpedanz 
eingesetzt. Verpasse ich da was?

Die Pin-Impedanz könnte man z.B. über den Querstrom der I/O-Stufe 
indirekt ermitteln.

von Klaus R. (klara)


Angehängte Dateien:

Lesenswert?

Abdul K. schrieb:
> Mit IBIS habe ich keine größeren Erfahrungen, da man das nur sehr
> umständlich in LTspice integrieren kann. Also lasse ich davon bislang
> lieber die Finger.

Inzwischen denke ich bald ebenso.

Die Ausnahme sind die IBIS Tabellen Rising- und Falling Waveform. 
Anstatt nur mit den Steig- und Fallzeiten zu arbeiten erhält man hier 50 
bis 100 Messwerte die den exakten Verlauf wiedergeben. Die kann man in 
eine LTspice PWL - Datei entsprechend übertragen. Der Vergleich ist 
deutlich, die Simulationen mit den PWL Daten sind exakter.

Abdul K. schrieb:
> Also generell so ein paar Gedanken:
>
> Ein paar mm Leitungslänge sind bei 500MHz durchaus sichtbar.
>
> Kannst du überhaupt so genau messen?
>
> Funktioniert dein realer Aufbau nicht wie erwartet?

Es geht hier ja weniger um das Messen. Bei 1,8 V ist gemäß 
Nexperia_LOGIC_Handbook ein LVC Typ bis 80 MHz einsetzbar. Der AVC ist 
typisch bis 320 MHz einsetzbar.

Ja, der reale Aufbau verursachte vermutlich Bitfehler. Leider hatte man 
in der Urlaubszeit ohne Rücksprache das Problem mit einem AVC245 
beseitigen können ohne z.B. mit Fotos zu dokumentieren. Nach der 
genaueren IBIS-PWL LTspice Simulation war die Terminierung grenzwertig.

Abdul K. schrieb:
> Willst du die stufenweisen Ankopplungen in deinem Verteilerbaum
> optimieren?

Ja, das hat sich als die optimale Lösung herausgestellt. Die 
Ankopplungen haben zwar jeweils nur 5 pF, die Reflektionen stören aber 
die erste Ankopplung besonders deutlich. Die klassische 
Serienterminierung oder die AC-Terminierung oder Komibinationen davon 
bringen hier keine Besserung. So eine Transmission Line muß eben homogen 
sein. Man muß sich mal die Strom- und Spannungwerte ansehen und kann das 
dann besser verstehen.

Mit einem einfachen Vorwiderstand vor den 5 pF löst man das Problem. Es 
kann dann in diesem Fall auch die Serienterminierung oder die 
AC-Terminierung entfallen.

Abdul K. schrieb:
> Das die niedrigste Impedanz bei mittlerer Spannung am Ausgang des
> Treibers liegen soll laut Diagramm, verstehe ich auch nicht. Da müßte
> theoretisch die höchste Impedanz beim Flankenwechsel sein!

Dynamic Output Control (DOC) Circuitry Technology and Applications
https://www.ti.com/lit/an/scea009b/scea009b.pdf

Das Diagramm mit dem Impedanzverlauf während der Steigphase findet man 
auf der Seite 5 wieder. In der Tat will man in der mittleren Phase den 
größten Stromanteil transportieren und im oberen Teil den Strom 
vermindern um Überschwinger zu vermeiden. Die untere Phase ist ebenfalls 
hochohmig.
Eigentlich ist das genial.

Phillips hat 1999 "AN251 AVC Logic Family" herausgegeben und stellt auf 
Seite 6 DOC vor.

"Figure 7. Simplified DCO output structure"
https://application-notes.digchip.com/004/4-7882.pdf

Über die IBIS Tabellen Pulldown und Pullup müßte man zum Innenwiderstand 
des Treibers kommen. Wichtig ist dabei die Spannung Vout einzustufen. 
Das hatte ich ganz am Anfang auch übersehen.

NMOS
Pulldown Spannung relativ zu GND
Zout=VOUT/IOUT

PMOS
Pullup Spannung = VDD-VOUT
Zout=(VDD-VOUT)/IOUT

Westerhoff hat da einen interessanten Ansatz. Siehe Bild Westerhoff.png.
https://ibis.org/summits/jun05/westerhoff.pdf
Seite 28

Er sagt, ein 1,8 V Treiber braucht bei 50 Ohm Wellenwiderstand 100 Ohm 
Gesamtwiderstand für eine refektionsfreie Übertragung.
Die Tabellenkalkulation liefert uns die Diagramme und die entsprechenden 
Geraden kann man auch unterbringen.
In Farbe Rot habe ich die Gerade für 50 Ohm eingetragen und der 
Schnittpunkt liefert mir einen Meßpunkt und letztlich den Widerstand.
Das ist es jedoch noch nicht ganz. Jetzt wird eine zweite Gerade 
erstellt für 50 Ohm + dem ermittelten Widerstand.
Die zweite Gerade liefert einen verbesserten Wert.

Diese Methode löst das Problem, welcher Meßwert ist denn am 
geeignetsten.

Beim AVC245, 1,8 V, komme ich:

Pullup Anfang : 53,0 Ohm
Pullup Endwert: 96,3 Ohm

Pulldown Anfang : 31,1 Ohm
Pulldown Endwert: 31,2 Ohm

Beim IBIS Modell für den LVC245 sieht es besser aus.

Zuvor hatte ich auch etwas in der internationalen LTspice Usergroup 
gefunden. Aus den Pulldown Daten nimmt man bei 0,5 V und VDD - 0,5 V 
jeweils den R-ON Wert und ermittelt den Durchschnitt.

Das selbe macht man für Pullup. Zum Schluß werden beide R-ON Werte 
wieder gemittelt und hat einen gesamten R-ON Wert.

https://groups.io/g/LTspice/message/114774

Wie man auf die 0,5 V kommt wird nicht gesagt.
##############################################

Abdul K. schrieb:
> Bei bipolaren Chips sind Widerstandstoleranzen +/-20% normal, bei CMOS
> werden es eher 30% sein. Werte für Transistoren habe ich nicht im Kopf,
> wird ähnlich sein.

Deswegen gibt es in einigen IBIS Tabellen typische -, min- und 
max-Werte.
Die werde ich demnächst ebenfalls nutzen wenn es angebracht ist.

Abdul K. schrieb:
> In deiner Simulation hast du immer einfach 25ohm Ausgangsimpedanz
> eingesetzt. Verpasse ich da was?

Beim LVC245 hatte ich schon vor 5 Jahren einen Hinweis auf die 25Ohm in 
einer TI Publikation entdeckt.

Für den AVC245 bin ich in der TI Doku scea006a.pdf auf Seite 14 fündig 
geworden und hatte mit 26 Ohm Terminierung die besten Ergebnisse.

Wenn ich diese Werte aus IBIS Daten ermitteln könnte, dann hätte ich 
mein Ziel erreicht. Irgendwie muß das doch möglich sein.
Nur vorerst müssen mir die PWL Daten genügen.


mfg Klaus

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Wow, du hast dich ziemlich tief reingehangen. Schön wenn dein Job dir 
dafür so viel Zeit laßt.

"Genial", naja. Dann wäre ich ja auch genial😂

Sowas ähnliches gibt es auch für analoge Ausgangsstufen, um die Verluste 
im seriellen
Terminierungswiderstand zu verringern. Maxim hat dazu ne AppNote.

---
Alles schweigt.

von Klaus R. (klara)


Lesenswert?

Abdul K. schrieb:
> Wow, du hast dich ziemlich tief reingehangen.

Es geht hier eigentlich um digitale Anwendungen. Ich decke da Bereiche 
ab für die Kenntnisse der Übertragungstechnik notwendig sind. Mein 
früheres Basiswissen war schon hilfreich aber ich habe in den letzten 10 
Jahren mehr gelernt als in den Jahren davor. LTspice war dabei das 
ultimative Werkzeug. Von Helmut Sennewald konnte man auch einiges 
mitnehmen.

Ich denke es würde sich lohnen mehr über den dynamischen Innenwiderstand 
zu wissen. Die Quelle sind die IBIS Daten. Aber ich habe 3-4 Methoden 
gefunden die jeweils nicht plausibel mit Angaben von TI - Publikationen 
sind. Am wenigsten passen die TI IBIS Daten zum SN74AVC8T245. Die 
dortige DOC Schaltung erkennt man in den IBIS Daten nicht wieder.

Am besten finde ich den Ansatz von Westerhoff.

NMOS
Pulldown Spannung relativ zu GND
Zout=VOUT/IOUT

PMOS
Pullup Spannung = VDD-VOUT
Zout=(VDD-VOUT)/IOUT

Den Rechenvorgang für Pulldown kann ich gut nachvollziehen und die 
Widerstandswerte sehen brauchbar aus.

Beim Pullup lande ich immer im hochohmigen Bereich. Ein paar Messwerte 
weiter wären die Widerstandswerte brauchbarer.

Nun ja, ich muß mich in der Tat jetzt wieder mehr um andere Dinge 
kümmern.
Ich hoffe der Thread hilft anderen dazu in das Thema voranzukommen. Es 
würde mich freuen.
mfg Klaus

von Klaus R. (klara)


Lesenswert?

Abdul K. schrieb:
> "Genial", naja. Dann wäre ich ja auch genial😂

Warum so bescheiden? Du bist mir schon öffters sehr positiv 
aufgefallen.🙂
mfg Klaus

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Danke, das kann ich erwidern.

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.