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!
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
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!
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
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!
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
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.