PICmicro Cult – Il Power Down Mode

Il 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 effettivo 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 passera' da circa 2mA (a 5 volt con clock di funzionamento a 4Mhz) a circa 2uA, 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 parleremo 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 e' 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, termine 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 eseguendo per primo l'interrupt handler e quindi riprendendo l'esecuzione dopo l'istruzione SLEEP. Perché il PICmicro venga risvegliato da un interrupt devono essere abilitati opportunamento i flag del registro INTCON.

Esempio di Power Down mode

Vediamo ora un primo semplice esempio di utilizzo del Power Down Mode e di modalità di "risveglio" del PICmicro. La modalità utilizzata è l'interrupt sul fronte di discesa applicato al pin RB0/INT utilizzando un pulsante. Il source utilizzato e' PDM.ASM.

Lo schema da realizzare è disponibile nel seguente file example4.pdf.

In pratica il LED D1 collegato alla linea RB2 lampeggerà ad indicare l'esecuzione del programma in corso. Premendo il tasto SW2 il programma eseguirà l'istruzione:

SLEEP

mettendo il PICmicro in Power Down Mode. Il LED D1 rimarrà acceso o spento in base al momento scelto per premere SW2.
Per causare l'uscita dal Power Down Mode del PICmicro, basterà premere SW1 per generare un interrupt e far riprendere l'esecuzione del programma.

Approfondisci l'argomento con la nuova tecnologia NANOWatt per realizzare progetti a basso assorbimento con i PIC

Scarica subito una copia gratis
Tags:

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend