mikrocontroller.net

Forum: FPGA, VHDL & Co. LVDS Clock am Artix7


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Gustl B. (-gb-)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo,

ich habe einen 500 MHz Oszillator, der ist an einem Taktteiler AD9508 
angeschlossen. Aus dem Taktteiler gehen mehrere Takte raus zu ADC, DAC, 
aber auch zum FPGA.

Der Taktteiler ist für den Ausgang zum FPGA so konfiguriert:
Register 0x27 bis 0x2C, im Datenblatt 
https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf 
auf Seite 38.
0x27: x"04"
0x28: x"00"
0x29: x"00"
0x2A: x"00"
0x2B: x"14"
0x2C: x"00"
Konkret:
x"04" in Register 0x27 ist der Teiler -1. Es wird also durch 5 geteilt. 
Aus den 500 MHz werden 100 MHz.
Die Register 0x28 ... 0x2A machen sind nur weiter für Teiler und Phase.
x"14" b"00010100" in Register 0x2B sagt:
Divider 3 power-down: 0
0 = Divider 3 is synchronized during output sync (default): 0
These bits determine the phase of the OUT3 driver: 01 = noninverting
These bits determine the OUT3 driver mode: 010 = LVDS 1 × 3.5 mA 
(default)
Reserved: 0b = default

Das ist als LVDS mit dem Artix7 verbunden und zwar so wie im Anhang. 100 
Ohm zwischen den Leitungen und dann noch je Leitung 100 nF hin zum FPGA. 
Das habe ich aus dem ADC Datenblatt: 
https://www.analog.com/media/en/technical-documentation/data-sheets/AD9650.pdf 
Figure 90 Seite 33.

Im FPGA habe ich folgendes:
Im XDC:
## Clock signal Sch name = CLK_AD9508_OUT3
set_property PACKAGE_PIN G4 [get_ports CLK_AD9508_OUT3p]
set_property PACKAGE_PIN F4 [get_ports CLK_AD9508_OUT3n]
set_property IOSTANDARD DIFF_SSTL15 [get_ports CLK_AD9508_OUT3p]
set_property IOSTANDARD DIFF_SSTL15 [get_ports CLK_AD9508_OUT3n]

Da ist auch gleich die erste Frage:
DIFF_SSTL15 habe ich verwendet, weil ich kein LVDS oder so gefunden 
habe. Was sollte ich an dieser Stelle verwenden?

Im VHDL habe ich dann das:
IBUFGDS_inst : IBUFGDS
generic map (
DIFF_TERM => FALSE, -- Differential Termination
IBUF_LOW_PWR => FALSE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
IOSTANDARD => "DIFF_SSTL15")
port map (
O => CLK_AD9508_OUT3, -- Clock buffer output
I => CLK_AD9508_OUT3p, -- Diff_p clock buffer input (connect directly to top-level port)
IB => CLK_AD9508_OUT3n -- Diff_n clock buffer input (connect directly to top-level port)
);

Bisher verwende ich den Takt im FPGA nur für einen Zähler der eine LED 
blinken lässt. Und da ist das Problem: Manchmal hört die auf zu blinken 
oder hat kurz aussetzer. Wenn ich den Takt mit dem Oszi messe, also 
Tastkopf an den 100 Ohm Widerstand, dann sehe ich schöne 100 MHz ohne 
Aussetzer mit einer Amplitude von fast 500 mV und einem DC Offset von 
ca. 1,2 V. Sonst passen die Spannungen auch, das FPGA bekommt 1,8 V, 1,0 
V und 3,3 V.

Mache ich etwas grob falsch? Ein wenig Rumlöten wäre kein Problem. Zur 
Not konfiguriere ich den Taktteiler auch auf CMOS und verwende nur eine 
Leitung für den CMOS Takt.

Edit:
Doch ich kann LVDS_25 verwenden. Mal gucken ob das hilft.

