<< Előző oldal Vissza a tartalomjegyzékhez Következő oldal >>
5.2. SLEEP üzemmód
A PIC mikrovezérlők készenléti üzemmódjának gyári elnevezése a SLEEP (alvás) üzemmód. A mikrovezérlők a SLEEP utasítással helyezhetők ebbe a minimális fogyasztású állapotba.
A SLEEP üzemmód jellemzői a következők:
ˇ
minimális fogyasztás: 0,1..1μA (25°C, WDT tiltva) és 0,5..10μA (25°C, WDT engedélyezve);
ˇ
az I/O kivezetések megtartják logikai állapotukat;
ˇ
az órajelet előállító oszcillátor áramkör nem működik;
ˇ
a STATUS regiszter és bitje a SLEEP utasítás hatására "0"-ra áll be;
ˇ
a WDT (Watchdog Timer) biztonsági számláló áramkör SLEEP állapotban is működhet (,ha a konfigurációs biztosítékával engedélyezve van); a WDT számlálója és utóosztója minden SLEEP utasításkor nullázódik.
A minimális fogyasztás eléréséhez a következő feltételeknek kell teljesülniük:
ˇ
a kimenetként konfigurált I/O csatlakozók csak a szükséges legkisebb meghajtóáramot szolgáltassák a külső kapcsolódó áramkörök felé;
ˇ
a bemenetként konfigurált I/O csatlakozók vagy a test, vagy a tápfeszültség potenciálján legyenek;
ˇ
a B port felhúzóellenállások a minimális fogyasztású helyzetben legyenek, aktivizálásuk esetén az összfogyasztásuk: 50..400μA (UT = 5V), ha a kivezetés közvetlenül a testre van kapcsolva;
ˇ
a belső perifériamoduloknak a legkisebb fogyasztású állapotban kell lenniük;
ˇ
ha nincs rá szükség, a WDT működését tiltani kell.
A SLEEP üzemmódból való kilépés a következő események hatására megy végbe:
ˇ
Reset-események hatására a teljes Reset-folyamat lejátszódik és a programfutás a 0000h címtől kezdve újraindul;
ˇ
WDT időkifutás hatására a programfutás a SLEEP utasítás után következő utasítással folytatódik (,ha a WDT működése engedélyezve van);
ˇ
Megszakítások hatására (,ha azok engedélyezve vannak) ébresztés (és, ha engedélyezve van megszakításkezelés):
•
külső megszakításkérés a mikrovezérlő INT csatlakozóján;
•
egyes I/O port bitek állapotváltozására fellépő megszakítás;
•
komparátorok állapotváltozására fellépő megszakítás;
•
A/D konverzió végét jelző megszakítás;
•
számláló egységek túlcsordulásakor fellépő megszakítások;
•
kommunikációs modulok (PSP, USART, SSP) megszakításkérései;
•
CCP modulok megszakításkérései;
•
LCD modul megszakítása.
Az ébredés tényének és okának megállapítása a STATUS regiszter és bitjének (és a PCON regiszter és bitjének) vizsgálatával lehetséges.
Az újraindulás egyes eseteit és a jelzőbitek állását mutatja be a következő táblázat.
Reset típus | Jelzőbitek | |||
---|---|---|---|---|
POR (Power-on Reset) Bekapcsolási Reset |
0 | x | 1 | 1 |
BOR (Brown-out Reset) Feszültségesési Reset |
1* | 0 | 1 | 1 |
WDT (Watchdog Timer) Reset Biztonsági számláló túlcsordulás |
1* | 1* | 0 | 1 |
WDT (Watchdog Timer) ébresztés Túlcsordulás SLEEP állapotban |
1* | 1* | 0 | 0 |
Külső Reset normál működés alatt | 1* | 1* | változatlan | változatlan |
Külső Reset SLEEP állapotban | 1* | 1* | 1 | 0 |
A SLEEP utasítás végrehajtásakor a következő utasítás már beolvasódik, így ébredés után a programfutás ezzel folytatódik.
SLEEP állapotban bekövetkező engedélyezett megszakítás hatására a GIE (Global Interrupt Enable) globális megszakítás engedélyező bit állásától függően két működési eset lehetséges:
ˇ
ha GIE = "0" (megszakítások tiltva), az első (saját engedélyező bitjével engedélyezett) megszakításkérés hatására a mikrovezérlő kilép a SLEEP üzemmódból és a már előolvasott utasítással folytatja a normál működést;
ˇ
ha GIE = "1" (megszakítások engedélyezve), akkor a megszakításkérés hatására a mikrovezérlő kilép a SLEEP üzemmódból, végrehajtja a már előolvasott utasítást, majd a 0004h címről folytatja az utasításvégrehajtást. Ilyen esetben célszerű a SLEEP utasítás után egy NOP utasítást elhelyezni, amely megakadályozza, hogy a megszakításkezelő szubrutin előtt más érdemi utasítás is végrehajtódjon.
Tudomány és Technika (test@t-es-t.hu)
<< Előző oldal Vissza a tartalomjegyzékhez Vissza a lap tetejére Következő oldal >>