mikrocontroller.net

Forum: FPGA, VHDL & Co. LVDS receiver in FPGA


Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mal ein paar verständnissfragen zu LVDS.
Ich möchte an einem FPGA (Xilinx Virtex 5) ein LVDS-Signal empfangen.
In den Spezifikationen zu dem FPGA, wird beschrieben, dass bestimmte I/O 
Pins für diesen zweck geeignet sind.
Nun meine Fragen:

1. In den spezifikationen zu LVDS wird beschrieben das der 
"Output-Swing" plus minus 350mV beträgt... wird dies vom FPGA problemlos 
erkannt?

2. Wie kann ich aus dem differenziellen Signal mein "normales" digitales 
Signal zurückgewinnen? Muss ich dafür etwas bestimmtes in meinem 
VHDL-code implementieren (gibts da was von Xilinx... wenn ja wo)? oder 
muss ich mir da selber was in VHDL einfalles lassen.

schon mal Danke

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok... ich hab jetzt von Xilinx VHDL code gefunden, der mir das differenz 
Signal wider wandelt (Stichwort IBUFDS). Bleibt noch die Frage ob das 
LVDS Signal einfach an die dafür vorgesehenen Pins am FPGA angeschlossen 
werden kann?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An sich gehört zwischen den p- und den n-Pin bei LVDS noch ein 100 Ohm 
Widerstand, sonst funktionierts nicht. Es gibt aber auch die 
Möglichkeit, das mit DCI zu machen, da wird dieser Widerstand im FPGA 
dazwischen geschalten. Welche Variante man nimmt hängt hauptsächlich 
davon ab, wieviel Platz man für Widerstände auf dem Board hat. Lies dir 
mal DCI Kapitel im V5 User Guide durch, da gibts auch gute Diagramme, 
die das verständlich machen.

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit dem Widerstand mach ich mir keine Sorgen, weil ich für diesen Zweck 
das Eval Board ML507 von Xilinx benutzen werde und die schon drauf sind.

Was ich noch nicht verstehe, ob dieser Output Swing von 350mV bei LVDS 
standart ist und ich damit dierekt an den FPGA gehen kann, oder ob es da 
noch etwas zu beachten gibt. Sind das am FPGA spezielle Pins, die diese 
geringe Spannung erkennen?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du die zum LVDS-Standard passende IO-Spannung anlegst und den 
richtigen IO-Standard einstellst, passt das zusammen. Am besten noch per 
DCI die Impedanz einstellen, sonst musst du wie geschrieben an jedes 
Paar den Widerstand dran machen. Wenn du die beiden Widerstände für den 
DCI korrekt bestückst, macht das der Virtex intern.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze geht dann an einen Komparator, der aus diesem Voltage Swing 
ein Signal mit dem Spannungspegel der internen Logik macht. Wenn man den 
richtigen I/O-Standard für die Synthese vorgibt (zb LVDS 2.5 V) dann 
wird dieser Komparator an die beiden Pins geschalten und es ist alles 
geregelt. am Ausgangssignal der IBUFDS Komponente kriegt man ein Signal, 
das man einfach im VHDL Code weiter verarbeiten kann.

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei dem VHDL code, den ich gefunden hab steht unter anderem:
IOSTANDARD => "LVDS_25"

ist damit die Versorgungsspannung des FPGA's gemeint, oder doch der 
Spannungspegel der LVDS Schnittstelle, wobei die denke ich wesentlich 
kleiner ist???

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das ist schon der I/O Standard, den du brauchst (ich hab mich da 
oben falsch erinnert, LVDS gibts eh nur mit 2.5 V). Der I/O Standard 
kann auch im UCF File gesetzt werden, so mach ich das immer. Die von dir 
genannte Methode sollte aber auch funktionieren.

Bei der Synthese wird auch eine *.pad Datei erzeugt, die auflistet, 
welche Ausgänge an welchen Pin mit welchem I/O Standard gehängt wurden, 
es kann nicht schaden (zumindest nicht nach der ersten Synthese), dort 
zu kontrollieren, dass wirklich LVDS für die Pins eingetragen ist.

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok schonmal vielen dank, aber wenn du sagst LVDS gibt es eh nur mit 
2,5V, warum steht dann in denn spezifikationen was von +/- 350mV? Kann 
ich die 2,5V an der LVDS Schnittstelle messen? Aus dem Datenblatt, von 
dem Gerät, von dem ich das LVDS Signal bekomme steht eben nix drin über 
die Spannungspegel? Was mich vermuten lies das es da eienen Standart 
gibt und ich eben die besagten +/-350mv gefunden hab.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Puh, jetzt fällt mir auch schon langsam nix mehr ein. Was ich sicher 
weiß: Die I/O Bank auf der die LVDS Traensceiver am FPGA hängen braucht 
2.5V I/O Spannung. Die 250 mV auf die du dich beziehst sind die 
Spannung, die über den Widerstand abfallen. An sich ist LVDS ein 
Stromtreiber, das Ding ist also so gebaut, dass es ca 3.5 mA durch die 
Leitung durchtreibt und damit diesen besagten 350 mV Spannungsabfall 
über den Widerstand macht. Die I/O Spannung wird für die Komponenten im 
FPGA gebraucht, auf die bezieht sich eben die Spannung von 2.5 V.

Nach meinem Verständnis kann man das ganze auch, sofern ein geeigneter 
Komparator benutzt wird, an eine 3,3 V Schaltung dranhängen, wichtig ist 
dass der Komparator am Eingang hochohmig ist und den Unterschied von ca 
350 mV zu einem Spannungspegel wandeln kann, der von der 
dahinterliegenden Schaltung sicher abgegriffen und weiter verarbeitet 
werden kann.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, Korrektur, die ersten "250 mV" sollten natürlich 350 mV sein.

Autor: matzunami (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok vielen dank ich glaub/hoffe jetzt ist alles klar... danke

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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