: Bearbeitet durch User
Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für LVDS muss di VCCIO an der entsprechenden Bank am Artix 2,5V 
betragen. Sonst wird das nix

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne, laut 
https://forums.xilinx.com/t5/Other-FPGA-Architecture/LVDS-in-HR-banks/td-p/206709 
kann man an den HR Bänken auch bei 1.8 V VCCIO LVDS machen wenn man 
extern terminiert.

Oh und das hatte ich falsch geschrieben, ich verwende einen Spartan7. 
Der hat nur HR Bänke.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch weitere Fragen:

1. Wie testet am ob eine Clock im FPGA korrekt ankommt? Ich könnte da 
jetzt zählen und mit einer anderen Clock ausgeben, aber da die Clocks ja 
nicht exakt den gleichen Takt haben kann ich auch nicht sicherstellen, 
dass das 100% passt. Ich könnte den Takt im FPGA herunterteilen oder mit 
einer PLL herabsetzen und wieder auf einem IO herausgeben und dort mit 
dem Oszi messen ob die Periodendauer konstant ist. Aber da sehe ich eben 
nicht ob einzelne Takte ab und zu fehlen.

2. Meine Hardware wird über USB mit Strom versorgt. Ich habe ein kleines 
USB Strommessgerät, das ist ganz praktisch weil ich dadurch beim 
Bestücken jeweils nachmessen konnte wie viel Strom jedes zusätzliche IC 
zieht. Jetzt zieht die Platine über USB 0,34 A. Wenn ich aber das Oszi 
anschließe, konkret die Masse des Oszis, dann sinkt der Strom über USB 
auf ca. 0,12 A. Warum ist das so? Muss ich mir Angst um das Oszi machen 
weil da Strom über irgendwelche Schutzdioden oder so fließt?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst entweder den 100 Ohm Widerstand an das FPGA setzen (also 
"hinter" die Kondensatoren, oder VCCIO auf 2.5V und intern terminieren. 
Sonst wird das nix zuverlässiges. Als IO Standard muss es auch LVDS 
geben. Da gibts auch noch LVDS_25 aber das ist nur für HP. Oder genau 
anders herum ^^

Dein Problem ist aber die falsche bzw aus Sicht des FPGA fehlende 
Terminierung.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, aber wieso wird dann ein LVDS Takt genau so an den ADC angeschlossen 
laut dem Datenblatt?
Figure 90 Seite 33 
https://www.analog.com/media/en/technical-documentation/data-sheets/AD9650.pdf

Autor: Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nils schrieb:
> Für LVDS muss di VCCIO an der entsprechenden Bank am Artix 2,5V
> betragen. Sonst wird das nix

Doch, wenn man extern terminiert geht auch eine 3.3 V Bankspannung. 
Siehe untere Grafik in: 
https://www.xilinx.com/support/answers/43989.html

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt habe ich ein paar Datenblätter gelesen und werde nicht 
wirklich schlauer.


https://www.analog.com/media/en/technical-documentation/data-sheets/ad9528.pdf
Figure 20 Seite 22

https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf
Figure 39 Seite 20

Das ins beides Takt ICs, den AD9508 verwende ich, also die Clock zum 
FPGA kommt aus diesem Stein. Beide sagen im Datenblatt klar, dass zuerst 
der Widerstand und dann die Kondensatoren kommen.

Andererseits finde ich auch Datenblätter die genau das Gegenteil 
behaupten/empfehlen.

Ich lasse mir jetzt den Takt wieder auf einem anderen IO als CMOS 
ausgeben. Das sieht OK aus und ich konnte keine Fehler sehen, aber ich 
weiß auch nicht wie man das mit dem Oszi gut misst.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist irgendwie deutlich anders. Wenn ich den Tastkopf vom 
Oszi abstecke, dann wird meine Hardware wie oben geschrieben nur über 
USB versorgt. Mit Tastkopf irgendwie zum Teil auch über den Masseclip?!*

Jedenfalls ... ohne angeschlossenes Oszi gibt es wohl Fehler und die LED 
blinkt ab und an mal nicht. Sprich der Takt kommt nicht immer an.

Aber es muss gar nicht das Oszi sein, es genügt auch wenn ich mit dem 
Multimeter (Handgerät, ohne Masseverbindung) einen Testpunkt berühre. 
Mit nur einer Prüfspitze.

Sehr seltsam, denn die Spannungen sind wunderbar OK.

Und manchmal wie jetzt funktioniert alles super und egal wie die 
Hardware berührt wird gibt es keine Fehler. Ich habe ja schon die etwas 
wackelige USB Buchse in Verdacht aber es kann natürlich auch etwas 
komplett anderes sein.

*Ich habe ein USB Strommessgerät UT658 und auch eines von Plugable. So, 
wenn ich das Oszi nicht mit meiner Hardware verbunden habe, dann zeigen 
beide Messgeräte 0,34 A an. Schließe ich die Masse vom Oszi an die Masse 
meiner Hardware so zeigt das UNI-T gerät nur noch 0,17 A an, das von 
Plugable zeigt weiterhin die 0,34 A. Schön ist auch wenn beide Geräte in 
Reihe geschalten sind. Das eine zeigt weniger als das andere obwohl der 
Strom durch beide ja doch annähernd gleich groß sein muss (bis auf den 
Eigenbedarf). Sehr seltsam. Ich vertraue jetzt dem Billiggerät von 
Plugable.

Edit:
Es könnte sein, dass das UNI-T Gerät den Strom in der Masse Leitung 
misst? Wenn das Oszi verbunden ist fließt über dessen Masse ein Teil des 
Stroms zurück. Das Gerät von Plugable hingegen misst in der +5 V 
Versorgungsleitung.
Nur eine Vermutung.

: Bearbeitet durch User
Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gustl, du solltest die XilinxDatenblätter lesen. Dort gibt es eines, 
welche die Bankproblematik behandelt. Es gibt eine regelrechte 
pfadähnliche Strategie, wann man einen DiffTerm setzen kann und muss.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, hier sind sogar Bildchen wie man die Entscheidung fällt. Aber wie 
oben geschrieben verwende ich DIFF_TERM => FALSE. Mein Problem scheint 
irgendwo anders zu liegen. Vielleicht sollte ich dazu einen anderen 
Thread aufmachen ...

: Bearbeitet durch User
Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> Es könnte sein, dass das UNI-T Gerät den Strom in der Masse Leitung
> misst? Wenn das Oszi verbunden ist fließt über dessen Masse ein Teil des
> Stroms zurück. Das Gerät von Plugable hingegen misst in der +5 V
> Versorgungsleitung.
> Nur eine Vermutung.

Die wuerd' ich teilen.

Gruss
WK

Autor: Christoph Z. (christophz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Edit:
> Es könnte sein, dass das UNI-T Gerät den Strom in der Masse Leitung
> misst? Wenn das Oszi verbunden ist fließt über dessen Masse ein Teil des
> Stroms zurück. Das Gerät von Plugable hingegen misst in der +5 V
> Versorgungsleitung.
> Nur eine Vermutung.

Das könnte eine gute Vermutung sein. Was oft vergessen geht ist, dass 
die "Masse" eines Oszilloskops eine Erde ist (Hart verbunden mit dem 
Schutzleiter des Netzkabels).

Autor: -gb- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Aber der USB Port ist in einem Thunderbolt Dock und hat auch 
Verbindung zur Erde. Laut Multimeter.

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier fehlt definitiv die Bias-Spannung. Nach den Kondensatoren ist das 
Signal gleichspannungsfrei und um 0V zentriert. Die Eingaenge 
unterstuetzen nur >= 0V, daher wird das Signal nicht sauber in den FPGA 
uebertragen.

Was sind die Pegel vor den Cs? Sind die nach Datenblatt LVDS-kompatibel? 
Die 7er-Reihe hat hier recht breite toleranzen, es ist durchaus 
wahrscheinlich, dass man die Cs durch 0 Ohm ersetzen kann, und alles 
funktioniert.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich schon, aber wieso ist das in den AD Datenblättern anders 
gezeichnet?

Jetzt habe ich den R entfernt und die Cs durch 0 Ohm ersetzt. Also quasi 
das LVDS direkt angeschlossen und zwar auch ohne Terminierung. Auch 
nicht im FPGA. Und siehe da, auch bei dieser Schaltung blinkt die LED. 
Bis jetzt noch keine Aussetzer.

LVDS_25 kann ich zwar bei 1.8 V Bankspannung verwenden, aber nur ohne 
interne Terminierung.
LVDS kann ich auch nicht verwenden weil das das FPGA nicht unterstützt.

Ich muss also extern tterminieren. Aber ... was ist denn nun die 
optimale Beschaltung? AC-koppeln und terminieren? Wo ist dann der 
DC-Bias? DC-koppeln und terminieren?

Ich habe jetzt mit 100 Ohm extern terminiert und beide Cs durch 0 Ohm 
ersetzt. Funktioniert auch.

Ich mag das nicht wenn etwas auf viele unterschiedliche Arten 
"funktioniert" weil für mich dann unklar ist wie ich das machen sollte.

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> Ich muss also extern tterminieren.

Wie lange ist denn deine Taktleitung aufm PCB?
Bei 100MHz wuerd' ich das mal nicht so eng sehen mit der Terminierung, 
wenns nicht gerade ueber zig cm wilde Leitungen laeuft.

Gruss
WK

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner 3 cm.
Wozu ist denn diese Terminierung? Ist das für die Impedanz da oder sind 
die LVDS Ausgänge Stromquellen und man braucht den Widerstand damit da 
eine Spannung drüber messbar wird (für das FPGA)?

Ich meine wenn das also 3,5 mA LVDS Quelle eingestellt ist, dann sorgt 
der IC dafür, dass da 3,5 mA fließen. Bei 100 Ohm Terminierung geht das 
und dann wird da eine Spannung von 350 mV draus. Mal fließt der Strom 
von +Out nach -Out und mal umgekehrt. Macht einen Hub von 2*350 mV = 700 
mV.
Wenn der Widerstand fehlt kann kein Strom fließen. Aber der Widerstand 
ist dann auch sehr groß. Da ist dann unklar welche Spannung anliegt.
So stelle ich mir das gerade vor. Bitte verbessern wenn falsch.

: Bearbeitet durch User
Autor: Bonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Ich meine wenn das also 3,5 mA LVDS Quelle eingestellt ist, dann sorgt
> der IC dafür, dass da 3,5 mA fließen.

Naja, aber diese Regelung hat ein Einschwingverhalten, wegen des 
nichtlinearen Ausgangs, der Last und vor allem eine Transiente wegen der 
Leitungsreflektionen. Diese sind es ja, die mit der Anpassung / 
Abschluss-R unterdrückt werden.

Das Schalten der CMOS-Eingänge der Last ist über dies auch eher ein 
kapazitiver Ladevorgang, als eine Konstantstrombedarf.

Autor: Bonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dergute W. schrieb:
> Wie lange ist denn deine Taktleitung aufm PCB?
> Bei 100MHz wuerd' ich das mal nicht so eng sehen mit der Terminierung,

Bei 2,5cm sehe ich Reflektionen im Bereich 2 x 2,5cm / 200km/s = 250ps x 
n

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, also ist die Terminierung nur wegen der Reflexionen da weil 
man eben lange Kabel terminiert. Die dient also NICHT dazu, dass über 
dem Widerstand eine definierte Spannung abfällt weil der LVDS Treiber 
eine Stromquelle ist. Ist es das was ihr sagen wollt?

Wenn ja, dann ist eine LVDS Terminierung bei kurzen Leitungen egal.

Autor: Dergute W. (derguteweka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> Wenn ja, dann ist eine LVDS Terminierung bei kurzen Leitungen egal.

Natuerlich wurde ich sowas nieeeeemals sagen ;-)
Aber es erklaert:

Gustl B. schrieb:
> Ich mag das nicht wenn etwas auf viele unterschiedliche Arten
> "funktioniert"

Gruss
WK

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ey man ... das hilft mir bei dem Verständnis echt nicht weiter. Ich habe 
immer noch keine klare Antwort warum da terminiert wird. Ist es:

a) Damit keine Reflexionen entstehen oder
b) damit über dem Widerstand eine definierte Spannung abfällt weil der 
LVDS Treiber eine Stromquelle ist.

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil es so im Datenblatt des FPGA-Herstellers steht. Ob die Terminierung 
im oder ausserhalb vom FPGA ist, macht nicht sooo viel Unterschied. Aber 
sie soll nach Spezifikation da sein.

