Byl jsem požádán o vývoj konstrukce "sálových" hodin řízených signálem DCF-77. Požadavkem na konstrukci byla její modulárnost, aby bylo možno připojit více modulů hodin na jeden přijímač a aby byla možná pozdější jednoduchá úprava displeje ohledně velikosti zobrazovacích prvků. Další požadavek je, aby hodiny zobrazovali více časových údajů najednou s tím, aby bylo možno editovat hodiny a tím nastavit časové pásmo pro různé světadíly. Samozřejmostí je úplný datum i s dnem v týdnu a zálohování dat v EEPROM. Výsledkem při "spřažení" např. dvou modulů získáme až 5 různých časových údajů + datum.

Celkový náhled na konstrukci - ke zvětšení obrázku klikněte na náhled  

Pohled na modul přijímače DCF - skutečný rozměr je 80x25x32mm


Hodiny zobrazují tyto informace a umožňují tyto funkce

  hodiny ve formátu HH:MM
  datum ve formátu DD:MM
  rok
  den v týdnu (Po až Ne)
  nastavení libovolného výše uvedeného údaje na libovolný displej
  editaci hodinového údaje - připočtení nebo odečtení konstanty v rozsahu 1 až 24 k hodinovému údaji pro nastavení času v jiném světadílu. Datum se nemění!


Pohled na displej




Technické parametry:

Napájení: 8 až 30V (je v modulu stabilizováno na 5V, pro více než cca 15V nutno zvětšit chladič)
Zobrazení: 4x4místný LED displej, dle požadavku je možno na každém displeji nezávisle zobrazit hodiny s minutami, den a měsíc, rok a den v týdnu
Proudová spotřeba: cca 150 mA

Přijímač DCF-77: externí, popis níže
Indikace synchronizace hodin s DCF signálem
Indikace, že signál DCF není dostupný ve zpracovatelné kvalitě
Přesnost: daná normálem DCF, odchylka max. 1 sekundu za dva roky
Zálohování parametrů: paměť EEPROM




Popis konstrukce
      Bylo možné volit z několika variant, jak hodiny zkonstruovat. To se týká hlavně displeje, kdy jsem se rozhodoval mezi využitím komunikace I2C s expandéry, použití "displejového" driveru typu ICL 7218, eventuelně nějakého jiného sériového zápisu dat a nebo klasickým multiplexním režimem řízeným procesorem. Rozhodl jsem se pro druhou možnost i přes to, že je do desky displeje taženo 24 signálů, a že je vzhledem k časování již téměř na samé hranici možností multiplexu. Uznávám, že konstruktérsky "čistší" by byla některá z výše uvedených možností, ale snížení počtu přenášených signálů mezi deskami by bylo vykoupeno větší složitostí na straně displeje.
      Co nejvyšší jednoduchost desky displeje je preferována z důvodu eventuelní změny konstrukce displeje v maximální možné míře, co se týká nejen rozměrů segmentovek, ale aby zůstala i možnost sestavení velkého displeje např. z řad LED na univerzálním plošném spoji. Proto jsou ze strany hardware na desce displeje jen zobrazovací prvky. Mírně vyšší složitost plošného spoje je podmíněna nepoužitím prokovených otvorů, ne každý má možnost takové desky získat za nízkou cenu. Zařízení je určeno jako vestavný modul, proto není použita krabička na celou konstrukci. Je možné připojit na jeden přijímač více hodin, a tak získat informace o různých časových pásmech. Samozřejmě datum je odpovídající k normálovému času v našem pásmu a s posuvem časového údaje se nemění.


Ovládání
      Po zapnutí se na displeji objeví logo. Pokud nechceme načítat data z EEPROM (paměť je nová, chceme implicitní hodnoty apod.) před spuštěním stiskneme a držíme tlačítko UP, které po zobrazení loga uvolníme. Pak se na displejích zobrazí pomlčky blikající v sekundovém intervalu. Svítící červená LED signalizuje, že zatím není k dispozici použitelný signál DCF. Pokud je správně načtena alespoň část telegramu DCF, červená zhasne a tím signalizuje, že je k dispozici použitelný signál. Od této doby za cca 1 minutu by se již měla rozsvítit zelená LED a měl by se objevit platný časový údaj ve formátu hodiny+minuty, den+měsíc, rok a den v týdnu. Pokud během chodu hodin zhasne zelená LED a nerozsvítí se červená, je signalizováno, že hodiny nejsou synchronizovány s DCF signálem a běží samostatně. Může to být způsobeno rušením, skokovým snížením kvality příjmu apod. Když je zobrazován platný časový údaj na displeji, je možno odpovídajícím tlačítkem pro každý displej měnit jeho zobrazení. Po každém stisku se změní údaj v tomto směru: hodiny -> datum -> rok -> den v týdnu a pak se vše opakuje. Toto nastavení lze provést na každém displeji zvlášť a nezávisle, takže je možno si poskládat data do libovolného formátu.
     U hodin je navíc možnost nastavení časového pásma. Pokud podržíme ovládací tlačítko pro displej, který chceme editovat asi 3 sekundy, začnou blikat hodiny a my můžeme pomocí stisknutí tlačítek UP přičítat a DOWN odečítat po jednotlivých hodinách k / od aktuální hodiny. K dispozici je posuv až o 24 hodin vpřed nebo vzad. Po dosažení požadovaného stavu stiskneme znovu krátce tlačítko od editovaného displeje, a data jsou uložena do paměti EEPROM, což se projeví bliknutím displejů. Zároveň jsou uloženy i stavy jednotlivých displejů, tj. co je na kterém displeji zobrazováno za údaj. Po přerušení napájení a jeho obnově jsou tyto parametry načteny z paměti EEPROM a displej zobrazuje opět požadovaná data na požadovaných displejích. Ukládat do EEPROM je možno pouze přes editaci funkce hodin, takže pokud nechceme posuv hodin, ale pouze uložit změnu zobrazení na jednotlivých displejích, stačí u hodin přejít do editace a beze změny údaje editaci ukončit. Aktuální zobrazení té které funkce na tom kterém displeji bude uloženo. Jiným způsobem uložení do paměti není možné, protože jsem nepředpokládal, že by si někdo nechal zobrazovat čtyřikrát za sebou různé údaje a ani jeden z nich by nebyl hodiny.


Přijímač signálu DCF-77
      Hodiny přijímají signál DCF-77, kterým jsou synchronizovány na správný čas. Časová informace je vysílána stanicí DCF77 na dlouhých vlnách s kmitočtem 77,5 kHz z vysílače v Mainflingenu v SRN. Dosah vysílačeje okolo 1500-2000 km, dlouhodobá přesnost 2*10-13 odpovídá při 77,5 kHz jednomu kmitu za dva roky. Kódování časové informace je prováděno pulzně šířkovou modulací s poklesem amplitudy nosné na 25 % na začátku každé sekundy. Klíčování je synchronizováno fázovou synchronizací s nosnou a odpovídá přesně úřední časové stupnici fyzikálně technického ústavu v Braunschweigu (PTB - Physikalisch-Technischen Bundesanstalt). Tento pokles však odpadá při 59. sekundě každé minuty - minutová značka. Pokles trvá 100 ms - log 0, a 200 ms - log 1. Více o signálu DCF lze nalézt na internetu, konkrétně např. na HW serveru Vysílání a příjem časové informace DCF77 nebo Příjem a vyhodnocení časového kódu DCF 77 .

     Protože originální přijímače jsou dosti drahé a do stavby se mi nechtělo hlavně kvůli rozměrům a omezeným možnostem nastavování v mých podmínkách, zvolil jsem kompromis. Použil jsem modul hodin od CONRAD ELECTRONIC s označením WT 100 obj. č. 641871 za 406,-Kč. Dá se sehnat v prodejně CONRAD ELECTRONIC v Praze, Roháčova ulice č.40. Po jeho rozebrání rozehnutím západek získáme plošný spoj s dvěma zalitými obvody .

Na tomto modulu je třeba provést několik změn. Ty jsou ilustrovány na následujícím obrázku.

Přestavba modulu DCF - ke zvětšení klikněte


      Spojíme cínovým můstkem plošku označenou jako "propojení spouštění na zem". Tento signál zapíná vždy každou celou hodinu přijímač DCF a pak jej vypne kvůli úspoře baterií, což mi nepotřebujeme. Pak přeškrábneme spoj, který vede dekódovaný signál DCF do hodinového obvodu a směrem k přijímači DCF na něj připájíme ohebné lanko. Detaily jsou vidět na obrázku. Dále zapojíme obvod podle následujícího schématu.

