Nyt 7. päivä jää kurssi väliin kun olen matkoilla. Vuoden viimeinen kurssikerta on siis 14. päivä ja sitten pidämme kahden viikon joululoman. Syksy on mennyt vähän suunniteltua hitaammin, niin näillä näkymin jakamme sitä helmikuun lopulle.
Viimeksi ratkesi XADC:n epälineaarisuus, se siis toimii oikein, mutta ne 3.3V -> 1V vastusjaot häiritsevät potikan käyttämistä suoraan, väliin pitäisi laittaa esimerkiksi opari puskuriksi. Sitten taas ne HALL-anturit kyllä jaksavat ajaa sitä suoraan.
Aloitimme myös HDMI:n perusteisuun tutustumisen ja demoamisen. Aika samalla tyylillä pystyisi myös ajamaan LVDS-väylällä olevia näyttöjä, Sharpin LQ104S1LG81 800x600 TFT
-näyttöjä saattaisi olla jaossa jos vaan saadaan ensin yksi kytkettyä testaukseen.
Käsittelemme huomenna nopeiden digitaalisten differentiaalisignaalien generoimista. Esimerkkinä käytämme varsinkin vanhemmissa LCD-näytöissä käytettyä FPD-Linkkiä sekä HDMI/DVI ja DisplayPort-liityntöjä. Samoja periaatteita voi sitten soveltaa muidenkin nopeiden väylien kanssa ja näin harrastajalle nämä ovat hyviä koska ‘mittalaitteena’ toimii näyttö josta helposti näkee kuinka hyvin signaali menee perille.
Tässä kokoelma linkkejä refeenssiksi, saa selata etukäteen kunhan varoo informaatioähkyä:
edelleen digitaalisissakin järjestelmissä kuva lähtetään riveittääin pikseli kerrallaan vasemmalta oikealle ja ylhäältä alas, rivien ja ruutujen välissä tyhjää jota ennen tarvittiin kuvaputken eletronisuihkun palauttamiseen, nykyään näissä tyjissä väleillä sitten siirretään audiota ja muuta dataa
neljä lanea, yksi pikselikellolle ja kolmeen koodattu dataa 7-bittiä jolloin yhdellä pikselikellolla lähtettään 21-bittiä joista 3x6-bit RGB ja 3-bitillä syncit ja display enable
TMDS, neljä lanea, yksi pikselikellolle, kolmeen koodattu 10-bittisenä (oma 8b/10b enkoodaus) 24-bittiä, neljällä ylimääräisellä 10-bit koodilla välitetään syncit ja display enable
1, 2 tai 4 lanea, pakettipohjainen, käytää standardia 8b/10b enkoodausta
Kurssilla olevissa kehityslaudoissa ei ole suoraan 2.5V bank-jännitettä saatavilla, jolloin LVDS_25 I/O-standardia ei virallisesti saa ulos, mutta tähän on muutamia ratkaisuja joita käydään huomenna läpi. HDMI/DVI:n TMDS_33 taas onnistuukin suoraan.
Rohkeimmat voivat näitä vähän kurkkia, ne ovat 3- ja 6-sarjalaisille, mutta niistä näkee raudan evoluutiota ja 7-sarjalaisessa on vielä tehokkaampi OSERDES jolloin homma vielä vähän yksinkertaistuu.
Tänään teimme 400x300x6-bit framepuskurin joka juuri mahtui BRAMeihin helposti ja ajoimme HDMI-kuvaa ulos 800x600 resoluutiolla paukkulankojen läpi. Sitten teimme yksinkertaisen videosoittimen joka kopsii raakavideota USB-tikulta näytölle.
Ensi kerralla jatkamme ja yritämme siirtää videomuistin DRAMiin jotta saamme kunnon resoluutiot käyttöön.
Output Clocks -tabilta: clk_out1 = 40MHz, clk_out2 = 200MHz, molempien toiseksi viimenen sarake, Drives = No buffer ja sivun alhaalta pois kaikki Enable Optional Inputs/ Outputs
Mutta näillä tiedoilla ei välttämättä vielä saa tyhjästä luotua toimivaa projektia. Mutta kunhan tästä saadaan parin viikon sisällä joku hyvä standalone demo aikaiseksi, teen tarkat ohjeet kuinka projekti rakennetaan millekin laudalle.
Huomenna 15.2. jatkamme kurssia taas normaalisti kun lattianmaalausprojekti vihdoin saatu pois jaloista.
FPD/LVDS-korteista on yksi ladottu ja testattu, että homma toimii. Siinä on tosin pari haastavampaa kohtaa juottamisen kanssa, mutta ihmetellaan niitä tarkemmin huomenna ja sitten sovitaan päivä jolloin niitä rakennellaan.
Huomenna myös pikainen esittely kuinka laudalla kiinteänä olevalle flashpiirille (yleensä 16MiB) mhtuva BusyBox/Toybox-linux voidan ottaa testikäyttöön.
Projektin sorsat löytyy gitlabista, projetin kasaamisen tutoriaali tulee myöhemmin.
Levyt ladotaan ja uunitetaan pintaliitoskomponenttien osalta tiistaina Antin johdolla ja sitten sen jälkeen jokainen saa juottaa liitimet niihin itse. Myös näyttöjä pitäisi olla jaossa torstaina.
Seuraavalla kerralla katsastamme pari ToF sensoria, 1x1px ja 80x60px. Nuo sopivat FPGA:n kylkeen hyvin jos vaikka robotia on tekemässä.
Lisäksi katsotaan kuinka Buildroot-projektilla voi tehdä oman Busybox ‘distron’ joka mahtuu tarvittaessa kehityslaudan flash-muistille jolloin projekti toimii ilman SD-korttiakin, mutta kuitenkin käyttäen samaa kerneliä.
Tässä melkein on oltava joku Desktop Linux virtuaalikoneessa, muuten menee kääntäminen liian hitaaksi.
Sen jälkeen vähän pivotoimme ja jatkamme kurssia enemmän workshop-hengessä. Eli jokainen ottaa oman projektinsa jota alkaa edistämään ja on ainakin kerran viikossa allokoitua aikaa sen edistämiseen. Ideana tarjota vertaispainetta ja tukea jotta projektit edistyvät, mutta kuitenkin niin että ei tarvitse stressata jos ei omalla ajalla aina kerkiä sitä edistämään.
Kurssi on nyt saatu pidettyä ja tavoitteetkin varmaan saavutettiin. Syksyllä mahdollisesti olisi tulossa kurssia epäteoreettisesta signaalinkäsittelystä jossa yhtenä vaihtoehtona on käyttää kurssille valikoituneita FPGA-kehityslautoja, mutta tästä tarkempaa tietoa loppukesästä.
Myös kurssin aloittaminen alkeista Arduino Vidor:lla saattaa olla mahdollista jos vetäjä löytyy.
Kiitos kurssilaisille, paljon on opittu ja varmasti myöhemmin näkyy labilla toteutetuissa projektessakin.