Il Power Down ModeData di pubblicazione: 17-10-2003 | Versione Italiana | (No English Version) Parole chiave: - PIC - |
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 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 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 � 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:
- Reset del PICmicro mettendo a 0 il pin MCLR (pin 4)
- Timeout del timer del Watchdog (se abilitato)
- 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 � 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.
Segnala questo articolo:
Parole chiave: - PIC -
|