Přestavba modulu DCF


      Jedná se o stabilizátor napájecího napětí 1,5 V pro DCF přijímač a výstupní obvod. Protože je tento obvod velmi jednoduchý, zvolil jsem konstrukci na kousek univerzálního plošného spoje. Po sestavení propojíme napájení s modulem DCF (připájeno na původní kontakty od baterie) a připojíme výstup signálu DCF z modulu na bázový rezistor R2. Jako další úpravu provedeme vyjmutí feritové antény z původní krabičky hodin. Odpájíme vodiče vinutí antény z plošného spoje, a protože anténa je v krabičce hodin vlepená, já jsem opatrně krabičku rozlomil a anténu z ní vyjmul. Je třeba pracovat opatrně, ferit je samozřejmě křehký materiál. Po vyjmutí antény a jejím zpětném připojení jsem ji pomocí tavného lepidla přilepil ke hraně plošného spoje. Výsledek je vidět na dalším obrázku.

Pro větší velikost klikněte na náhled


     K příjmu signálu je třeba podotknout několik maličkostí. Feritová anténa přijímá signál dobře i přímo na zemi a její činnosti neovlivňují ani silné zdi budov. Proto je zbytečné dávat ji na vyvýšené místo, nebo ven mimo budovu. Naopak, takové umístění by jen zvýšilo pravděpodobnost poškození přijímače při bouřce, zatékání při dešti apod. Signál zeslabují jen železobetonové stavby, ale i tam je provoz přijímače možný. Někdy vznikají problémy s rušením signálu. Pokud rušení přichází jen z jednoho směru a rozdíl od směru užitečného signálu je alespoň 30 stupňů, je dobré směrovat anténu ne na maximum signálu, ale na minimum rušení. Pokud se rušení šíří železobetonovou konstrukcí budovy a přichází ze všech stran, nedá se směrováním antény odstranit. V takovém případě je nutné pro přijímač hledat jiné místo, obvykle na okně.
      Mezi nejčastější zdroje rušení patří televizory. Snímkový kmitočet 50 Hz má široké spektrum harmonických a 1550. harmonická leží přímo na přijímaném kmitočtu. Monitory počítačů jsou mnohem lépe stíněny a používají odlišný snímkový kmitočet. Dále ruší např. spínané zdroje v počítačích apod. Tyto zdroje obvykle zaruší pouze okruh cca do 1 až 2 m. Rušení je jednak přímo vyzařované do okolí, jednak se šíří i po elektroinstalaci. Tak může znemožnit příjem až do vzdálenosti desítek metrů. Po vestavění do krabičky U-KM25B je příprava přijímače ukončena.


Deska procesoru

     Na desce procesoru je umístěn jak vlastní procesor, tak tlačítka pro ovládání displejů, spínací tranzistory a paměť EEPROM. Displej je umístěn na zvláštní desce. Protože je řízen multiplexně, je třeba ke každé anodě spínací tranzistor. Katody všech zobrazovačů jsou spojeny a připojeny přes rezistory na port P1 procesoru. Aby byl jas displeje při multiplexním řízení dostatečný, jsou sníženy odpory rezistorů na 22 ohmů. Zapojení krystalu a signálu RESET je obvyklé, paměť EEPROM je připojena na 4 bity portu P3. Vzhledem ke konstrukci portu P0 (otevřený kolektor) je přidáno rezistorové pole R26. Napájení je přivedeno přes stabilizátor IC3, proto je možné napájet modul napětím 8 až 35V. Pro napájecí napětí vyšší než asi 15 V je nutné zvětšit chladič stabilizátoru. Protože se vzhledem k množství signálů nepodařilo navrhnout desku plošných spojů jako jednostrannou, začneme osazování tím, že zapájíme jako první propojky mezi oběma stranami spoje. Poté osadíme součástky jak je zvykem od nejnižších (rezistory, kondenzátory) po nejvyšší. Pro procesor a paměť je použita precizní patice, jako konektor mezi deskami je použita dvouřadá lámací lišta o délce 12 pinů. Jako poslední osadíme tlačítka. Tím je osazení desky ukončeno.

Pro větší velikost klikněte na náhled Klikněte pro přechod na stránku schémat a plošných spojů



Klikněte pro přechod na stránku schémat a plošných spojů
Deska displeje
     Deska zobrazení je osazena pouze sedmisegmentovými zobrazovači a konektorem opět vytvořeným z dvouřadé lámací lišty. Na desce je o několik propojení mezi stranami více, neboť jsem chtěl, aby se zobrazovací jednotky pájeli pouze ze strany spojů (u konektoru to bez prokovených děr ani jinak není možné). Před osazením sedmisegmentovek je třeba opět zapájet propoje mezi stranami plošného spoje.


Popis programu
      Délka programu je 2267 byte. Je tvořen čtyřmi částmi. Rutinou pro dekódování signálu DCF, rutinou vlastních hodin, rutinou pro zobrazení na displejích s přičítáním nebo odečítáním hodin a konečně rutinou ukládání a čtení do / z EEPROM. Při dekódování signálu DCF jsou impulsy na vstupu nejprve porovnány s minimální délkou impulsu, která je ještě považována za platný impuls. Dekodér na základě kontroly minimální a maximální délky značky vyřadí nevyhovující data jako neplatná dříve, než se začnou provádět další operace. Pokud aktuální impuls nevyhoví, opakuje se čtení do doby než je načten impuls se správnou délkou. Po přijetí správného impulsu je tento stav indikován zhasnutím červené LED. Pak se testuje jeho délka, a zároveň i délka mezery, aby se zjistilo, zda jde o bit jedničkový (délka trvání 200 msec. ze sekundy) nebo nulový (délka trvání 100 msec. ze sekundy) nebo o pauzu po dokončení minuty. Když nevyhoví těmto kriteriům, je označen jako neplatný a pokračuje se novým načítáním. Pokud je vše v pořádku a telegam DCF je stabilní, ukládají se data bit po bitu do vnitřní paměti jako proud dat. Po načtení celé minuty se z proudu dat výpočtem získají data sekund, minut, hodin, dne, měsíce, roku a dne v týdnu. Mimo jiné se získají údaje o použité anténě a časovém posuvu (hlavní / záložní a zda jde o letní / zimní čas), ale v této aplikaci nejsou využita. Po uložení těchto dat do proměnných se započne s výpočtem a porovnáním parity. V signálu je vysílána sudá parita (jednobitový kontrolní součet) pro minutu, hodinu a následně ještě pro datum + den v týdnu + rok. Pomocí parity můžeme detekovat všechny jednoduché chyby a polovinu vícenásobných chyb. Pokud jsou data po výpočtu parity bez chyby, následuje přepsání časových registrů reálného času, aktualizace sekund a rozsvícení zelené LED. Pokud je zjištěna chyba, přepsání se neprovede a znovu je čten telegramu DCF.

     Hodiny reálného času běží nezávisle na příjmu signálu DCF. Po zapnutí jej potřebují jen pro první nastavení, do té doby je zobrazována na všech displejích blikající pomlčka. Pokud se data načtou, hodiny zobrazují aktuální reálný čas. I bez signálu hodiny nejen ukazují čas, ale i při změně data je prováděna kontrola přetečení podle počtu dní v měsíci (30,31) a navíc je prováděna kontrola na přestupný rok (28. a 29. únor). Rutina zobrazení provádí obsluhu displeje. Displej je řízen multiplexně a zároveň s jeho obsluhou je čten stav tlačítek. Každý displej má svoje ovládací tlačítko a navíc jsou pro možnost editace použita tlačítka UP a DOWN. Rutina zajišťuje zasílání správných dat na ten který displej podle volby uživatele (je možné na kterémkoliv displeji zobrazit hodiny a minuty, datum, rok a den v týdnu a tyto údaje rotují po každém stisku tlačítka odpovídajícího displeje). Při podržení tlačítka se dostaneme do editace odpovídajícího displeje, která je signalizována blikáním hodin. V tomto stavu je povoleno načítání stavů tlačítek UP a DOWN. Každým stiskem těchto tlačítek je buď přičtena nebo odečtena jedna hodina k aktuálnímu času. Po opuštění editace je bliknutím displejů signalizováno uložení dat do paměti EEPROM. Uložena je nejen nová hodnota posuvu hodin u odpovídajícího displeje, ale také se uloží funkce, kterou displeje zobrazují. Po eventuelním výpadku napájení a novém načtení DCF telegramu jsou tak nejen k dispozici původně nastavené časové posuvy, ale také se zobrazí na každém displeji ta funkce, která byla před výpadkem nastavena uživatelem (např. na prvním displeji hodiny, na druhém den v týdnu, na třetím rok atd.).


