mikrocontroller.net

Forum: FPGA, VHDL & Co. HDMI/TMDS am Spartan7 mit VCCO 1.8V


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 Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Hallo und Entschuldigung wenn es schon so einen Thread gibt. Ich habe in 
Erinnerung das schonmal hier diskutiert zu haben, finde aber den Thread 
leider nicht.

Ich möchte HDMI mit dem Spartan7 machen. Im Select IO UG der 7er Serie 
https://www.xilinx.com/support/documentation/user_guides/ug471_7Series_SelectIO.pdf 
steht:

The TMDS standard requires external 50Ω pull-up resistors to 3.3V on the 
inputs. TMDS inputs do not require differential input termination 
resistors. TMDS is only available in HR I/O banks and requires a VCCO 
voltage level of 3.3V. The IOSTANDARD is called TMDS_33.

Soweit OK. Aber was ich nicht verstehe: Ist das LVDS? Und wieso geht das 
nur mit VCCO 3.3V? Wenn das wie LVDS eine Stromquelle ist, dann wäre 
doch die Stromstärke und nicht die Bankspannung entscheidend. Denn da 
fließt ein Strom und über der Terminierung wird dann eine Spannung 
messbar.
Ja, die Bankspannung/2 ist dann die DC-Spannung um die herum das Signal 
schwingt. Aber das könnte ich zur Not AC-koppeln und mit einer für TMDS 
passenden Spannung DC-biassen. Ich habe zu HDMI Receivern auch schon 
Bildchen gefunden bei denen die Leitungen AC-gekoppelt sind vor der 
Terminierung. Dann wäre das DC Niveau ziemlich egal.

Ich frage deswegen, weil ich an einer FPGA Bank mit 1.8 V noch ein paar 
IOs frei hätte die gut für HDMI reichen würden.

Jetzt gibt es noch DIFF_HSTL_I_18, DIFF_HSTL_II_18, DIFF_MOBILE_DDR, 
DIFF_SSTL18_I und DIFF_SSTL18_II.

Kann ich eines davon verwenden um das differentielle Signal für HDMI 
auszugeben?

von Tim (Gast)


Bewertung
1 lesenswert
nicht lesenswert
In CMOS ist eine Stromquelle auch nur eine Transistorschaltung, die ihre 
Spannungsbereiche zum Arbeiten braucht.

Scheinbar konnte man einfach nicht LVDS bzw. TMDS in dieser Technologie 
mit nur 1.8V umsetzen.

Man sollte stark darauf achten wie die Signale terminiert werden. 
Prinzipiell sind die Common Mode Spannungen nach einem AC-Cap egal, 
solang sich die Empfangsschaltung darum kümmert.

SSTL ist eher für DDR Speicher bzw. Leitungen ohne AC-Entkopplung 
gedacht.

Wenn man solche IO-Tricks durchführen will, wäre auch eine kleine 
IBIS-Simulation sinnvoll.

von Videomann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kann man denn mit den FPGA-Ausgängen dieselbe Qualität an Signalen 
erzeugen, wie es die einschlägigen Chips tun, oder gibt es da 
Einschränkungen?

In einem anderen Faden wird es so dargestellt, dass es voll kompatibel 
sei, aus dritter Quelle höre ich, dass es eine Notlösung sei.

Was ist denn nun genau die besondere Eigenschaft der TMDS-Signale? Ich 
lese im Wiki etwas von Current Mode. Wie wird der realisier?

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
OK, ja verstehe ich, aber was ich nicht weiß ist, welcher IO Standard 
eine Spannungsquelle beschreibt, wie LVCMOS, und welcher eine 
Stromquelle beschreibt/definiert wie LVDS.

Ist von den genannten
DIFF_HSTL_I_18, DIFF_HSTL_II_18, DIFF_MOBILE_DDR,
DIFF_SSTL18_I und DIFF_SSTL18_II
ein Standard dabei der genau wie LVDS eine Stromquelle definiert?

