FPGA a DVI/HDMI

Na jednom fóre sme sa začali baviť o možnosti generovať HDMI/DVI signál priamo z nejakého lacného FPGA. Tak som si spravil malý prieskum.

Obe rozhrania sú čo sa týka fyzickej vrstvy viacmenej totožné. DVI môže byť v dual link móde ktorý ma nezaujíma lebo je nekompatibilný z HDMI. Ďalšia vec je spôsob ako sú dáta posielané. DVI pozná len sRGB zatiaľčo HDMI pozná aj iné kódovania. sRGB može byť 24bit a viac.

Pre jednoduchosť sa budem zaoberať len 24bit sRGB.

Fyzická vrstva

Obe rozhrania majú isté spoločné signály:

  • +5V pre DCC a hotplug. Dodáva zariadenie monitoru.
  • Hotplug sense. V monitore je spojene z +5V napr cez odpor.
  • DCC. I2C zbernica ku ktorej je pripojená ROM z EDID dátami.
  • 3 TMDS linky + TMDS CLK.

Všetky ostatné nie sú na základnú funkcionalitu potrebné. Štandardne komunikácia funguje v poradí:

  1. Zdroj signálu zapne napájanie +5V
  2. Zdroj signálu čaká na prítomnosť Hotplug sense.
  3. Prečíta sa EDID ROM aby sa vedelo čo monitor podporuje.
  4. Začne sa generovať signál

Teoreticky je možné body 1-3 preskočiť. Pre istotu by som ale bod 1 nechal. Veci čo som na nete našiel majú +5V pripojené na tvrdo.

Z lacných FPGA vie priamo generovať TMDS signál Xilinx Spartan3A a Spartan6. Ostatné FPGA musia bud použiť vhodný konvertor alebo nejak TMDS simulovať. V prípade Altera Cyclone-III a IV je možné použiť LVDS_E_3R a dva odpory. V ostatných by malo byť možné simulovať TMDS cez OpenDrain výstupy a dva odpory.

Protokol

Protokol pri sRGB je na pochopenie veľmi jednoduchý. RGB zložky sú prehodené cez TMDS konvertor (8bit to 10bit) ktorý zabezpečí redukovanie elektromagnetických interferencií. A výsledok je sériovo poslaný von. Z tým že na CLK výstupe nieje frekvencia dát ale pixlov.

Počas času keď sa neposielajú obrazové bity sa posiela synchronizácia   či zvuk.

Rozlíšenia

Keďže väčšina FPGA kitou má natvrdo zabudovaní nejaký oscilátor nieje možné generovať ľubovolnú frekvenciu.  Preto som vytvoril tabuľku rozlíšení ktoré majú „príčetní“ pixel rate. Bohužiaľ jediné rozlíšenie ktoré je v CEA aj DMT rozsahu má zle získateľný pixel rate.

Group id Screen Mode Pixel Rate (MHz) Serial Data Rate (Mb/s) Color Depth (bits) Poznámka
CEA 2/3 480p (720×480@59.94) 27 270 24 povinné pre 60Hz TV.
CEA 17/18 576p (720×576@50) 27 270 24 povinné pre 50Hz TV
CEA 17/18 576i (720×576@50) 27 270 24
DMT 7 (640×480@85) 36 360 24   žiadne z mojich zariadení nevie.
DMT 8 (800×600@56) 36 360 24
DMT 9 (800×600@60) 40 400 24
Poznámky:
CEA – TV, DMT – PC monitory. Moderné TV vedia aj DMT.
PC monitory nemajú určené povinné rozlíšenia.
Print Friendly, PDF & Email