English version

Radiově řízené VFD (itronové) hodiny s DCF-77

     Úvod:
Rozhodl jsem se postavit si hodiny s vakuovým fluorescenčním displejem (VFD), nazývaným také itron. Aby měly tyto hodiny i nějakou funkci navíc, přidal jsem příjem radiového časového signálu z vysílače DCF-77. Hodiny se tedy samy nařizují a jdou vždy přesně. Nechybí jim ani datum, automatický letní a zimní čas, budík a nastavitelný jas displeje. Jelikož se mi hodiny s příjmem DCF zalíbily, rozhodl jsem se postavit i hodiny s DCF-77 ve verzi s LED displejem.
     Zapojení:
Hodiny mají šestimístný displej sestavený jednomístných sovětských VFD zobrazovačů IV-22 (ИВ-22). Po úpravě žhavícího zdroje lze ale použít téměř jakékoliv VFD, např. IV-3, IV-6, IV-11, IV-12, nebo i moderní VFD včetně plochého monolitického. Jako řídící obvod jsem zvolil Atmel AVR ATmega8A (ATmega8, ATmega8L). Ten zajišťuje všechny potřebné funkce pro provoz hodin. Taktován je z krystalu 4MHz. Napájení je řešeno pomocí dvou trnansformátorků: Tr1 a Tr2. Tr1 (15V) zajišťuje anodové napětí pro VFD a napětí pro mikroprocesor. Anodové napětí cca 42V je získáno zdvojovačem. Napětí pro mikroprocesor je sníženo z napětí 21V na 5V pomocí obvodu 7905, což je obdoba známého 7805, pracující se společným kladným pólem. Tr2 zajišťuje střídavé žhavící napětí pro VFD displeje. Žhavící napětí IV-22 je 1,2V a proud 100mA. Při sériovém zapojení je tedy potřeba 7,2V a 100mA. Sériové zapojení bylo zvoleno, protože hotové transformátorky s tak nízkým výstupním napětím, jako je 1,2V, nejsou běžné. Lze použít jakékoliv trafo a výstupním proudem alespoň 100mA a nejbližším vyšším napětí, které se doupraví pomocí odporu Rx na 7,2V. Původně jsem zamýšlel trafo 7,5V. Jelikož ale malé transformátorky mají při nižší než plné zátěži o dost vyšší sekundární napětí, ukázalo se, že i při použití trafa 6V s výkonem 1,5VA (nejnižší výkon běžně dostupného zalitého transformátorku) je výstupní napětí při zátěži 100mA stále vyšší, než 7,2V, a je tedy třeba ještě přidat odpor. Střed žhavícího okruhu slouží jako katoda. Je připojen k Zenerově diodě ZD1, která určuje zavírací napětí VFD. Pro jeho úplné zhasnutí je totiž na anodě či mřížce potřeba určité záporné napětí vůči katodě. Zavírací napětí je potřeba dostatečně vysoké, protože žhavení je přímé a na katodové napětí je tedy superponováno žhavící napětí. Napětí anod a mřížek je spínáno pomocí vysokonapěťových PNP tranzistorů T1...T14 s povoleným napětím alespoň 80V. Ty jsou zapojeny se společným emitorem a jejich báze jsou ovládány z mikroprocesoru IO1. Na neaktivní anody a mřížky je přes odpory přivedeno záporné napětí. Displej je řízen multiplexně s frekvencí multiplexu cca 100Hz. Kladné napětí je přivedeno vždy na mřížku jedné cifry a zároveň na požadované anody (segmenty). Segment VFD svítí, jen pokud je kladné napětí přivedeno zároveň na anodu i mřížku. To umožňuje jednoduché multiplexování VFD displejů. Výstup PC0 aktivuje první číslici zprava, výstup PC1 druhou zprava ... výstup PC5 číslici zcela vlevo. Piezoreproduktorek Rep1 zajišťuje zvukový signál budíku (alarmu). Lze ho nahradit indukčním reproduktorkem s kondenzátorem cca 1u v sérii. Hodiny se ovládají pomocí tlačítek TL1 a TL2. Modul pro příjem signálu z vysílače DCF-77 má rozsah napájecího napětí 1,2 až 3,3 V. Odběr je méně než 90uA, a tak jako zdroj stačí jednoduchý stabilizátor se Zenerovou diodou ZD2 (tu lze nahradit i bílou či modrou LED). Stabilizátor kromě snížení napětí také omezí digitální rušení šířící se z mikroprocesoru. Jelikož se přijímač napájí z menšího napětí, než mikroprocesor, jsou logické úrovně upraveny pomocí T2. Výstupní signál modulu je pozitivní (pulzy 100ms či 200ms jsou log. 1) a tranzistor T2 signál invertuje, program proto počítá s negativním signálem (pulzy jsou log. 0). Signál vstupuje do vývodu PD2 (INT0).
     Příjem DCF-77:
Hodiny přijímají signál z vysílače DCF-77 umístěného v Mainflingenu poblíž Frankfurtu nad Mohanem. Jeho dosah je až 2000km a pokrývá tak většinu Evropy. Časový údaj vysílá na dlouhovlnné frekvenci 77,5 kHz s amplitudovou modulací a výkonem 50 kW. Kompletní údaj o čase vysílá Každou minutu. Údaj je kódován tím, že na začátku každé celé sekundy vyšle značku v podobě poklesu výkonu s délkou 100ms pro logickou 0 nebo 200ms pro logickou 1. Vysílá se tedy 1 bit za sekundu. Pro příjem je vhodné použít hotový modul. Ten má na výstupu demodulovaný signál, tedy kladné impulzy s délkou 100ms či 200ms, vždy 1x za sekundu. Výjimkou je každá 59. sekunda v minutě, kdy je jeden impulz vynechán. To signalizuje, že další impulz bude znamenat začátek nové minuty. Významy bitů jsou znázorněné níže. Nultý bit je vždy logická 0 (pulz 100ms) a spolu s předešlým vynechaným impulzem znamená, že sekundy právě přešly na hodnotu "00". Bity 1 - 14 obsahují informace o předpovědi počasí, případně civilní varování. Předpověď využívají různé domácí meteostanice. Kódování předpovědi počasí není, zdá se, oficiálně zveřejněno. Nejspíš za účelem monopolu na prodej meteostanic a většího výdělku. K dispozici jsou asi jen výsledky reverzního inženýrství a pokusů o rozluštění šifry různými nadšenci. Zda jejich zveřejňování je legální netuším. Pro účely těchto hodin ale nejsou zajímavé. Bity 15 až 19 obsahují informaci o nouzovém provozu vysílače, blížícím se přechodu na letní čas, zda platí letní či zimní čas a informaci o blížící se přestupné sekundě.
     Pro naše účely však jsou zajímavé jen bity 20 - 59 a nultý bit. Ty obsahují informace o čase (minuty, hodiny, den měsíce, den týdne, měsíc, rok) a kontrolní paritní bity. Stačí tedy během příjmu zaznamenávat bity od 20. do nultého. S vynechaným 59. bitem je to tedy 40-bitová informace. Bity 1 - 19 jsou ignorovány a jejich chybný příjem nemá vliv. K úspěšné synchronizaci hodin tedy stačí, aby byl signál bezchybně zachycován od 20. sekundy do nulté sekundy. Po prvním zapnutí hodin tedy jejich automatické nařízení trvá dle okamžiku zapnutí 40 - 100 sekund. Přijaté bity se postupně rolují do pětice 8-bitových registrů, celkem tedy 40 bitů. Přebytečné bity přetékají. V okamžiku, kdy poslední bit byl přijat po 2-sekundové mezeře, jsou v posuvných registrech bity od 20. do nultého (bit 59 není započítán). Přijetí bitu po 2-sekundové mezeře spustí vyhodnocení přijatých dat. Během něj je kontrolována správnost všemi dostupnými způsoby. Jsou kontrolovány 3 paritní bity (minut, hodin a datumu). Dále je kontrolováno, zda nultý bit byl "0" a 20. bit byl "1". Dále je ještě zkontrolováno, zda čísla jsou v povoleném rozmezí (tedy minuty 00-59, hodiny 00-23, den 1-31, měsíc 1-12, den týdne 1-7) a zda žádný BCD kód nenabývá zakázaných hodnot (tedy hodnota více než 9). Nakonec je zkontrolována i konzistence času s předchozím správným vzorkem. Pokud je vše v pořádku, hodiny se podle přijatého signálu nařídí.
     Je nutno dodat, že signál z hotového přijímacího modulu rozhodně nemusí být bezchybný. Ukázalo se, že pulzy na výstupu nejsou čisté pulzy délky 100 nebo 200ms, ale jsou roztříštěny na sled krátkých impulzů, viz obrázek níže. Program s tím tedy musí počítat a musí odfiltrovat krátké mezery v průběhu pulzu. V případě mého programu je sestupná hrana vyhodnocena až pokud signál setrvá na log. 0 déle, než 25ms. Dále je potřeba počítat i s rušivými impulzy v náhodných místech mezi skutečnými impulzy z vysílače. Krátké rušivé pulzy jsou potlačeny už na základě jejich nedostatečné délky. Jelikož pulzy vysílače přicházejí vždy po 1s, je možné také odlišit delší rušivé impulzy od impulzů vysílače díky tomu, že přijdou příliš brzy. Program tedy ignoruje pulzy, které se objeví do 900ms od začátku předchozího vyhodnoceného pulzu. Díky tomuto hodiny správně synchronizují, i pokud je signál méně kvalitní, a umí si poradit i s rušivými pulzy a roztříštěním pulzů vysílače.
     Pulzy jsou kódovány poklesem vysílacího výkonu. Rušivé signály z jiných zdrojů se k výkonu vysílače přičtou a demodulátor tedy vytvoří ve výstupních pulzech krátké mezery. Krátké výpadky signálu vysílače zase způsobují nežádoucí výstupní pulzy, jelikož se chovají podobně, jako pokles vysílacího výkonu. Bez softwarového opravování chyb signálu se téměř nelze obejít. Přijímací anténa je feritová. Ferit je nutno umístit vodorovně bokem k vysílači. Z pohledu ČR je vysílač na západní straně a feritovou anténu je tedy nutno umístit do severo-jižní polohy.
     Program:
