Forum: FPGA, VHDL & Co. mehrere Spartan-6 in Reihe miteinander verbinden


von Mathias H. (mathias)


Lesenswert?

Hallo,
möchte mehrere Spartan-6 in Reihe über LVDI verbinden.
Die Entfernungen sind ca. 65cm mit Patchkabel.
Also z.B. LVDI-Ausgang mit dem nächsten "Spartan-6" LVDI-Eingang, usw.
Genügt es die Port-Pins als "single-endet" zu konfigurieren anschließend 
einen ADN4663BRZ anzuschließen?
Es sind zwei Signale, ein Clock und einmal Daten (Schieberegister).
Möchten > 50MHz übertragen.
Oder einfach gefragt wie realisiert man so etwas sicher und zuverlässig?

http://www.analog.com/media/en/technical-documentation/data-sheets/ADN4663.pdf

Danke

von Bitwurschtler (Gast)


Lesenswert?

Mathias H. schrieb:
> möchte mehrere Spartan-6 in Reihe über LVDI verbinden.
> Die Entfernungen sind ca. 65cm mit Patchkabel.
> Also z.B. LVDI-Ausgang mit dem nächsten "Spartan-6" LVDI-Eingang, usw.
> Genügt es die Port-Pins als "single-endet" zu konfigurieren anschließend
> einen ADN4663BRZ anzuschließen?


Du meinst wohl LVDS - das ist nicht single ended. 65 cm über twisted 
pair sollte passen, mit Hosenträger hat man schon 20 cm gesehen. 
Terminierung ist noch wichtig

von Bitwurschtler (Gast)


Lesenswert?

TI hat mal verschiedene Kabel mit LVDS getestet:


http://www.ti.com/lit/an/slyt163/slyt163.pdf

von Christian R. (supachris)


Lesenswert?

Der Spartan 6 hat doch selber auch LVDS Ein- und Ausgänge. Wieso dann 
externe Treiber? Man muss da nur bissl aufpassen, irgendwas gabs nicht 
auf jedem I/O...

von Michael W. (Gast)


Lesenswert?

Ja, auf der Bank2 gab es keine LVDS meine ich. Entweder wegen des 
RAM-Controllers und oder der fehlenden 2,5 V Bankversorgung.

LVDS muss auf jeden Fall mit zwei Leitungen übertragen werden, wegen der 
unterschiedlichen GND-Pegel der beiden FPGAs.

Welche Bandbreite ist gefordert?

von Mathias H. (mathias)


Lesenswert?

Finde externe Treiber besser, wegen ESD, Kurschluß, usw.
Wie hoch kann ein "single-ended" Port-Pin getaktet werden? (LVTTL, 
LVCMOS)
Und wie muß er konfiguriert werden?
Hier ein Link zu Xilinx zu einer Beschreibung:
http://www.xilinx.com/support/documentation/user_guides/ug381.pdf
Es läuft schon alles, aber nur mit ca. 20MHz.
Bräuchten ca. 50MHz.
Welche Einstellungen an den Port-Pins muß entsprechend vorgenommen 
werden?
@ M. W. LVDS is differenziell, das weiß ich :-)
Danke

von Michael W. (Gast)


Lesenswert?

Mit LVDS kann man erheblich höher, weil die störungfreier sind.

Externe Treiber wären dann in der Amplitude höher und kein Low Voltage 
mehr.

Konfigurierbar sind die Ausgänge in vielfältigster Weise, aber Du 
brauchst ja dann nix spezielles mehr, wenn du eh Treiber nehmen willst.

von Lars R. (lrs)


Lesenswert?

M. W. schrieb:
> LVDS muss auf jeden Fall mit zwei Leitungen übertragen werden, wegen der
> unterschiedlichen GND-Pegel der beiden FPGAs.

Wie meinst Du das?

von J. S. (engineer) Benutzerseite


Lesenswert?

Mathias H. schrieb:
> Die Entfernungen sind ca. 65cm mit Patchkabel.

Was für Kabel und was für Stecker? Die Stecker machen Dir auch nochmal 
Reflexionen, wie Du weist und da ist symmetrische Signalführung wichtig.

von Duke Scarring (Gast)


Lesenswert?

Mathias H. schrieb:
> Wie hoch kann ein "single-ended" Port-Pin getaktet werden? (LVTTL,
> LVCMOS)
Für Single-ended find ich es gerade nicht explizit.

Die LVDS-Geschwindigkeiten findest Du im Spartan-6 FPGA Data Sheet: DC 
and Switching Characteristics, DS162 (v3.1.1),
Seite 18, Performance Characteristics, Tabelle 25.

Ansonsten mal mit einem schnellen Oszi nachschauen, wie schnell der Pin 
den Pegel wechselt. Das hängt ja von der Last am Pin ab...

Duke

von Klakx (Gast)


Lesenswert?

Lars R. schrieb:
> M. W. schrieb:
>> LVDS muss auf jeden Fall mit zwei Leitungen übertragen werden, wegen der
>> unterschiedlichen GND-Pegel der beiden FPGAs.
>
> Wie meinst Du das?

