<< Előző oldal Vissza a tartalomjegyzékhez Következő oldal >>
5.1. WDT (Watchdog Timer)
A közepes teljesítményű PIC mikrovezérlőkbe egy úgynevezett WDT (Watchdog Timer) biztonsági időzítő áramkör van beépítve, amely az üzembiztos működést hivatott szavatolni instabil üzemi körülmények esetén.
A WDT egy komplett belső szabadonfutó RC oszcillátor és számláló, amelynek időkifutása 15..30ms (25°C;2..6V), illetve 7..55ms (-40..+125°C;2..6V). (A névleges időkifutás 18ms.) A külön RC oszcillátor eredményeképpen a WDT SLEEP üzemmódban is működhet, amikor is a mikrovezérlő órajelét biztosító oszcillátor nem üzemel.
A WDT időkifutása a mikrovezérlőben egy Reset-folyamatot indít meg. A felhasználói programban el kell helyezni egy vagy (szükség szerint) több CLRWDT utasítást, amely így még az időkifutás előtt nullázza a WDT számlálóját. Normál programfutás esetén így a WDT nem generál Reset-folyamatot. Viszont programleállás ("lefagyás") esetén a WDT nullázása elmarad, így egy Reset-folyamattal újraindul a működés.
A WDT időkifutása:
ˇ
normál működés alatt Reset-folyamatot indít el;
ˇ
SLEEP üzemmódban ébresztést generál és a normál működés folytatódik.
A következő ábrán a WDT környezetének blokkvázlata látható.
A WDT működése a mikrovezérlő konfigurációs szó WDTE bitjének "0"-ra állításával tiltható, ha az adott alkalmazás nem igényli ezt a biztonsági intézkedést.
A WDT kifutási ideje növelhető, ha a Timer0 beállítható osztási arányú előosztója a WDT-hez van alkalmazva utóosztóként. Az előosztó hozzárendelése és az osztási arány beállítása az OPTION vezérlő regiszter (az újabb mikrovezérlőknél OPTION_REG regiszter) PSA, illetve PS2..PS0 bitjeinek megfelelő beállításával végezhető. Az előosztó hozzárendelése és osztási arányának beállítása programfutás közben is bármikor megváltoztatható.
Az előosztó osztási arányának 1:128-ra való beállításával a WDT kifutási idő akár 2..4s-ra (25°C;2..6V) is megnövelhető.
A CLRWDT és SLEEP utasítások nullázzák a WDT-t és a hozzárendelt utóosztót. (Az elő-, illetve utóosztó tulajdonképpen egy bitenként megcsapolt, 8-bites bináris számláló áramkör. Nullázása a 8db belső tároló kimenetének nullázását jelenti, a beállított osztási arány nem változik.)
Az, hogy a mikrovezérlő WDT Reset-ből indult-e újra, eldönthető a STATUS regiszter (Time-Out) bitjének vizsgálatával.
Ha az előosztó a WDT-hez van rendelve, az osztási arány átállítása előtt végre kell hajtani egy CLRWDT utasítást annak kizárására, hogy az átállítás alatt időkifutás történjen.
Az előosztó hozzárendelésének megváltoztatására ajánlott programrészletek:
ˇ
a Timer0-tól a WDT-hez:
... ;ha a Timer0 előosztás 1:1 volt, akkor a következő részt végre kell hajtani: bsf STATUS,RP0 ;az 1. adatmemórialap kiválasztása movlw B'xx0x0xxx ;1:1-től eltérő osztás beállítása a Timer0-hoz movwf OPTION_REG ; bcf STATUS,RP0 ;a 0. adatmemórialap kiválasztása clrf TMR0 ;Timer0 és az előosztó nullázása bsf STATUS,RP0 ;az 1. adatmemórialap kiválasztása movlw B'xxxx1xxx' ;WDT-hez rendelés, osztás módosítás nélkül movwf OPTION_REG ; clrwdt ;WDT és utóosztó nullázása movlw B'xxxx1xxx' ;az utóosztó oszási arányának beállítása movwf OPTION_REG ; bcf STATUS,RP0 ;a 0. adatmemórialap kiválasztása ...
ˇ a WDT-től a Timer0-hoz:
... clrwdt ;a WDT nullázása bsf STATUS,RP0 ;az 1. adatmemórialap kiválasztása movlw B'xxxx0xxx' ;az előosztó Timer0-hoz rendelése, új osztás movwf OPTION_REG ; bcf STATUS,RP0 ;a 0. adatmemórialap kiválasztása ...
A WDT időkifutásának hőmérséklet- és tápfeszültség-függését mutatja be a következő közelítő ábra.
A WDT időkifutása kis mértékben eszközfüggő, a pontosabb értékek az adott eszköz adatlapjában találhatók meg.
A WDT áramkört mutatja be a Microchip AN720 jelű dokumentuma.
Tudomány és Technika (test@t-es-t.hu)
<< Előző oldal Vissza a tartalomjegyzékhez Vissza a lap tetejére Következő oldal >>