Autor: -gb- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wieso? Ja steht im Datenblatt, aber was ist der Grund dafür? Ich 
baue da auch gerne den Widerstand hin, ist schon dort, ich will aber 
auch verstehen wieso der da hin soll und finde die Begründung mit dem 
Datenblatt dafür nicht ausreichend. Vor allem weil das bei anderen 
Herstellern wie AD anders gezeichnet wurde in Datenblättern.

Autor: Thosch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.) LVDS-Inputs am Spartan 7 sind nicht self-biasing.
2.) Die Input-common-mode voltage muß im Bereich von 300mV ... 1,5V 
liegen.
3.) Die interne Terminierung von LVDS-Inputs steht nur in 2,5V-Bänken 
zur Verfügung.


LVDS Signale müssen am Input terminiert werden.
-> da die bei dir in einer 1,8V-Bank liegen, mußt du wegen 3.) einen 
externen Abschlußwiderstand möglichst nah an den Eingangsanschlüssen 
vorsehen.

Ob du eine Kondensatorkopplung brauchst, oder das Quellsignal direkt ans 
FPGA anschließen kannst, hängt von der Quelle ab! Wenn die 
Output-common-mode voltage der LVDS-Quelle zwischen 300mV und 1,5V 
liegt, kannst du die direkt anschließen.
Falls nicht, brauchst du Koppelkondensatoren zur Quelle hin und wg. 1.) 
ein Bias-Netzwerk dahinter.
Siehe XILINX UG471 Fig. 1-72: 
https://www.xilinx.com/support/documentation/user_guides/ug471_7Series_SelectIO.pdf





