Pripojenie VFD displeja k mikropočítaču

Ú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 sa 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.

obr1Obr.1 Segmenty jedného zobrazovaného miesta na VFD displeji

obr2Obr.2a Rozloženie zobrazovaných miest na VFD displeji

obr3

Obr.2b 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. 3. 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.

obr3a

Obr.3 Bloková schéma riadenia displeja

obr4

Obr.4 Register A

obr5

Obr.5 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. 6

rsz_1rsz_obr66

Obr.6 Schéma zapojenia riadenia displeja (pre zvačšenie klikni na obrázok)

obr7

Obr.7 Zoznam použitých súčiastok

obr8

Obr.8 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.

obr9

Obr.9 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.

obr10

Obr.10 a Priebehy z logického analýzera

obr10b

Obr.10 b Priebehy z logického analýzera

obr10c

Obr.10 c Priebehy z logického analýzera

obr10d

Obr.10 d Priebehy z logického analýzera

obr11

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

Koho by zaujimalo viac môže si pozrieť program pre mikropočítač ATmega32, takisto prikladam súbory do Eagle 6 pre riadenie displeja a kompletnú dokumentáciu k zariadeniu v pdf.

Zdrojové kódy

Dokumentácia k projektu

 

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.

obr12

Obr.12 Fotografia zariadenia

Odkazy

[1] Dokumentácia k VFD displeju

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Môžete použiť tieto HTML značky a atribúty: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>