Program VFD hodin je níže ke stažení v HEX souboru přímo pro nahrání do mikrokontroléru i jako zdrojový kód v Assembleru pro případné úpravy. Na obrázku níže je nastavení konfiguračních bitů mikroprocesoru v programu AVRISP i PonyProg. Hodiny jsou řízeny krystalem 4 MHz. Zajímavostí je počítadlo provozních hodin. Aby nedošlo ke ztrátě údaje (24bit) ani při odpojení sítě i baterie, je ukládán do EEPROM a 8x za hodinu aktualizován. Aby nedošlo k brzkému opotřebení EEPROM (garantovaná životnost každého bajtu je 100 000 zápisů), používá se rozdělování zátěže (wear leveling). Pro nejnižší bajt je postupně střídáno 96 různých bajtů v EEPROM. Pro vyšší dva bajty to není potřeba, protože se aktualizují jen při přetečení nižšího. Ke 100 000. zápisu toho samého bajtu by došlo až po 137 letech trvalého provozu. Do EEPROM je uloženo také nastavení jasu, nočního stmívání, automatického letního/zimního času a výchozí mód zobrazení, aby po výpadku napájení zůstalo vše zachováno.
     Ovládání:
Hodiny se ovládají pomocí tlačítek TL1 a TL2.
1. Zobrazení
Hodiny mají dva základní módy zobrazení. První z nich zobrazuje pouze čas ve tvaru "HH.MM.SS" (Hodiny.Minuty.Sekundy). Druhý zobrazuje střídavě čas a datum s periodou 7 sekund. Čas je vždy zobrazen po dobu 5 sekund a datum po dobu 2 sekundy. Datum je zobrazeno ve tvaru "TT.DD.MM" (Den v týdnu.Den.Měsíc). Tlačítko TL2 přepíná mezi zobrazením času, času+data a nastavením budíku. Tlačítko TL1 umožňuje volbu jasu v 6 stupních (1/32 - 1/16 - 1/8 - 1/4 - 1/2 - max). Pokud v posledních 10 minutách došlo k úspěšné synchronizaci s DCF, tečky za hodinami a za minutami blikají s frekvencí 1Hz. V opačném případě svítí trvale. V okamžiku úspěšné synchronizace rychle zablikají (4Hz). Tečka za sekundami bliká v rytmu impulzů z přijímače DCF a indikuje jeho správnou funkci (každou sekundu záblesk dlouhý 0,1 - 0,2s).
2. Budík
Hodiny jsou vybavené budíkem. Tlačítkem TL2 postupně přecházíte mezi zobrazením času, času+data a čtyřmi kroky nastavení budíku: Hodiny budíku, desítky minut budíku, minuty budíku, mód budíku. K nastavení slouží tlačítko TL1. Módy budíku jsou: 0 - vypnutý, 1 - jednorázový, 5 - v pěti pracovních dnech, 7 - každý den. Zobrazení je "hh.mm.Ax" (hh jsou hodiny, mm minuty, x je mód budíku). Zvonící budík lze zastavit kterýmkoliv tlačítkem.
3. Ruční nařizování, speciální funkce
Hodiny se nařizují samy podle signálu DCF, ale v případě potřeby je možné je nařídit i ručně. Dlouhým stiskem tlačítka TL2 se dostanete k nařizování hodin a také ke speciálním funkcím a nastavením. Mezi jednotlivými funkcemi pak přepínáte krátkým stiskem TL2. Nastavení provádíte pomocí TL1. Nejprve se zobrazí počítadlo provozních hodin. Zobrazuje celkovou dobu provozu zařízení (v hodinách). Následujícím stiskem TL2 se zobrazí doba uplynulá od poslední úspěšné synchronizace s DCF. Další stisk TL2 zobrazí různá surová data z přijímače DCF - tedy počítadlo přijatých bitů, hodnotu právě přijatého bitu a stav vyhodnocení. Poslední dvě číslice jsou sekundy reálného času. Dalším stiskem TL2 se dostanete do procesu ručního nařízení hodin. Postupně nařídíme hodiny, desítky minut, minuty, sekundy, rok, den v týdnu, den a měsíc. Pak je možné zvolit jazyk dne v týdnu (dAY CE - česky, dAY En - anglicky). Poté následuje nastavení nočního stmívání (n.di). hodnota 0 znamená vypnuto. Hodnoty 1 a 2 znamenají, že v noci (od 21:00 do 5:00) bude jas displeje snížen o 1 či 2 stupně. Dále nastavíme automatický přechod na letní a zimní čas (dSt). Hodnota 0 znamená vypnuto, hodnota 1 zapnuto. Pak nastavíme synchronizaci se signálem DCF-77 (dCF). Hodnota 0 znamená vypnuto, hodnota 1 zapnuto. Dalším stiskem TL2 se již dostaneme nastavení budíku (popsáno výše) a poté do základního zobrazení.
4. Automatický letní a zimní čas
Pokud je automatický přechod povolen, přesun na letní čas proběhne poslední neděli v březnu tím, že po 1:59:59 následuje 3:00:00. Přesun na zimní čas proběhne poslední neděli v říjnu tím, že po 2:59:59 následuje 2:00:00. (Dle pravidla platného pro téměř všechny evropské státy včetně ČR a SR od r. 1996.)
5. Vynulování počítadla provozních hodin
Počítadlo provozních hodin lze vynulovat tím, že při propojené drátové propojce DP1 dlouze stisknete tlačítka TL1 i TL2 současně. Počítadlo se nastaví na 000000. Nulování se doporučuje provést pouze při výměně VFD. Za normálních okolností tedy propojku DP1, povolující nulování, nepropojujte.

     Zkušenosti z provozu hodin:
