Hallo,
Folgende Konstellation:
-----------------------
FPGA_VIRTEX5_LVCMOS33 --> ADN4667_LVDS_DRIVER
- Wegstrecke vom LVCMOS33 Ausgang zum LVDS_Driver Eingang = 5cm.
Frage:
------
Ist am Eingang des LVDS_Drivers eine Terminierung nötig?
Überlegung:
-----------
Der Ausgangsstrom eines LVCMOS33-Ausgangs wird nicht mehr als 24mA
betragen. Terminiere ich mit 50 Ohm sinkt die Spannung auf 1,2V, was
nicht mehr als High Pegel beim LVDS_Driver erkannt wird.
Also Terminierung ganz weglassen? Überlegungen richtig?
Danke und Gruß
@ Termi (Gast)
>FPGA_VIRTEX5_LVCMOS33 --> ADN4667_LVDS_DRIVER>- Wegstrecke vom LVCMOS33 Ausgang zum LVDS_Driver Eingang = 5cm.>Ist am Eingang des LVDS_Drivers eine Terminierung nötig?
Siehe Wellenwiderstand.
>Der Ausgangsstrom eines LVCMOS33-Ausgangs wird nicht mehr als 24mA>betragen. Terminiere ich mit 50 Ohm sinkt die Spannung auf 1,2V, was>nicht mehr als High Pegel beim LVDS_Driver erkannt wird.
So geht es also nicht ;-)
>Also Terminierung ganz weglassen? Überlegungen richtig?
Nö. Lies den Artikel. Du kommst allein drauf (und es ist pädagogisch
wertvoll)
Falk B. schrieb:>>Also Terminierung ganz weglassen? Überlegungen richtig?>> Nö. Lies den Artikel. Du kommst allein drauf (und es ist pädagogisch> wertvoll)
Hi Falk!
Danke für die Rückmeldung.
Die Sache mit dem Wellenwiderstand ist mir klar ;-). Allerdings stellt
sich die Frage ob eine externe Terminierung nötig ist. Eine
Serienterminierung am Ausgang des FPGA ist wohl nicht nötig?
@ Termi (Gast)
>Die Sache mit dem Wellenwiderstand ist mir klar ;-).
Wenn es das wäre, würdest du die Frage nicht stellen.
>Allerdings stellt>sich die Frage ob eine externe Terminierung nötig ist. Eine>Serienterminierung am Ausgang des FPGA ist wohl nicht nötig?
Ich wiederhole mich. Lies den Artikel Wellenwiderstand in RUHE und
denk drüber nach. Dort steht alles drin!
(Nein, ich verrate die Lösung nicht. Wenn jemand diese einfache Frage
nicht mit der eigenständigen Lektüre und Nachdenken lösen kann, dann
sehe ich schwarz, dann das wäre fast uner Arduino-Niveau!)
Ich präzisiere meine Ausage mal: Der Ausgangsstrom des LVCMOS33-Pins ist
beim FPGA konfigurierbar (von 2...24mA). Entspricht dies nicht bereits
einer einstellbaren Impedanz und somit einer einstellbaren
Serienterminierung?
Es geht mir im Prinzip nur darum, ob generell überhaupt ein externes
Bauteil nötig ist (Parallelterminierung scheidet aus, bleibt nur die
Serienterminierung).
@Termi (Gast)
>Ich präzisiere meine Ausage mal: Der Ausgangsstrom des LVCMOS33-Pins ist>beim FPGA konfigurierbar (von 2...24mA). Entspricht dies nicht bereits>einer einstellbaren Impedanz und somit einer einstellbaren>Serienterminierung?
Nein, zumal diese Angaben rein statisch sind. HF-mäßig haben sie nur
bedingt Einfluß.
>Es geht mir im Prinzip nur darum, ob generell überhaupt ein externes>Bauteil nötig ist (Parallelterminierung scheidet aus, bleibt nur die>Serienterminierung).
Schon mal ein richtiger Gedanke. Geh doch einfach mal die Betrachtung
des Artikels (TIPP! Anstiegszeit) hier durch und rechne nach.
So ich bins nochmal :-)
Danke Falk für deine Denkanstöße.
Es ist nun so, dass der FPGA intern schon die Terminierung
(Serienterminierung) ermöglicht. Somit brauche ich keine extra Bauteile
mehr. Das wars eigentlich schon was ich wissen musste. Der
Wellenwiderstand der Leitung wird nat. entsprechend dimensioniert.
Nochmals Danke und schönes Wochenende!
Termi schrieb:> Es ist nun so, dass der FPGA intern schon die Terminierung> (Serienterminierung) ermöglicht.
Leider sind diese internen Terminierungen nicht immer besonders toll,
dafür per SW einstellbar. Sind eben Nachbildungen eines ohmschen
Verhaltens mittels Stromquellen, deren Wirkung über den ganzen Signalhub
nicht ordentlich ohmisch ist. Ich habe da schon mal Schiffbruch erlitten
- war aber kein Xilinx-Baustein.
Mein Tipp: für die Taktleitungen einen externen, echten Widerstand
vorsehen und erst nach Verifikation in deiner Umgebung kannst du dann
ev. mit 0R bestücken oder ihn beim Redesign dann weglassen. Die
Datenleitungen sind weniger kritisch.
HildeK schrieb:> Termi schrieb:>> Es ist nun so, dass der FPGA intern schon die Terminierung>> (Serienterminierung) ermöglicht.>> Leider sind diese internen Terminierungen nicht immer besonders toll,> dafür per SW einstellbar. Sind eben Nachbildungen eines ohmschen> Verhaltens mittels Stromquellen, deren Wirkung über den ganzen Signalhub> nicht ordentlich ohmisch ist. Ich habe da schon mal Schiffbruch erlitten> - war aber kein Xilinx-Baustein.> Mein Tipp: für die Taktleitungen einen externen, echten Widerstand> vorsehen und erst nach Verifikation in deiner Umgebung kannst du dann> ev. mit 0R bestücken oder ihn beim Redesign dann weglassen. Die> Datenleitungen sind weniger kritisch.
Hi Hilde,
Welchen FPGA hattest du denn? Meines Wissens nach Arbeiten die Xilinx
mit einem Referenzwiderstand. Beim Spartan6 beispielsweise wird im
Datenblatt schon auf die Ungenauigkeit hingewiesen. Dort heißt es:
1
The Spartan-6 FPGA programmable output driver impedance feature is similar to the DCI feature available in many other Xilinx FPGA fa
2
milies. However, an important difference is
3
that the programmable output driver impeda
4
nce is not calibrated, and therefore some
5
variation to the target output impedance valu
6
e will exist across process, temperature, and
7
voltage variations. Proper evaluation of the system should always include signal integrity
In einem Xilinx Forum schrieb ein Moderator, man könne die
Serienterminierung durch die Einstellung der Treiberstärke in etwa
hinbiegen (was nun im Widerspruch zu Falks Aussage steht, die
Treiberstärke wäre nur statischer Natur).
"The other good news? Yes, 8 or 6 mA is very close to 50 ohms: USE IT!
(if your pcb is 50 ohms, that is)."
https://forums.xilinx.com/t5/Spartan-Family-FPGAs/Spartan-6-LVCMOS33-output-termination/td-p/323197
analysis, ideally by using Xilinx IBIS models and running IBIS
simulations.
@ Termi (Gast)
>In einem Xilinx Forum schrieb ein Moderator, man könne die>Serienterminierung durch die Einstellung der Treiberstärke in etwa>hinbiegen
Mit der Betonung auch "hinbiegen".
> (was nun im Widerspruch zu Falks Aussage steht, die>Treiberstärke wäre nur statischer Natur).
Naja, es ist keine exakte Wissenschaft ;-)
>"The other good news? Yes, 8 or 6 mA is very close to 50 ohms: USE IT!>(if your pcb is 50 ohms, that is)."
Hast du wirklich 50 Ohm Leitungen?
Falk B. schrieb:> @ Termi (Gast)>>>In einem Xilinx Forum schrieb ein Moderator, man könne die>>Serienterminierung durch die Einstellung der Treiberstärke in etwa>>hinbiegen>> Mit der Betonung auch "hinbiegen".
Hi Falk,
Ich bin da ganz Deiner Meinung (also auch etwas skeptisch).
Beim Virtex5 mache ich mir da allerdings keine Gedanken. Aber die
Angaben zum Spartan6 (mit dem ich mich auch beschäftige) sehen nicht so
vertrauenserweckend aus :-/
> Hast du wirklich 50 Ohm Leitungen?
Die Leitungen (Leiterbahnbreite bei gegebenem Abstand zur Massefläche)
lasse ich mir vom Leiterplattenhersteller berechnen und bin da bislang
sehr gut gefahren.
Termi schrieb:> Hi Hilde,
HildeK bitte!
>> Welchen FPGA hattest du denn?
Kein FPGA, sondern einen Freescale Grafikprozessor. Wie gut das jeweils
implementiert ist, hängt eben auch vom Know-How und den Ansprüchen des
Herstellers ab.
Du wirst sicher mit der internen Quellterminierung auskommen. Zumal es
nur 5cm an Leitungslänge sind (obwohl, die Virtex sind recht schnell).
Außerdem: eine Ablage von 10% ist da völlig harmlos. Es wird nicht so
heiß gegessen wie gekocht :-).
Außerdem: was für eine Eingangsspezifikation hat dein LVDS-Treiber? Es
kann durchaus sein, dass der auch einen größeren Überschwinger oder
Unterschwinger per Spezifikation verträgt. Dann brauchst du bei 5cm
vielleicht gar nichts.
Falls einstellbar: lieber etwas zu niedrig terminieren, das gibt dann
zwar leichte Überschwinger, aber gleichzeitig bleibt auch das Signal
steiler.
Es ist jedenfalls auch bei Xilinx so, dass aus den Angaben der
einstellbaren Treiberstärke, der SlewRate usw. nicht zuverlässig gesagt
werden kann (zumindest steht das nicht im Datenblatt), welcher
Serienwiderstand dabei emuliert wird. Aber der Support hat ja eine
Definition abgegeben, das ist schon mal ganz gut.
Den LVDS-Modus vom FPGA wolltest Du nicht nehmen?
Termi schrieb:> Also Terminierung ganz weglassen?
Ja, Mut zum Risiko!
Was hast Du für Messmöglichkeiten zur Verfügung?
Welche Datenrate soll genutzt werden?
Wie die Terminierung dimensioniert werden sollte, hängt ja auch von der
Eingangskapazität des LVDS-Treibers ab. Dazu habe ich auf die Schnelle
im Datenblatt nichts finden können.
Im Zweifelsfall (wie schon geschrieben wurde) Widerstände vorsehen. Mit
0 Ohm kann man die immer noch bestücken.
Dirk