Das das im Datenblatt vom AD9650 anders beschrieben ist, liegt halt 
daran,
daß dessen Clock-Input self biasing ist. Der braucht hinter 
Koppelkondensatoren also kein Bias-Netzwerk, weil er das integriert hat.

Und die Taktquelle in diesem Datenblatt ist explizit ein AD951x 
LVDS-Ausgang, daher muß für den der Abschlußwiderstand vor den 
Koppelkondensatoren liegen, weil Clockbuffer aus der AD951x-Serie keinen 
'echten' LVDS-Ausgang haben, sondern eine Stromquellenschaltung, die 
3,5mA treibt und daher einen DC-Pfad benötigt.

Autor: Thosch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Schaltung muß immer die Anforderungen sowohl der Eingangsseite als 
auch der Ausgangsseite erfüllen!

Daraus resultieren auch die Unterschiede in den Applikationsschaltungen, 
weil auch bei der Eingangsbeschaltung bestimmte Annahmen uber den 
treibenden Ausgang berücksichtigt wurden.

Der Abschluß dient definitionsgemäß zur Vermeidung von Reflexionen auf 
der Leitung (die daher ebenso als differenzielle Leitung mit definierter 
Impedanz geroutet werden sollte) und gehört soweit wie irgend möglich 
ans Ende jener Leitung.
Wenn aber der hauseigene Treiber einen DC-Pfad benötigt, wandert der 
Abschlußwiderstand schonmal vor die Koppelkondensatoren...

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Has du auch die Bias-Widerstände drin?
Die Bias-Widerstände und Termination(100Ohm) müssen direkt am Empfänger 
sein.