13. 2. 2019 - 29 700 h provozu bez poruchy, bez viditelného opotřebení.

     Upozornění: Napětí v celém obvodu může být nebezpečné. Zdrojová část pracuje s neodděleným síťovým napětím. Vše děláte na vlastní nebezpečí. Autor nebere žádnou zodpovědnost za jakékoliv vaše újmy.

     Celý program ke stažení:
Zdrojový kód v assembleru (ASM)
Přeložený v HEX souboru (5 188 Bajtů)
Zapisování programu do AVR se podrobněji věnuji zde.

Případným zájemcům mohu naprogramovaný mikroprocesor poslat. Více info zde.

Schéma VFD / itronových hodin
Schéma itronových (VFD) hodin s IV-22 a příjmem DCF-77. (Klikněte pro zvětšení)


Nastavení konfiguračních bitů v progamu PonyProg.
Hexadecimálně: Low Fuse: BF, High Fuse: D1.


Nastavení konfiguračních bitů v progamu AVRISP.

Hotové radiově řízené VFD (itronové) hodiny s DCF-77













Hodiny během stavby


Dosah DCF-77 (převzato z wikipedie).

Schéma VFD / itronových hodin
Tabulka významu jednotlivých bitů vysílaných v průběhu každé minuty (převzato z wikipedie). Červeně jsem vyznačil, které bity jsou pro tyto hodiny využity a jak je 40-bitová informace rozdělena mezi 5 8-bitových registrů. (Klikněte pro zvětšení)


