LVDS SERDES sinchronizacija
Pagaliau kiek paaiškėjo kaip veikia LVDS SERDES (serializer- deserializer) sinchronizacija.
Iš pradžių, galvojau kad užtenka padaryti LVDS megafunkcija ir viskas išsispręs automatiškai. Deja, gavosi bet koks niekalas. Tada aptikom “rx_data_akign" piną. Trumpas impulsas perstumia gautą baitą per vieną bitą. Bet to neužteko. Tada atradom “rx_data_align_reset" piną, kuris nustato bitų postumį į standartinę padėtį. Bet ir šitas nepadėjo. Tada įjungiau “pll_areset" piną. Pinas, kuris pilnai rezetuoją LVDSin megafunkcijos PLLą. Gavosi maždaug toks monstras (dalis imtuvo schemos):
(didesnis paveiksliukas)
Kadangi naudojam 2 poras duomenim, vieną porą CLK ir x6 serializavimo faktorių, tai per vieną “pirstelėjimą" perduodam 12 bitų. 8 bitai naudingų duomenų (nors praktiškai užtenka 7 ar net 6 - akis nepastebi skirtumų, o ir nulinis bitas net teoriškai nedalyvauja matematikoje…) ir dar lieka 4 bitai sinchronizacijai.
Vienas bitas naudojamas kaip kadrų sinchronizacija (VSYNC, beja itariu, kad pas mane kadrų dažnis gavosi kraupiai didelis. Patikslinimas- vaizdas atnaujinamas 1000 fps greičiu. Gal kiek daugoka ), o likusieji 3 bitai naudojami SERDES modulio sinchronizacijai.
Aš perskaičiau daugybe datasheetų apie gigabitinius ethernetus, optinius kabelius… Sužinojau apie Hummingo kodą, apie 8b10b kodavimą ir visokius kitokius IP. Bet viskas čia man pernelyg sudėtinga ir visai nereikalinga RGB matricai- nedidelė bėda, jei dėl trugdžio bus koks nors nedidelis atsitiktinis pasimirguliavimas.
Todėl sinchronizacija labai paprasta: jei neatinka 3 bitų seka, pastumiam bitus (inst:105, 101, 103, 106..). Jei per sakysim keliolika bandymų nepavyksta gauti rezultato, darom bitų postumio rezet (inst:110, 104, 102, 108, 109). Jei po keliolikos rezetų vistiek nepavyksta gauti vaizdelį- rezetuojam PLLą ir kartu visą LVDS modulį (inst:111, 112). Kodėl tiek daug bandymų iki pilno numetimo? Ogi todėl, kad kartais sugeba susisinchronizuotis su atsitiktiniu vaizdo gabalėliu ir vaizdas pasidaro stabilus, bet neteisingas. Todėl reikia kiek palaukti, kad pralėktu daugiau video informacijos ir suveiktu klaidų detektorius.
Va koks gavosi rezultatas. Čia įjungiu visą mašinerija ir smaukau UTP kabelį. Kai išjungiu kabeli kažkiek triukšmo ištrina matricos viršų. Kartais jungiant prisigaudo visokių gliukų, bet pilnai įsmeigus kabelį, vaizdas stabilizuojasi.
April 2nd, 2009 at 12:03 am
Žmonės sako, kad 6 bitų paneliuose labai matosi stambios juostos gradientuose, kurie šiaip turėtų būti tolygūs.
April 2nd, 2009 at 11:37 pm
Jei nepaslaptis, kokiu softu ir kiek laiko uztruko programos sudarymas? Zinau, kad Alteros, bet vistiek domina
Atejo pagaliau man Spartan-3E devboardas, dabar bandau softa susimest, ko tai labai sudetinga po XP x64 :/
April 3rd, 2009 at 12:26 am
Nice work!
April 3rd, 2009 at 12:32 pm
Kadangi naudojamos Alteros mikroschemos, softo pasirinkimas nėra didelis- Altera Quartus 8 SP1. Kažkoks tarpinis variantas tarp “web edition" ir “subscription edition" t.y. biški pahackintas. Po hackinimo, softas leidžia dirbti su visom Alteros mikroschemom. Tas ir apsprendė Alteros pasirinkimą, o ne Xylinx. Xylinx softas neleidžia naudoti didžiosios dalies mikroschemų be atitinkamos licenzijos.
Nežinau kiek laiko dariau, nes tarpai prie “prisėdimų" buvo labai dideli- aš labai tingus. Gal gryno laiko būtų kokia savaitė. Beveik visi moduliai parašyti Verilog kalba ir aiškų standartinės logikos biblioteka- nes dažnai pats nežinau kaip padaryti ir darau eksperimentus. Poto galima palaida logika optimizuoti iki vieno verilog modulio.
April 7th, 2009 at 3:40 am
Blemba, tu monstras.
Ir jo su CPLD/FPGA bishki gaidynas - reikia pirkt mikres po simta baksu ir dar uz softa sumoket nk$.
April 7th, 2009 at 10:32 am
Softas galima sakyti freeware- licenzija duodama keliems mėnesiams už dyką. Aš softa nulaužiau grynai dėl sportinio intereso ir kad paimtu vieną egzotišką mikroschemą.
FPGA čipus išlupau iš senos technikos- pirmoji CPLD mikroschema (Lattice) radau egzotikoje, o štai antroji- Altera FLEX buvo išlupta iš seno DSL modemo. O štai senuose Nokijose/Zyxel DSL modemuose stovi Xylinx čipai. Šį cikloną irgi išlupau. Beja esu pirkęs Altera FLEX čipą eBay aukcione- kainavo jis man su atsiuntimu apie 30Lt.
August 17th, 2017 at 11:51 am
Dear Savel,
I found 4 of these -old- LED matrices, so I wanted to play with it.
Can you share more information? (Altera project, notes…)
Thanks a lot and nice blog (even if I don't speak lituanian
August 18th, 2017 at 3:46 pm
I think everything is posted somewhere in this site. I dont know if there is any translation about this device in English version of the blog.