V článku Podpůrné obvody v mikroprocesorové technice – 1.díl jsme zmínili
- resety (Microprocessor-reset ICs),
- obvody pro záložní baterie (Battery-backup circuits) a
- dohled nad baterií (Battery monitors).
Dnes budeme pokračovat dalšími prvky, konkrétně
- hlídacími časovači (Watchdog timers),
- řadiči tlačítek s velkou prodlevou (Long-delay pushbutton controllers) a také
- podporou pro zap / vyp jedním tlačítkem (Pushbutton on/off controllers).
Hlídací časovače (Watchdog timers)
K čemu je to dobré?
- Externí watchdog timer zvyšuje spolehlivost celého systému, protože dokáže automaticky resetovat mikroprocesor v případě, že program zůstane někde viset (hang – viset, viz také ve smyslu oběsit nebo ukřižovat).
Spousta mikroprocesorů obsahuje již z výroby svůj vlastní watchdog timer na pozici levného řešení, zajišťujícího vykonávání programu v rámci pevně stanovených hranic a omezení. Nic proti, ale jakmile bude jednou watchdog napájen stejně jako jeho procesor z jednoho zdroje napětí i hodinového kmitočtu, může být často postižen stejnými přechodnými problémy. Taková řešení budou rovněž citlivá na softwarové noční můry typu „splašeného kódu“ (Runaway Code), které mohou být příčinou vyřazení vestavěného časovače z činnosti.
Vývojáři by proto měli sáhnout po vnějších hlídacích časovačích, kterými procesoru zajistí náležité vstupy v každém časovém okamžiku. Maxim nabízí ucelenou řadu watchdog timerů s
- továrně přednastavenými či
- uživatelsky volitelnými napěťovými hladinami pro reset,
- volitelnými možnostmi pro timeout a
- různými konfiguracemi výstupu.
Ještě čerstvé integrované obvody MAX16056– MAX16059 (popis na stránkách výrobce např. zde) spojují
- možnost resetovat mikroprocesor a také
- velikostí připojené kapacity definovat parametry watchdog timeru
- při zachování 125 nA odběru z napájecího zdroje.
A tak dává zabrat napájecím zdrojům konkurence...
Watchdog jako nastavitelný oscilátor (ve srovnání s 555)
Obvody MAX16056–MAX16059 lze rovněž využít jako nastavitelné oscilátory, které navíc vyniknou v množství spotřebované energie, protože ke své činnosti, ve srovnání s integrovanými oscilátory, vyžadují skutečně málo. Připojme tedy WDI na zem a watchdog bude trvale spínat, vytvářejíce přitom na svém výstupu žádané impulsy, jejichž časové průběhy lze uživatelsky definovat dvěma připojenými kapacitami. A teď to srovnání:
- Vytvoříme – li podobný obvod na základě jinak nedotknutelného časovače 555, zde dokonce v provedení CMOS 555, budeme z baterie odčerpávat přibližně 50 μA. Není to moc, ale...
- Typický článek CR2016 v mincovém provedení má kapacitu nějakých 80 mAh, což v tomto zapojení vystačí přibližně na 60 dní života. Srovnání je pak více než výmluvné:
- Zapojení s obvodem MAX16056 vydrží s přehledem generovat více než 10 let (jinak také skladovací doba dané baterie).
Použijte watchdog jako nastavitelný oscilátor a prodlužte tak životnost napájecího článku v modelovém příkladu ze 60 dní na více než 10 let!
- Watchdogy na stránkách Maximu: www.maxim-ic.com/Watchdogs.
Řadiče tlačítek s velkou prodlevou (Long-delay pushbutton controllers)
K čemu je to dobré?
- Tyto integrované obvody umožňují koncovému uživateli provádět tvrdé resety stiskem příslušného tlačítka.
Přenosná, ale i jiná spotřební elektronika s funkcí programového vypínání využívá k řízení přístupu napájecího napětí obvykle hlavní mikroprocesor. Pokud vše pracuje jak má, nejsou námitky. Horší to však bude, zatuhne – li mikroprocesor v důsledku softwarové chyby programátora. Právě tehdy oceníme možnost tvrdého resetu (jinak hojně využívanou např. v počítačových systémech, běžících pod nejmenovaným, ale jinak dostatečně rozšířeným operačním systémem - pozn. překl.). Ale zpátky k věci. Baterie nemusí být v mnoha případech uživatelsky vůbec přístupná a proto se do krytu přístroje vrtá malá dírka, skýtající přístup k internímu, opakovaně použitelnému resetovacímu tlačítku. Za ním už pak čeká jen některý z vybraných obvodů od Maximu.
MR vstupy s dlouhou prodlevou v jednom integrovaném provedení od Maximu
Integrované obvody MAX6443–MAX6452 (popis např. zde) vykazují velké zpoždění, aby uživatel musel pro spuštění tvrdého resetu držet jedno nebo dvě tlačítka déle než 6 vteřin.
Zap / vyp jedním tlačítkem (Pushbutton on/off controllers)
K čemu je to dobré?
- S pomocí tohoto řadiče nahradíme běžné, výkonové mechanické spínače levnějšími vratnými tlačítky.
Místo toho, abychom pro funkci elegantního vypínání využili stávající mikroprocesory či mikrokontroléry, zapojíme do akce tlačítkový kontrolér s funkcí zap/vyp a označením MAX16054 (popis na stránkách výrobce např. zde). Navíc ještě ušetříme energii a zvýšíme spolehlivost celého řízení. Prostým stiskem tlačítka provádíme přímou změnu výstupního stavu pinů OUT a /OUT (negovaný), které mohou řídit např. sériově zapojený spínací MOSFET nebo povolovací vstup lineárního stabilizátoru, zajišťujícího přísun energie zbylým obvodům.
Zkrátka nepříjde ani použitý mikroprocesor. Vysláním impulsu na připojený vývod CLEAR si totiž zaručí vlastní odpojení (soft power-down). Integrovaný obvod MAX16054 vydrží ESD namáhání ±15 kV (model lidského těla – Human Body Model), přičemž jeho správnou činnost neohrozí ani všudypřítomné zákmity použitých tlačítek (funkce Debounce). Plná specifikace v automobilovém teplotním rozsahu -40 °C až +125 °C celou strukturu vhodně předurčuje do mnoha průmyslových aplikací.
Integrovaný obvod MAX16054 během zapínání a vypínání nerozhází ani zákmity připojených tlačítek – jednoduše je ignoruje.
- Řešení pro tlačítka na stránkách výrobce: www.maxim-ic.com/Pushbuttons.
Pokračování příště.
Použitá literatura:
Download a odkazy:
- Domovská stránka Maxim: http://www.maxim-ic.com/
- Distributor pro ČR: http://www.mespraha.cz/
Komentáře
Efektivita externeho WDG
"ale jakmile bude jednou watchdog napájen stejně jako jeho procesor z jednoho zdroje napětí i hodinového kmitočtu, může být často postižen stejnými přechodnými problémy. Taková řešení budou rovněž citlivá na softwarové noční můry typu „splašeného kódu“ (Runaway Code),"
Aj externy WDG je napajany rovnako ako procesor - inak by predsa nevedel bezpecne realizovat reset od poklesu Ucc. Interne WDG v procesoroch maju samostatny zdroj hodin, tak ako aj externy WDG, takze problemy prechodovych javov su identicke,
No a co sa splaseneho kodu tyka, tym je uplne rovnako postihnuty aj externy WDG.
Prave vyhoda internych WDT/WDG je to, ze su casto dva a aspon jeden ma okienkovu funkciu. To znamena, ze aj ked pride k obzivovaniu castejsie ako je nastavene, pride k resetu procesora. Taky WDG maju napriklad procesory STM32F1xxx od ST s jadrom Cortex-M3, ktore su cenovo viac ako pristupne (od 1.8EUR pri 1ks) ale nie len oni. Takze tateko ficury nemaju iba nejake "drahe" procesory. Skor externy WDG komplikuje a predrazuje aplikaciu.
Interní taky dobrý
I obyčejná Atmega8 ma interní WDT s nezávislým RC oscilátorem a pro detekci poklesu napětí má BOD na 2,7 nebo 4,5V. Slašený kód je řešen složitějším procesem nastevení WDT.
Nebo má někdo obecně s nezávislostí interních WDT špatnou zkušenost, jako že třeba ve skutečnosti nezávislí až tak není?