Lezione 6

Step 1/2

Passo precedenteInizio lezionePasso successivo

Funzionamento del Power Down Mode

 

Il Power Down Mode o Sleep Mode è un particolare stato di funzionamento del PICmicro utilizzato per ridurre il consumo di corrente nei momenti in cui il PICmicro non è utilizzato perchè in attesa di un evento esterno.

Se prendiamo come esempio un telecomando per apricancello o per TV vediamo che per la maggior parte del tempo il PICmicro rimane in attesa che qualcuno prema un tasto. Appena premuto il PICmicro effettua una breve trasmissione e si rimette di nuovo in attesa della pressione del prossimo tasto.

Il tempo di utilizzo effettuvo della CPU del PICmicro è quindi limitato ai pochi millisecondi necessari per effettuare la trasmissione mentre per diverse ore non è richiesta nessuna elaborazione particolare.

Per evitare di consumare inutilmente la limitata energia dalla batteria è possibile spegnere buona parte dei circuiti di funzionamento del PICmicro e riaccenderli solo in corrispondenza di un qualche evento esterno.

Vediamo come.

L'istruzione SLEEP

L'istruzione SLEEP viene utilizzate per mettere il PIC in Power Down Mode e ridurre di conseguenza la corrente assorbita che passerà da circa 2mA (a 5 volt  con clock di funzionamento a 4Mhz) a circa 2µA, ovvero 1000 volte di meno !

Per entrare in Power Down Mode basta inserire questa istruzione in un punto qualsiasi del nostro programma:

SLEEP

Qualsiasi istruzione presente dopo la SLEEP non verrà eseguita dal PICmicro che terminerà in questo punto la sua esecuzione, spegnerà tutti i circuiti interni, tranne quelli necessari a mantenere lo stato delle porte di I/O (stato logico alto, basso o alta impedenza) ed a rilevare le condizioni di "risveglio" di cui perleremo di seguito.

Per ridurre il consumo di corrente in questo stato, non devono esserci ovviamente circuiti collegati alle linee di uscita del PIC che consumino corrente. O meglio questi circuiti devono essere progettati in modo da limitare il loro assorbimento nelle condizioni di Power Down. Un altro accorgimento raccomandato dalla Microchip è quello di collegare al positivo (Vdd) o al negativo (Vss) di alimentazione tutte le linee in alta impedenza non utilizzate compresa la linea RA4/T0CKI (pin 3).

Il "risveglio" del PICmicro

Per risvegliare il PICmicro dal suo sonno possono essere utilizzate diverse tecniche:

  1. Reset del PICmicro mettendo a 0 il pin MCLR (pin 4)
  2. Timeout del timer del Watchdog (se abilitato)
  3. Verificarsi di una situazione di interrupt (interrupt dal pin RB0/INT, cambio di stato sulla porta B,  termite delle operazioni di scrittura su EEPROM)

Nei casi 1 e 2 il PICmicro viene resettato e l'esecuzione ripresa dalla locazione 0. Nel caso 3 il PICmicro si comporta come nella normale gestione di un interrupt (vedi lezione 5) eseguendo per primo l'interrupt handler e quindi riprendendo l'esecuzione dopo l'istruzione SLEEP. Perché il PICmicro venga rispegliato da un interrupt devono essere abilitati opportunamento i flag del registro INTCON.

I bit TO e PD del registro STATUS possono essere utilizzati al rispeglio per determinare se la causa del risveglio è stata la semplice accensione del PICmicro,  il reset oppure l'arrivo di un interrupt.

 
Home page

PICPOINT, SXPOINT and ELETTROSHOP (C) 1997/98 by Andrea Galizia
For comments on this web site, write to webmaster@picpoint.com
Web design by Tiziano Galizia

Pic by example (c) 1997/98 by Sergio Tanzilli & Tiziano Galizia