Tento displej má byť využitý pre autodráhu pre meranie medzičasov a celkového prejdeného času autíčka.
Autodráha je určená pre testovanie autíčok súťaže Freescale Cup na Žilinskej univerzite. Úlohou môjho zadania z predmetu NEZ (Návrh elektronických zariadení) bolo navrhnúť a skonštruovať zariadenie pre meranie času s pridanou možnosťou merania medzičasov. Zobrazenie meraného času má vykonávať na displej a takisto má byť zabezpečené posielanie údaja o čase do PC cez sériovú linku so zobrazením v programe s grafickým užívateľským rozhraním GUI. Dôležitou problematikou tejto práce a jej riešenie bolo pripojenie 32 miestneho vákuového displeja ku mikropočítaču, kde každé zobrazované miesto obsahuje 16 zobrazovacích segmentov. V tomto članku by som teda chcel opísať môj návrh riešenia problému a jeho realizáciu.
VFD displej
Jednou z foriem pre zobrazenie aktuálneho času a medzičasov bol zvolený spôsob výpisu na displej. Ako displej sme využili VFD displej (vacuum fluorescent display) s označením 32-SY-03ZL, ktorý obsahuje 32 zobrazovacích miest pričom každé zobrazované miesto obsahuje 16 segmentov, podľa obrázka Obr. 1 a Obr. 2.
Obr.1 Segmenty jedného zobrazovaného miesta na VFD displeji
Obr.2 Rozloženie zobrazovaných miest na VFD displeji
Obr.3 VFD displej 32-SY-03ZL
Segmenty s tým istým označením na jednotlivých miestach sú spolu prepojené to znamená že displej obsahuje 16 vývodov, ktorými sa vyberá, ktoré segmenty majú práve svietiť. Aby sme zabezpečili, že dané segmenty budu svietiť na požadovanom zobrazovacom mieste displeja, tak každé miesto obsahujú tzv. mriežku (grid), ktorá po privedení napätia s určitou úrovňou, povoli rozsvietiť vybrané segmenty. Riadiaci program bude musieť teda zabezpečiť spínanie jednotlivých mriežok s potrebnou frekvenciou tak, aby bol zabezpečený statický obraz. Frekvencia však nesmie byť príliš vysoká pretože platí: čím vyššia frekvencia prepínania, tým menší jas displeja.
Pre zobrazovanie jednotlivých segmentov sa využívajú vyššie úrovne napätia na jeho vývodoch (40 V) ako je úroveň napätia ktoré využíva mikropočítač (5 V), preto bolo potrebné navrhnúť jeho riadiacu časť s posilením výstupu pre displej.
Pre funkčnosť displeja sa pripája aj napätie pre rozžhavenie vlákna, ktoré býva vačšinou striedavé s úrovňou 7 Všš. Striedavé napätie sa využíva preto, aby bol zabezpečný rovnaký jas displeja, po celej jeho zobrazovacej dlžke. V našom prípade sme nepoužili striedavé napájanie pre žhavenie ale jednosmerné napätie +-3,5V, ktoré je tvorené DC/DC meničom pre +/- 5V a znížené na +/-3,5 úbytkom na diódach zapojených do série.
Pri návrhu riadenia displeja sme vychádzali z blokovej schémy zobrazenej na obrázku Obr. 4. Vstupom do riadenia sú dva 8-bitové porty, kde jeden z nich je označený ako dátový (privádzajú sa cez neho zobrazované dáta) a druhý je označený ako riadiaci pretože umožňuje riadenie jednotlivých blokov ako sú hodiny a povolenie funkcie daného bloku.
Obr.4 Bloková schéma riadenia displeja
Obr.5 Register A
Obr.6 Register B
V riadení sme využili dva 8-bitové záchytné registre tzv. latch-e (A a B). Umožňujú zapamätať si hodnotu vstupu. Hodnota vstupu sa zaznamená a prevedie na výstup po privedení hodinového signálu. Tieto zachytné registre sa využívajú na zopnutie jednotlivých segmentov displeja a ich výstup je posilený obvodom UDN2928, na ktorého výstupe sú logické stavy s úrovňou 40 V. Výstupy týchto obvodov sme ošetrili rezistorovou sieťou tak aby v stave vysokej impedancie boli stiahnuté na logickú úroveň 0, čo značí, že všetky segmenty sú zhasnuté.
V zapojení sa ďalej vyžívajú dva 16-bitové dekódery (C a D) z dvojkového stavu na desiatkový. Pomocou nich sa vyberá príslušné miesto na displeji, ktorého segmenty majú byť práve rozsvietené. Ich výstupy sú takisto posilnené obvodom UDN2928. Pre zobrazenie len jedného miesta, musí byť jeden z týchto obvodov zakázaný, príslušnou logickou úrovňou na vstupnom pine označom INHIBIT. Potvrdenie zápisu hodnoty na výstup sa takisto vykonáva privedením hodinového impulzu. Schéma zapojenia riadenia displeja je na obrázku Obr. 7
Obr.7 Schéma zapojenia riadenia displeja (pre zvačšenie klikni na obrázok)
Obr.8 Zoznam použitých súčiastok
Obr.9 Konektory pre pripojenie riadenia k mikropočítaču
Algoritmus programu pre zobrazovanie na displej
Algoritmus zobrazovania znakov na displeji je nasledovný: premenna grid, ktorá nesie informáciu o prave zobrazovanom mieste na displeji, sa najprv inicializuje na hodnotu 32, čo je prve miesto na displeji zľava. Obe registre (A,B) a dekódery sú na začiatku deaktivované, t.j. na displeji sa nič nezobrazuje. Dekremenetuje sa premenna grid a do premennej digit sa načíta hodnota, ktorá predstavuje miesto v tabuľke ASCII znakov pre zobrazovaný znak. Zobrazovať sa bude znak z buffer-a na mieste grid. Na port, na ktorom je pripojený dátový vstup riadenia displeja sa najprv vystaví spodných 8 bitov premennej digit, a dáta sa potvrdia hodinami pre register A. Dáta sa takto v registri uchovajú. Potom sa na dátový port vystavia horné bity premennej digit a takisto sa potvrdia hodinami pre register B. Funkcia, resp. výstup oboch registrov sa povolí príkazom A_ENABLE (ním sa povoľuje register A a zároveň aj register B). Ďalej sa v algoritme zisťuje stav premennej grid. Ak je jej hodnota menšia ako 16, výber zobrazovaného miesta sa uskutoční dekóderom C a ak je hodnota väčšia ako 16 (a zároveň rovná) tak sa zobrazované miesto vyberá dekóderom D. Vybrané miesto sa potvrdí hodinovým signálom pre vybraný dekóder a takisto sa dekóder povolí inhibit signálom. Po tomto procese sa skontroluje stav premennej grid, ak je nulový tak sa nastavý na hodnotu 32. Po vysvietení znaku na danom mieste sa počká 500 us a algoritmus sa opakuje. Časovanie 500 us sa v programe realizuje pomocou prerušenia od časovača 0, aby čas 500 us bol využitý na inú činnosť mikroprocesora.
Obr.10 Vývojový diagram algoritmu zobrazenia na VFD displej
Priebeh riadenia displeja na jeho dátových a riadiacich linkách sme zachytili logickým analyzérom a priebehy je možné vidieť na obrázkoch Obr. 10 (a,b,c,d).
a) zobrazuje priebeh komunikácie na jednotlivých linkách, je tu možné všimnúť si striedavé prepínanie medzi dekóderom C a D na inihibit linkách (D5 a D6) resp. hodinových impulozch (D2 a D3); takisto hodinové impulzy riadenia registrov A a B (D0 a D1);
b) na tomto obrázku je detajlnejší pohľad na zápis jedného zobrazovacieho miesta displeja;
c) screen vytvorený pri zápise znaku „0“ (dátové linky D8 až D15) na dekóder D (jedno jeho miesto); vidno že pri hodinovom impulze na register A je na dátových linkách spodných 8 bitov premennej digit a pri hodinovom impulze na register B je na dátových linkách horných 8 bitov premennej digit;
d) podobne ako screen c) len s tým rozdielom že s znak zapisuje na jedno miesto pomocou dekódera C.
Obr.10 a Priebehy z logického analýzera
Obr.10 b Priebehy z logického analýzera
Obr.10 c Priebehy z logického analýzera
Obr.10 d Priebehy z logického analýzera
Obr.11 Popis liniek logického analýzera
Pre dobré naskenovanie priebehov sme museli pred meraním nastaviť dlžku hodinové signálu na 500 us, aby bola hrana signálu dobre viditeľná. Takisto bolo obnovovanie znaku nastavené na 1 ms. Po odmeraní analyzérom sme dlžku hodinového signálu skrátili naspäť na 1 us a obnovenie na displeji nastavili na 500 us.
Na stiahnutie
Záver
Tento displej má byť využitý pre autodráhu pre meranie medzičasov a celkového prejdeného času autíčka. Autodráha je určená pre testovanie autíčok súťaže Freescale Cup na Žilinskej univerzite.
Odkazy
Parádní věc. Zase boduješ. 🙂 To se Ti Luboši opravdu povedlo. Jen mám malý dotaz, to je displej z nějakého videa a nebo si kupoval nový pro toto zapojení?
Ahoj, no neviem ti povedat z coho to presne je. Tento displej mi dodala skola.
Aha IMX7-cka, ten menic velmi dobre poznam 🙂
Mohol by si sem, prosím Ťa, napísať typ logického analyzátora, ktorý si použil? Ďakujem
Bol to Rigol osciloskop s logickym analyzerom. Presny typ ti momentalne nepoviem, ale ak to budes velmi potrebovat tak ti to nejako zistim. Meral som to v skole, skolskym pristrojom, takze by som musel veducemu napisat co to je.
s ICM7243 nebo s MAX6954 to vyjde mnohem jednodušší jak hardwarově tak softwarově.
jo a také MAX6850 je dobrý obvod na řízení 14- nebo 16-segmentových VFD 🙂
novy link k tomuto clanku, na mojom „novom“ webe: http://lubosweb.php5.sk/?p=213