Forum: Mikrocontroller und Digitale Elektronik 600Mbps+ Levelshifter für LVDS


von lvds_newbie (Gast)


Lesenswert?

Hallo zusammen,

ich möchte gerne eine 560Mbps Übertragungsstrecke aufbauen.

Eingang der Strecke ist ein entsprechend schneller FPGA Single-ended 
Ausgang mit VCCIO = 1.8V (wahlweise auch 1.2V, oder 1.5V).

Ausgang der Strecke sind LVDS Signale.

Ich habe in Summe 16bit.
Die Signale sollen auf ca. 35cm unidirektional übertragen werden.

FPGA Ausgang 1.2/1.5/1.8V ==== sichere 560Mbps auf 30cm Kabel ====> LVDS

Ich habe leider mangels IOs am FPGA nur single-ended Ausgänge zur 
Verfügung.
Kann also nicht direkt LVDS aus dem FPGA heraus treiben.

Meine erste Idee war die SE Signale nah am FPGA in LVDS zu wandeln, da 
diese robuster sind auf der langen Strecke.

Dazu brauche ich aber einen Levelshifter "VCCIO => 3.3V" und dann einen 
LVDS Treiber "SE => LVDS".

Bei den Treibern finde ich entsprechend schnelle ICs, die auch 4-8bit 
parallel können. Die haben so 600Mbps+.

Bei den Levelshiftern wird die Luft schon echt dünn und die besten gehen 
so bis 380Mbps.

Als Board-to-Board würden sich die differentiellen Samtec Highspeed 
Kabel anbieten, die sind teuer, aber die kann man sich gut 
konfigurieren.

Das Layout wird ein 6-Layer Design mit entsprechend kontrollierter 
100-ohm differentieller Impedanz und GND Flächen.
Beim Design selber werde ich auf die Kopplungslänge und den Abstand der 
LVDS Paare zueinander achten, so dass ich keinen Cross-Talk bekomme. Im 
besten Fall bekomme ich zwischen die Paare immer noch eine Massefläche 
geflutet.

Saturn PCB Design bietet ja im Reiter "Crosstalk Calculator" ganz gute 
Näherungen an. Die werde ich berücksichtigen und schauen, dass die 
Coupled voltage bei <50-60mV bleibt. Ist das ausreichend klein für LVDS 
und seinen 300mV?

Habe ich noch etwas anderes übersehen?
Wie kann ich bei 600Mbps+ das Levelshiften realisieren?

Vielen Dank!

von Xerxes (Gast)


Lesenswert?

Moin.
Ein Treiber verwenden der selber mit 1,8V läuft?
Dann brauchst du keinen Level-Shifter.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

lvds_newbie schrieb:
> Ich habe leider mangels IOs am FPGA nur single-ended Ausgänge zur
> Verfügung.
> Kann also nicht direkt LVDS aus dem FPGA heraus treiben.

Koennte das FPGA evtl. so Sachen wie doubleDatarate+differentialOutput 
an den betreffenden IOs? dann koenntest du den Bus halb so dick machen, 
dafuer die Datenrate verdoppeln und direkt mit differentiellen Signalen 
aus dem FPGA gehen. Macht die selbe Datenrate und Pinanzahl.

Gruss
WK

von lvds_newbie (Gast)


Angehängte Dateien:

Lesenswert?

Habe in einem anderen Thread noch diese Idee aufgegriffen und mittels 
LTSpice simuliert.

Idee ist, dass man den INx- auf 0.9V legt (VCCIO FPGA / 2) und dann den 
INx+ zwischen 1.8V und 0V direkt mit dem FPGA treiben kann, ohne 
Level-Shifter.

Der DS90LV hat 800Mbps, eine Commonvoltage von 0.05V - 3.45V und VCC 
sind 3.3V.
Die +-250mV als differentielle Eingangsspannung sollte sicher zwischen 
"1" und "0" unterscheiden können (Grenzen des DS90 sind +-100mV).
Oder ich mache den Spannungsteiler noch etwas hochohmiger, dann ist der 
Hub am Eingang nicht so hoch und es wird evtl. noch schneller 
geschaltet.

Auf diese Art und Weise hätte ich theoretisch Level-Shifter und LVDS 
Treiber in einem.

Ist diese Variante erlaubt, oder ist das irgendeine Not-Bastellösung?
Hat dieses Prinzip schon mal jemand erfolgreich angewendet und erprobt?

Vielen Dank!

von Dergute W. (derguteweka)


Lesenswert?

Moin,

lvds_newbie schrieb:
> Ist diese Variante erlaubt,

Erlaubt ist, was gefaellt.
Aber ich glaub' nicht, dass das was taugt, weil der Witz bei 
"Differential" ist, dass sich die Felder von Hin- und Rueckleitung um 
die beiden Strippen rum aufheben, bzw. mit 1/r² sinken und nicht mit 
1/r, wie bei einer einzelnen Leitung. Und das wird bei deiner Loesung 
nicht passieren.

Gruss
WK

von lvds_newbie (Gast)


Lesenswert?

Dergute W. schrieb:
> Aber ich glaub' nicht, dass das was taugt, weil der Witz bei
> "Differential" ist, dass sich die Felder von Hin- und Rueckleitung um
> die beiden Strippen rum aufheben, bzw. mit 1/r² sinken und nicht mit
> 1/r, wie bei einer einzelnen Leitung. Und das wird bei deiner Loesung
> nicht passieren.

Das ist korrekt.
Diese "Idee" ist ja nur für die Strecke zwischen FPGA IO und dem LVDS 
Buffer. Diese Strecke ist sehr kurz und wäre eh single ended (im Falle 
eines Levelshifters) und dann nochmal single ended zwischen 
Level-Shifter und LVDS Treiber.

Nach dem LVDS Treiber geht es dann differentiell weiter.

Die Idee gefällt mir gut, nur geht meine Frage eher in Richtung 
Robustheit der Lösung, oder ob es nur eine schnelle Lösung aus der 
Wühlkiste ist, oder man hier auch wochenlang stabil Daten übertragen 
kann ;)
Im Prinzip ist es ja "out of spec" vom LVDS Buffer bzw. zweckentfremdet.
Elektrisch gesehen ist es aber "nur" ein Komparator... aber ob der dann 
auch noch mit 800Mbps läuft, wollte ich nachfragen.

Danke!

von Dergute W. (derguteweka)


Lesenswert?

Moin,

lvds_newbie schrieb:
> Die Idee gefällt mir gut, nur geht meine Frage eher in Richtung
> Robustheit der Lösung, oder ob es nur eine schnelle Lösung aus der
> Wühlkiste ist, oder man hier auch wochenlang stabil Daten übertragen
> kann ;)

Naja, da wirste wohl selbst ins Risiko gehen muessen. Koennte schon 
funktionieren, so wie du dir's vorstellst.
Aber bei sowas waer ich auch misstrauisch, wenn irgendwer in irgendeinem 
Forum schreibt, dass das irgendwie bei ihm "funktioniert" hat.
Da findest du auch Experten, die die Strecke Erde-Mond per I2C ueber 2 
nasse Schnuersenkel ueberbrueckt haben wollen ;-)

Gruss
WK

von rossi (Gast)


Lesenswert?

Warum sollte die Variante mit Spannungsteiler nicht funktionieren? Es 
gibt explizit Anything-to-LVDS Konverter, die dafür gedacht sind. z.B. 
MAX9378EUA
Solange die Common Mode Voltage am Eingang beachtet wird und die 
differentielle Spannung zwischen IN+ und IN- ausreicht, klappt das 
wunderbar.

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.