Wahrscheinlich so falsch wie es klingt. Beide FPGA müssen auf selben GND 
liegen.

von Bitwurschtler (Gast)


Lesenswert?

Klakx schrieb:
> Lars R. schrieb:
>> M. W. schrieb:
>>> LVDS muss auf jeden Fall mit zwei Leitungen übertragen werden, wegen der
>>> unterschiedlichen GND-Pegel der beiden FPGAs.
>>
>> Wie meinst Du das?
>
> Wahrscheinlich so falsch wie es klingt. Beide FPGA müssen auf selben GND
> liegen.

?Bei LVDS entscheidet nicht der Pegel über den Logiclevel sondern die 
Richtung des elektrischen Stromes. Insofern ist das Bezugspotential und 
der Spannungshub wurscht.

von Lars R. (lrs)


Lesenswert?

Bitwurschtler schrieb:
> Bei LVDS entscheidet nicht der Pegel über den Logiclevel sondern die
> Richtung des elektrischen Stromes.

Wie meinst Du das?

von Bitwurschtler (Gast)


Lesenswert?

Lars R. schrieb:
> Bitwurschtler schrieb:
>> Bei LVDS entscheidet nicht der Pegel über den Logiclevel sondern die
>> Richtung des elektrischen Stromes.
>
> Wie meinst Du das?

Wie in diesem Schaltplan:
https://de.wikipedia.org/wiki/Datei:Basic_LVDS_circuit_operation.png

von Klakx (Gast)


Lesenswert?

Und bei beispielsweise 3V Potentialverschiebung fließt der Pegel in die 
Schutzdiode und dann wars das mit dem Signal...

von Lars R. (lrs)


Lesenswert?

Bitwurschtler schrieb:
> Lars R. schrieb:
>> Bitwurschtler schrieb:
>>> Bei LVDS entscheidet nicht der Pegel über den Logiclevel sondern die
>>> Richtung des elektrischen Stromes.
>>
>> Wie meinst Du das?
>
> Wie in diesem Schaltplan:
> https://de.wikipedia.org/wiki/Datei:Basic_LVDS_circuit_operation.png

Bei single-ended ändert sich die Richtung des Stromflusses ebenso. Das 
Bild ist unvollständig. Beim Receiver fehlen GND und VCC.

von Klaus F. (kfalser)


Lesenswert?

Bitwurschtler schrieb:
> Lars R. schrieb:
>> Bitwurschtler schrieb:
>>> Bei LVDS entscheidet nicht der Pegel über den Logiclevel sondern die
>>> Richtung des elektrischen Stromes.
>>
>> Wie meinst Du das?
>
> Wie in diesem Schaltplan:
> https://de.wikipedia.org/wiki/Datei:Basic_LVDS_circuit_operation.png

Das stimmt eben nur bedingt.
Auch bei LVDS muss der Empfänger mehr oder weniger am gleichen GND 
hängen wie der Sender.
Jeder Empfänger hat laut Datenblatt einen Input Common Mode Range (oder 
so ähnlich), welche Eingangsspannungen am Eingang möglich sind, ohne die 
Funktion zu  beinträchtigen.
Differentielle Signalübertragung erhöht nur die Störfestigkeit, macht 
aber keine Potentialtrennung.
Braucht man höhere Potentialunterschiede zwischen Sender und Empfänger, 
muss man einen optischen Isolator einbauen.

von Bitwurschtler (Gast)


Lesenswert?

Lars R. schrieb:
> Bei single-ended ändert sich die Richtung des Stromflusses ebenso. Das
> Bild ist unvollständig. Beim Receiver fehlen GND und VCC.

Nein.

von Lars R. (lrs)


Lesenswert?

Bitwurschtler schrieb:
> Lars R. schrieb:
>> Bei single-ended ändert sich die Richtung des Stromflusses ebenso. Das
>> Bild ist unvollständig. Beim Receiver fehlen GND und VCC.
>
> Nein.

Out 3V3: ->Strom
Out GND: <-Strom

von Bitwurschtler (Gast)


Lesenswert?

Lars R. schrieb:
> Bitwurschtler schrieb:
>> Lars R. schrieb:
>>> Bei single-ended ändert sich die Richtung des Stromflusses ebenso. Das
>>> Bild ist unvollständig. Beim Receiver fehlen GND und VCC.
>>
>> Nein.
>
> Out 3V3: ->Strom
> Out GND: <-Strom

Nein;
single ended ist (vereinfacht gesprochen)
'1' ->  viel Strom  (erzeugt von V_OH) | '0' -> weniger Strom (erzeugt 
von V_OL),

differential ist:
 '1' Strom a-> b; '0' Strom a <- b.

Die Strom-Richtung ändert sich bei single ended nicht mit Änderung des 
Logic-wechsel, nur dessen Stärke.

von Bitwurschtler (Gast)


Lesenswert?

Klaus F. schrieb:

> Auch bei LVDS muss der Empfänger mehr oder weniger am gleichen GND
> hängen wie der Sender.