https://forums.xilinx.com/t5/Other-FPGA-Architecture/AC-coupling-and-bias-for-LVDS/td-p/948540

: Bearbeitet durch User
Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thosch schrieb:
> LVDS Signale müssen am Input terminiert werden.

Warum eigentlich? Genau danach hatte ich gefragt. Ist das:

Gustl B. schrieb:
> a) Damit keine Reflexionen entstehen oder
> b) damit über dem Widerstand eine definierte Spannung abfällt weil der
> LVDS Treiber eine Stromquelle ist.

Thosch schrieb:
> 1.) LVDS-Inputs am Spartan 7 sind nicht self-biasing.
> 2.) Die Input-common-mode voltage muß im Bereich von 300mV ... 1,5V
> liegen.
> 3.) Die interne Terminierung von LVDS-Inputs steht nur in 2,5V-Bänken
> zur Verfügung.

Ist mit mittlerweile klar. Halte ich auch alles ein.

Thosch schrieb:
> Der Abschluß dient definitionsgemäß zur Vermeidung von Reflexionen auf
> der Leitung (die daher ebenso als differenzielle Leitung mit definierter
> Impedanz geroutet werden sollte) und gehört soweit wie irgend möglich
> ans Ende jener Leitung.

OK, also geht es nur um Reflexionen und nicht daraum, dass über dem 
Widerstand eine definierte Spannung abfällt.