Ještě jeden nákres kódu vysílaného každou minutu - tentokrát kruhový (převzato z ptb.de).


Signály DCF. Ideální a skutečný průběh na výstupu přijímače.


VFD displeje IV-22 (ИВ-22) zvolené pro stavbu hodin.


První test - žhavení z částečně vybitého monočlánku.





Spektrum VFD. Obsahuje spoustu modré, azurovou a spoustu zelené. Je tu i trocha červené, ale chybí žlutá.


Patice PL31a-p (ПЛ31а-п) v hnědé verzi, vyrobené 1985.


Řídící deska VFD hodin. Zatím se napájí z externího zdroje.


První test proběhl s jiným VFD - miniaturním plochým 8-ciferným.


Modul pro příjem DCF-77 s laděnou feritovou anténou.


Modul po úpravě - použit bytelnější kabel k anténě a přidána destička s tvarovačem a blokujícím kondenzátorem.


Deska s VFD displeji IV-22


Řídící deska po doplnění zdroje.


První úspěšné testy šestimístného displeje z baněk IV-22.


Pokus s barevnými filtry ukázal, že z VFD se dá získat za cenu menších či větších ztrát téměř jakákoliv barva. Nakonec jsem se ale rozhodl použít neutrální šedý filtr, protože typické barvě VFD se prostě nic nevyrovná :). Je to nepopsatelná modro-zeleno-tyrkysovo-azurová barva, kterou nemá nic jiného.


Vestavba do krabice.





Téměř hotové.


Sovětské vs. mezinárodní značení segmentů sedmisegmentovky. Pozor, tyto VFD jsou nejen značené azbukou, ale také v jiném pořadí, než obvykle.


VFD IV-22 (ИВ-22) - datasheet 1


VFD IV-22 (ИВ-22) - datasheet 2


Video



Přidáno: 1. 7. 2015
zpět na úvodní stránku