Praxisbeispiel 1:
Laptop im Batteriebetrieb treibt Monitor im Netzbetrieb über HDMI. Das 
Videosignal wird differential (wie LVDS) übertragen. Das Viedeosignal 
wird einwandfrei übetragen obwohl es weder mehr nióch weniger das 
gleiche GND gibt. Um ganz sicher zu sein kannst du ja noch die nicht 
Bildsignalleitungen trennen die Verbindung funktioniert trotzdem, habs 
mit RasPi getestet


Praxisbeispiel 2
CAN auch differentiell, GND ist optional und wird nur für den Notbetrieb 
(limb home) benötigt.

von Achim S. (Gast)


Lesenswert?

Bitwurschtler schrieb:
> single ended ist (vereinfacht gesprochen)
> '1' ->  viel Strom  (erzeugt von V_OH) | '0' -> weniger Strom (erzeugt
> von V_OL),

das stimmt genau in dem einen Spezialfall, wenn du einen 
Terminierungswiderstand gegen GND hast. Wenn du stattdessen gegen Vcc 
terminierst treibt die '0' viel Strom und die '1' keinen. Bei einer 
split termination fließt in beiden Fällen gleich viel Strom (in 
unterschiedlichen Richtungen). Und ohne Terminierung fließt in beiden 
Fällen kein Strom.

Bitwurschtler schrieb:
> CAN auch differentiell, GND ist optional und wird nur für den Notbetrieb
> (limb home) benötigt.

CAN receiver sind für eine große common mode voltage gebaut, dort kann 
man mit unterschiedlichen GND-Potentialen arbeiten. LVDS receiver sind 
das nicht: dort muss jede Spannung (nicht nur die Differenzspannung) 
nahe am Versorgungsbereich liegen.

Zum Vergleich:
http://media.digikey.com/pdf/Data%20Sheets/Fairchild%20PDFs/FIN1002.pdf
ein LVDS-Receiver, die Eingangsspannungen müssen (jede für sich) im 
Bereich -0,5V..+4,6V liegen

http://www.nxp.com/documents/data_sheet/TJA1051.pdf
ein CAN-Receiver, die Eingangsspannugnen dürfen (jede für sich) zwischen 
-58V und +58V liegen.

Bitwurschtler schrieb:
> Das Viedeosignal
> wird einwandfrei übetragen obwohl es weder mehr nióch weniger das
> gleiche GND gibt.

dann hast du einfach Glück gehabt, dass sich das floatende GND-Potential 
des batteriebetriebenen Laptops richtig eingestellt hat (und zwar genau 
über den Mechanismus, den Klaus genannt hat: wenn die Potentiale sich zu 
weit gegeneinander verschieben, fließt Strom über die Schutzdioden und 
das GND-Potential wird "wieder eingefangen"). Mit ernsthaft 
unterschiedlichen GND-Potentialen würde es nicht funktionieren. Und 
deshalb stimmt genau das, was Klaus gesagt hat:

Klaus F. schrieb:
> Auch bei LVDS muss der Empfänger mehr oder weniger am gleichen GND
> hängen wie der Sender.

von ..,- (Gast)


Lesenswert?

Bitwurschtler schrieb:
> Das Viedeosignal
> wird einwandfrei übetragen obwohl es weder mehr nióch weniger das
> gleiche GND gibt. Um ganz sicher zu sein kannst du ja noch die nicht
> Bildsignalleitungen trennen die Verbindung funktioniert trotzdem, habs
> mit RasPi getestet

HDMI ist übrigens CML und nicht LVDS.
Ob das in der Praxis nun einen Unterschied macht weiss ich aber nicht 
ganz genau.

Bei DC gekoppeltem LVDS soll man GND mit verbinden um die 
Gleichtaktspannung im niedrigen Bereich zu halten.
Funktionieren mag es vielleicht sogar ohne, die Fragen sind immer wie 
lange, in welchen Situationen und wie zuverlässig...

Also das was Klaus und Achim sagen stimmt.

von Achim S. (Gast)


Lesenswert?

..,- schrieb:
> HDMI ist übrigens CML und nicht LVDS.
> Ob das in der Praxis nun einen Unterschied macht weiss ich aber nicht
> ganz genau.

ein guter Punkt. Einen Unterschied macht es schon deswegen, weil das 
HDMI-Signal gleichspannungsfrei codiert ist. Da kann man mit 
CML-Signalen einen DC-Offset problemlos per AC-Kopplung elimineren (also 
durch Längskondensatoren in beiden Signalleitungen). Bei beliebig 
codierten LVDS-Signalen würde das beliebig schief laufen.

von Michael W. (Gast)


Lesenswert?

Lars R. schrieb:
> M. W. schrieb:
>> LVDS muss auf jeden Fall mit zwei Leitungen übertragen werden, wegen der
>> unterschiedlichen GND-Pegel der beiden FPGAs.
>
> Wie meinst Du das?

Ich gehe davon aus, dass es unterschiedliche Platinen sind. Da ist der 
GND nicht derselbe. Mit single ended wird es da problematisch.

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.