Thosch schrieb:
> Und die Taktquelle in diesem Datenblatt ist explizit ein AD951x
> LVDS-Ausgang, daher muß für den der Abschlußwiderstand vor den
> Koppelkondensatoren liegen, weil Clockbuffer aus der AD951x-Serie keinen
> 'echten' LVDS-Ausgang haben, sondern eine Stromquellenschaltung, die
> 3,5mA treibt und daher einen DC-Pfad benötigt.

Thosch schrieb:
> Wenn aber der hauseigene Treiber einen DC-Pfad benötigt, wandert der
> Abschlußwiderstand schonmal vor die Koppelkondensatoren...

Gut, wenn der Widerstand vor den Kondensatoren ist, dann bräuchte ich 
dahinter den DC-Bias. Oder ich lasse eben die Kondensatoren weg und habe 
DC-Kopplung.

Helmut S. schrieb:
> Has du auch die Bias-Widerstände drin?
> Die Bias-Widerstände und Termination(100Ohm) müssen direkt am Empfänger
> sein.

Nein. Ich verwende als Quelle einen AD9508 
https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf 
und der gibt "LVDS" aus. Ob das jetzt "richtiges" LVDA ist weiß ich 
nicht. Was ist das überhaupt? Eine Stromquelle, eine Spannungsquelle? 
Wikipedia schreibt zwar was von Spannungspegeln, aber auch von 3,5 mA. 
Daher kommt ja überhaupt erst meine (Fehl)verständnis davon, dass der 
Terminierungswiderstand dazu dient, dass bei 3,5 mA die definierte 
Spannung abfällt.

Jedenfalls ... im Datenblatt des Taktteilers 
https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf 
auf Seite 5 stehen die Eigenschaften der LVDS Ausgänge. Das hat einen 
DC-Offset von 1.18 V. Sprich das ist also völlig OK wenn ich es ohne AC 
Kopplung direkt anschließe.

Ich habe die Terminierung drinnen, knapp vor oder eher unter dem FPGA, 
habe auch jetzt mehrfach gelesen, dass man die haben sollte, weiß aber 
noch nicht ob wegen der Reflexionen oder damit eine definierte Spannung 
abfällt.