von PCB (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Tim (Gast)


Bewertung
0 lesenswert
nicht lesenswert
PCB schrieb:
> https://en.wikipedia.org/wiki/Current-mode_logic

Obwohl CML ja auch ein Standard für sich ist und nicht unbedingt mit 
LVDS gleichgesetzt werden sollte.

Ich finde die Diskussion, ob Stromquelle oder Spannungsquelle nicht 
zielführend.

Man muss einfach schauen wie der Standard richtig terminiert wird. Des 
Weiteren ist es dem Signal auf der 50 Ohm Leitung egal, ob es CML oder 
LVDS ist, denn auf einer langen Leitung gilt nur die U/I-Beziehung über 
den Wellenwiderstand.

Bei den Standards ist demnach meist im Common-Mode der große 
Unterschied.

von PCB (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn du noch genügend Pins frei hast, dann könntest du auch einen 
HDMI-Receiver/Transmitter ranknallen, der das physikalische Ebene 
regelt.

von Fitzebutze (Gast)


Bewertung
0 lesenswert
nicht lesenswert
PCB schrieb:
> Wenn du noch genügend Pins frei hast, dann könntest du auch einen
> HDMI-Receiver/Transmitter ranknallen, der das physikalische Ebene
> regelt.

Das ist definitiv sinnvoller. HDMI auf den Spartanern ist sonst kaum vom 
Timing her elegant zu schaffen. Abgesehen davon wuerde ich die 
TDMS-Einkopplung keineswegs an einem 1.8V I/O riskieren, wer weiss was 
da die Clamp-Dioden alles an Effekten einschleppen.
Ansonsten hat Lattice da einiges anzubieten, auf dem ECP3 geht HDMI 
in/out mit Tricks, aber besser noch mit einem Si* ohne HDCP (die kriegt 
man auch).

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
OK. Naja gut. Ich plane gerade ein FPGA Board an dem ich wieder etwas 
lernen möchte. Dieses Mal ist es USB3 über USB-C. Neben RAM, 
USB-Baustein FT600 habe ich aber noch viele IOs frei. Weil ich auch 
etwas mit SerDes lernen wollte dachte ich entweder an HDMI, schnelle 
Datenwandler oder eine Zweckentfremdung von SerDes.

Im EEV Forum gibt es einen Logicanalyzer "Tastkopf" der über USB-C 
verbunden wird. Der besitzt einen IC der vier schr schnelle Komparatoren 
mit differentiellen Ausgängen hat. Dieser Ausgänge werden über die 
SuperSpeed Verbindungen geroutet, Versorgung (+/-) auch über USB-C und 
V_REF ebenfalls.
Ich möchte auch sowas bauen, werde auf den USB-C nur 5V legen, dafür 
aber noch weitere Leitungen mit dem FPGA verbinden. Dann kann ich auf 
meinen LA-Tastkopf einen kleinen SPI-DAC für V_Ref und eine Ladungspumpe 
für die negative Versorgung setzen.
Also ... das sind zwei verschiedene USB-C Buchsen. Eine für USB3/USB2 
die am FT600 angeschlossen ist und über die dann das FPGA Board versorgt 
werden soll und dann eine weitere USB-C Buchse für schnelle IO aber nur 
für USB3/2.
Aber ich möchte das nicht nur für den LA-Tastkopf verwenden, sondern 
auch für andere Dinge. Ich werde einen Adapter USB-C nach PMOD bauen und 
würde aber auch gerne HDMI über USB-C machen.

Dafür habe ich die USB-C Buchse an eine FPGA Bank mit VCCO=3.3V 
angeschlossen. Wunderbar. Aber ich habe noch weitere IOs und würde gerne 
noch eine weitere USB-C Buchse verbauen. Dann hätte ich 8 schnelle IOs 
für zwei vierkanal LA-Tastköpfe oder 2x HDMI. Aber gut, dann lasse ich 
das, denn die freien IOs hängen an einer 1.8V Bank.

Wobei, ich habe noch einen normalen PMOD an der 3.3V Bank eingeplant. 
Den könnte ich auf den USB-C routen und stattdessen an die 1.8V Bank 
einen PMOD hängen aber mit Pegelwandler davor. Mal gucken.

Jedenfalls vielen Dank!

von PCB (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der ADV7511 wäre ein guter Kandidat, den dürfte ich auch schon mal 
eindesignen:
https://www.analog.com/media/en/technical-documentation/user-guides/ADV7511_Hardware_Users_Guide.pdf

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ja, könnte man machen, aber ich möchte ja was lernen. Bild ausgeben über 
VGA, also Farbwerte an einen DAC weitergeben und das Timing für ein Bild 
einhalten habe ich schon gemacht, das wird mir so einem IC auch nicht 
groß anders sein. Ich möchte eben selbst man das 8b10b und das TMDA 
machen und über SerDes ausgeben.
Gleichzeitig möchte ich aber auch die Möglichkeit haben das als Eingang 
zu verwenden und dann ein differentielles Signal mit einem SerDes sehr 
schnell (>500MHz) "abzutasten". Das wäre dann ein schneller USB3-LA.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Wenns eh' nur so ein Versucherle ist, dann kannstes doch ausprobieren: 
Die LVDS Leitungen halt jeweils ueber einen >=100nF Koppel C fuehren, 
danach je 50 Ohm Richtung 3.3V Versorgung - da vielleicht irgendwie 
Obacht geben, dass die beim Einschalten eher langsam hochfaehrt, nicht 
dass die FPGA Ausgaenge zuviel Strom beim Aufladen der Cs abkriegen.

Gruss
WK

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ist das dann Aus- oder Eingang? Ich habe gelesen das wird an einem 
Eingang so gemacht.

Aber ich habe mich schon so ziemlich gegen den 3. USB-C entschieden. Für 
kleine Spielereien reicht auch einer mit HDMItauglicher Beschaltung.

Nur was mache ich mit den freien IOs? Ich habe jetzt noch FRAM, ADXL363, 
LTC2373-16 und ein Schieberegister für LEDs eingeplant. Was wäre denn 
noch interessant?

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> Ist das dann Aus- oder Eingang? Ich habe gelesen das wird an einem
> Eingang so gemacht.

Huups, stimmt. Ja das waere zwar dann schoen fuer den beidseitigen 
Leitungsabschluss, aber die armen Treiber muessten dann den doppelten 
Strom treiben. Dann wuerd' ich statt der 50 Ohm eher 560 Ohm oder 1k 
oder sowas nehmen, einfach nur um den DC Pegel auf der Leitung bei 3.3V 
zu haben.
Klar, ist alles schon etwas fies, aber naja, wenns die IOs halt nicht 
native hergeben...

Gruss
WK

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Noch eine Nachfrage weil ich dazu nichts finde:

Darf man bei HDMI P und N der Päärchen tauschen? Ich würde behaupten ja. 
Da muss man dem SerDes dann vermutlich invertierte Bits übergeben.

Würde das Layout deutlich bequemer machen.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Gustl B. schrieb:
> Darf man bei HDMI P und N der Päärchen tauschen? Ich würde behaupten ja.
> Da muss man dem SerDes dann vermutlich invertierte Bits übergeben.

Koennte evtl. sogar auch so gehen - TMDS ist ja DC frei; vielleicht 
ist's auch verpolungsresistent. Bin mir aber da nicht sicher.
Aber das invertieren im FPGA wird auf jeden Fall gehen.

Gruss
WK

von Duke Scarring (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> Darf man bei HDMI P und N der Päärchen tauschen? Ich würde behaupten ja.
Ja.

> Da muss man dem SerDes dann vermutlich invertierte Bits übergeben.
Genau.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank!

Ich habe da jetzt für den USB-C einen TUSB321 als CC-Controller als DFP 
und dazu einen MP5016 als Current Limit Switch mit etwas über 500 mA für 
VBUS eingeplant.

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.