Forum: FPGA, VHDL & Co. LVDS Signalpegel für Display. Lattice, MachXO3


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.
von Holger K. (holgerkraehe)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich versuche hier mittels eines FPGAs (LCMXO3L-4300C-5BG256C) ein 
LVDS-Display anzusteuern.

Leider macht das Display aktuell nicht das, was es soll. Es flacket ein 
wenig und bleibt dann schwarz.

Ich vermute, dass ich den Grund dafür gefunden haben könnte.
Laut spezifikation (Anhang) sollten die differentiellen Signale im 
Maximum 1.6V betragen. Ich speise aber mein FPGA bzw. diese IO-Bank mit 
3.3V.
Meine Signale betragen daher im Maximum etwa 2.1V bei angeschlossenem 
Display laut Oszilloskop.

Ich vermute mal, dass das Problem daher kommen könnte.

Nun stellt sich mir aber die Frage, mit welcher Spannung ich denn diese 
IO-Bank speisen sollte. Das FPGA kann drei verschiedene 
Differentialmodi.

LVCMOS33D (3.3V differential)
LVCMOS25D (2.5V differential)
LVCMOS18D (1.8V differential)

Wobei ich natürlich die IO-Bank entsprechend speisen muss (nehme ich mal 
an)

Gibt es vielleicht einen Trick, wie ich mit der aktuellen Hardware 
(3.3V) trozdem noch etwas "hinbiegen" könnte?

Danke schonmal.

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


Bewertung
0 lesenswert
nicht lesenswert
Holger K. schrieb:
> LVCMOS33D (3.3V differential)
> LVCMOS25D (2.5V differential)
> LVCMOS18D (1.8V differential)
>
> Wobei ich natürlich die IO-Bank entsprechend speisen muss (nehme ich mal
> an)

Wie sind die beim MachXO3 spezifiziert? Dann siehst du ja direkt im 
Datenblatt welche Spezifikation mit der des Displays zusammenpasst.

In der Regel haben die meisten IO Standard Constraints keine Auswirkung 
auf das analoge Verhalten und wird nur fuer die Timing Analyse 
verwendet. Daher muss auf alle Faelle die passende Bankspannung 
verwendet werden, welche ebenfalls in den entsprechenden Datenblaetter 
zu finden ist.

von Holger K. (holgerkraehe)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Antwort.

Ich habe dies soeben nachgeschaut.
Das Dokument: 
http://www.latticesemi.com/-/media/LatticeSemi/Documents/DataSheets/MachXO23/FPGA-DS-02032-2-4-MachXO3-Family-Data-Sheet.ashx?document_id=50121

Informiert ab Seite 51.
Das FPGA kennt sowohl "echte" LVDS-Leitungen wie auch "emulierte".
Ich verwende aktuell die echten an der Oberseite des FPGAs.

Ich gehe richtig in der Annahme, dass ich beim Ausgang des FPGAs keinen 
Widerstand benötige, sondern lediglich auf der Empfangsseite?

Gemäss dem Datenblatt scheinen die Pegel grundsätzlich richig zu sein. 
(siehe Anhang).

Wobei ich mich frage, bei welcher VCCIO Spannung die markierten Werte 
gelten sollen.

Scheint so auszusehen, als ob die Ausgangspegel unabhängig der 
VCCIO-Spannung sind.

Gemäss Wikipedia scheint auch nur beim Empfänger eine Terminierung 
notwendig zu sein.

https://en.wikipedia.org/wiki/Low-voltage_differential_signaling#/media/File:Basic_LVDS_circuit_operation.png

Da frage ich mich, warum meine Ausgangspegel zu hoch sind...

: Bearbeitet durch User
von Holger K. (holgerkraehe)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun noch einmal ein paar Messungen durchgeführt.

Anbei das Differential Signal der Clock-Leitung.

Zusätzlich habe ich nun an den Ausgang einen 100-Ohm Widerstand 
angelötet.
Hat jedoch keine wirkliche veränderung gebracht.

Anbei ebenfalls noch die aktuellen Port-Einstellungen in Lattice.

Ich brauche die FPGA-Experten unter euch :)

Danke

: Bearbeitet durch User
von Holger K. (holgerkraehe)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok, nun wird es spannender....

Gemäss diesem Dokument:
http://www.latticesemi.com/-/media/LatticeSemi/Documents/ApplicationNotes/MO/MachXO3sysIOUsageGuide.ashx?document_id=50125

Seite 9

Haben die True-LVDS Ausgänge an der Oberseite des FPGAs eine fixe common 
mode Spannung von 1.2V. Dies bei einer VCCIO Spannung von 2.5V bzw. 
3.3V.

Ich frage mich also immer mehr, warum bei mir die Spannung am Ausgang 
nicht stimmt.

von Duke Scarring (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Du hast aber schon die richtigen LVDS-Buffer instanziiert, oder?

Duke

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Upps. Hab grad den Report oben gesehen. Wenn Du LVCOMS33 verwendest, 
bekommst Du auch LVCMOS33 und nicht LVDS...

Duke

von Holger K. (holgerkraehe)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Antwort.

Ich habe nun LVDS25 ausgewählt, und siehe da, die Pegel stimmen.
Leider bekomme ich noch nichts auf dem TFT angezeigt. Obschon der 
gleiche Code bei einem EVAL-Board funktioniert hat. Das liegt nun aber 
wohl an etwas anderem.

Danke schön!

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.