Vissza a főoldalra    Vissza a PIC főoldalra

<< 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.

5.2-1. Táblázat
Reset típus Jelzőbitek
POR bit BOR bit TO bit PD bit
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
x - ismeretlen érték;
* - ezekre a jelzőbitekre az adott Reset-folyamatok nincsenek hatással. POR vagy BOR után szoftveresen kell be-, illetve visszaállítani az "1" értéket, hogy a többi jelzőbit kiértékelhető legyen.
A BOR áramkör és így a jelzőbitje sincs minden mikrovezérlőbe beépítve.

      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 >>

Vissza a főoldalra    Vissza a PIC főoldalra