Oživení
     Modul nemá žádné nastavovací prvky. Po osazení desek je zkontrolujeme na nežádoucí propoje. Nejprve přistoupíme k oživení přijímače signálu DCF. Doporučuji před započetím konstrukce přijímače zapnout hodiny od CONRAD ELECTRONIC a zjistit jejich pozici pro dobrý příjem. Pak máme zaručeno, že signál v místě je a že při oživování nebudou problémy kvůli možné nepřítomnost signálu. Je dobré ještě před spojením zdroje přijímače a modulu přijímače změřit napájecí napětí, které by mělo být asi 1,5V. Je-li vše v pořádku, připojíme na výstup přijímače za tranzistor buď logickou sondu nebo osciloskop. Měli bychom vidět impulsy (u osciloskopu s amplitudou asi 5V) o délce 100 nebo 200 milisekund, opakující se po 1 sekundě. Pokud impulsy nenajdeme, měříme přímo na přijímači DCF, na místě, kde jsme pájeli vodič pro výstup signálu. Pokud ani tam nejsou, pak buď bude závada v přijímači, nebo je pravděpodobnější že není dostupný signál. Také zkontrolujeme propojení pinu, kterým se spouští přijímač, na zem. Pokud máme funkční přijímač DCF, připojíme jej do svorkovnice CON1 podle schématu.
      Před prvním zapnutím napájení podržíme stlačené tlačítko UP, aby se načetla implicitní data. Po vypsání loga tlačítko uvolníme. To by se již měli objevit blikající pomlčky na všech displejích. Pokud se nevypíše ani logo, kontrolujeme RESET signál procesoru a obvod taktování. Také zkontrolujeme připojení signálu EA na +5V přes rezistor R9. Je-li vše v pořádku pak by po chvíli měla zhasnout červená dioda signalizující nepřítomnost zpracovatelného signálu. Po minutě příjmu by se měla rozsvítit zelená LED, signalizující, že hodiny jsou synchronizovány se signálem DCF a na displeji se zobrazí aktuální čas ve formátu hodiny a minuty, datum, rok a den v týdnu. Doporučuji před vypnutím modulu uložit data do EEPROM, aby se inicializovala a uložila se do ní první data. Příště po zapnutí již nebude třeba držet tlačítko UP, protože EEPROM již bude obsahovat uložená data.

Rozpiska součástek

 D3-D8 dioda 1N4007
 CON2 s;vorkovnice ARK550/2
 CON1 svorkovnice ARK550/3
 T1-T16 tranzistor PNP univerzální BC557C
 TL1-TL6 tlačítko DT6
 JP1 lišta lámací dvouřadá 2x12
 R1-R8 rezistor miniaturní 27R
 R10-R25 rezistor miniaturní 2k7
 R27,R28 rezistor miniaturní 330R
 R29 rezistor miniaturní 3k3
 R9 rezistor miniaturní 8k2
 R26 rezistorová síť SIP RR8x10k
 C5 tantal 10uF/16V
 Q1 krystal 12MHz/HC49U-V
 C1,C2 keramický 18pF
 C3,C4 keramický 100 nF
 C6 elektrolyt 220uF/16V
 IC3 stabilizátor 7805
 IC1 mikroprocesor AT89C51/DIL40
 IC2 paměť EEPROM AT93C46
 D1 LED5MM rudá
 D2 LED5MM zelená
 U1-U8 dvojitá číslicovka hyperred HDSP 5521

2x samořezný konektor PFL26
kabel plochý
patice 40 pin precizní
patice 8 pin precizní
krabička U-KM25B - GM electronic

Modul DCF hodin WT 100 obj. č. 641871. Dá se sehnat v prodejně CONRAD ELECTRONIC v Praze, Roháčova ulice č.40 za 406,- Kč. POZOR, pokud se budete telefonicky informovat, zda tento modul momentálně mají, můžete zjistit (jako já), že ač ve skladu v prodejně je (sdělili mi to na zásilkové službě podle jejich skladové databáze), tak v prodejně prodavači ani neví, co mají za zboží. Nenechte se odbýt!!

Na závěr se můžete podívat na stránku fotografií konstrukce hodin, popřípadě navštívit stránku, kde jsou přidány postřehy, informace a doplnění jednoho ze stavitelů zjednodušené verze hodin.


     Je zde ke stažení jak software hodin, tak kompletní bohatě okomentovaná rutina příjmu DCF pro procesor typu 8051 s implementovanými hodinami, které pracují i bez DCF signálu (musí však být prvotně tímto signálem nastaveny), mají ošetřen přestupný rok a počet dní v měsíci (30,31). Výstup rutiny je do alokovaných byte v RAM, které si můžete umístit kam je libo. Rutina počítá paritu dat, pokud chcete větší zabezpečení dat proti chybě, můžete ve svém programu např. porovnávat dva po sobě jdoucí údaje z přijímače atd.


Ke stažení jsou tyto soubory:

Velikost 7 kByte  Kompletní bohatě okomentovaná rutina příjmu DCF
 
Velikost 442 kByte Všechny fotografie hodin (i přestavba DCF)
 
Velikost 799 kByte Plošné spoje ve formátu *.jpg
 
Velikost 51 kByte Plošné spoje ve formátu EAGLE 4.01
 
Velikost 71 kByte Software hodin s vloženým zdrojovým kódem

Vytisknout stránku

Zpátky Zpátky
© DH servis 2002 -