Autor: Helmut S. (helmuts)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
> dass man die haben sollte, weiß aber
noch nicht ob wegen der Reflexionen oder damit eine definierte Spannung
abfällt.

Die 100Ohm sind sowohl wegen den Reflexionen als auch wegen dem 
definierten Signalhub da.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist doch mal eine Antwort aus der ich lernen kann. Danke!

Denn wäre es nur wegen der Reflexion könnte ich den Widerstand bei 
kurzen Leitungen weglassen und wäre es wegen der Spannung müsste ich den 
immer hin bauen egal wie lang oder kurz das Kabel ist. Wenn das also 
auch wegen der Spannung ist werde ich den also immer verbauen.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> a) Damit keine Reflexionen entstehen oder
> b) damit über dem Widerstand eine definierte Spannung abfällt weil der
> LVDS Treiber eine Stromquelle ist.

Dieser Spannungsabfall IST die Terminierung. Das ist sie aber nicht aus 
der Gleichstromsicht heraus (von wegen I*R), sondern der 
"Wechselstromsicht", wegen Z (Impedanz und Belastung).

Die Leitung hat doch eine Induktivität und Kapazität und diese sind für 
hohe Frequenzen wirksam.

Das Rechteck, dass du auf die Leitung gibst, produziert eine Welle, die 
ohne Verluste sogar ewig schwingen würde - zuzüglich des Gleichstromes, 
der fließt. Das kann man mathematisch prima zeigen, oder auch mit einem 
Synthesizer.

Man kann es sogar mit Wasserwellen darstellen, wenn man schlagartig 
einen Vorschub anwendet: Das Wasser fließt dann gleichmäßig und die 
Welle saust hin und her.

Diese Welle produziert ständig Spannungen, wenn sie an der Quelle und 
der Senke ankommt und läuft sich nur langsam tot. Daher schaltet man 
eine "Abflussmöglichkeit" hinzu, die gerade so dimensioniert ist, dass 
der Druck eine Strömung produziert, welche den Impuls (Kraft x Zeit) 
aufnimmt. In der Akustik sind das die Lochplatten in Tonstudios, an 
denen sich die Luft einströmend torreibt und zwar eben so, dass es 
passt. Zu viel Widerstand produziert wieder ein Appprallen = Reflektion, 
zu wenig einen Sog, der die folgenden Luftteilchen nachrücken lässt 
(mehr nachrücken lässt, als sie gleichmäßig fließen).

Jetzt ersetzen wir sinngemäß Luftteilchen durch Elektronen.

Das einzige, was nun anders ist, sind die Sondereffekte wie skin, welche 
dazu führen, es keine gleichmäßigen Spektralverlauf der Wellen gibt. In 
grober Näherung ist die Elektronenwelle aber eine solche "mechanische" 
Schubschwingung. Dasselbe haben wir im Übrigen auch in Getrieben, wenn 
eine Schubstange angeschoben wird und im Wasser, wenn ein Tsunami läuft. 
Das Wasser fließt langsam vor sich hin, aber die Druckwelle rauscht mit 
Wellenfortpflanzunggeschwindigkeit.

Ich habe eine nette Simulation für das System am Beispiel einer 
Klaviersaite / Gitarrensaite, wenn sie angezogen ist und losgelassen 
wird. Die Spannungswelle läuft entlang der Saite und überträgt die 
Energie = Information auf die Aufhängung, wird reflektiert und läuft hin 
und her. Nimmt man keine Dämpfung in die Simulation, rennt die ewig.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, danke! Da hatte ich mich zu sehr an den beiden 
Gleichspannungszuständen festgebissen. Ich hatte das so betrachtet:

Einmal fließen 3,5 mA in die eine Richtung und danach in die andere 
Richtung. Und dann habe ich den Widerstand über dem die vom Empfänger zu 
messende Spannung abfällt.

Übrigens darf dieses Video an der Stelle nicht fehlen:
Youtube-Video "AT&T Archives: Similiarities of Wave Behavior (Bonus Edition)"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.