Table of Contents Table of Contents
Previous Page  47 / 102 Next Page
Information
Show Menu
Previous Page 47 / 102 Next Page
Page Background

DIGITAL

MCU LOW POWER

47

- ELETTRONICA OGGI 464 - SETTEMBRE 2017

periferiche disponibili in alcuni microcontrollori a 8 bit della

prossima generazione (come gli MCU della linea PIC di Micro-

chip). Per esempio, i progettisti possono collegare una delle

celle logiche configurabili (CLC – Configurable Logic Cell) di

queste MCU e il relativo oscillatore NCO (Numerically Control-

led Oscillator) al timer a 16 bit al fine di estendere il periodo

da 17 secondi a 205 giorni, prima che si inneschi un interrupt

per “svegliare” l’MCU (Fig. 1). Anche se naturalmente è raro che

un’applicazione debba rimanere nello stato di “idle” per un pe-

riodo tanto lungo, si tratta di un’opzione sempre disponibile. La

soluzione più economica prevede l’uso di un oscillatore inter-

no a basso consumo (operante a 31 kHz) per la gestione del

timer. Il consumo di tale implementazione può essere ridotto

di un ulteriore 50%, fino a circa 2,3 μA, (a fronte di un costo

di poco superiore) utilizzando un quarzo esterno operante a

32kHz connesso all’oscillatore secondario (SOSC). Per il “wake

up” del microcontrollore possono essere utilizzate anche sor-

genti esterne di interrupt , come ad esempio commutatori o

sensori. Anche se alcune MCU/MPU hanno più interrupt con

vari livelli di priorità, tale funzionalità non è solitamente pre-

sente nella maggior parte delle MCU a ridotto numero di pin

presenti sul mercato. Il modulo CLC (Configurable Logic Cell)

prima menzionato può essere utilizzato non solo per creare

fonti di interrupt aggiuntive quando l’ MCU ha un solo INT di

sistema, ma anche per aggiungere logica condizionale o se-

quenziale alla routine di “wake up”, contribuendo a rendere

quest’ultima più “intelligente” senza penalizzazione alcuna in

termini di assorbimento di corrente. Nel caso il sistema richie-

da un certo numero di segnali per rappresentare uno specifico

stato, spesso il risveglio della CPU – necessario per la verifica

della condizione – era imputabile alla variazione di un segnale,

ma ciò era semplicemente dovuto al fatto che gli altri segnali

non erano ancora pervenuti. Ora è invece possibile configura-

re e abbinare le macchine a stati e le funzioni logiche dispo-

nibili nel modulo CLC, o persino in più moduli CLC, in modo

compiti ausiliari quali ad esempio

attivare o disattivare i moduli al

fine di ottimizzare l’efficienza

energetica. Tuttavia, la maggior

parte dei progetti prevede un uni-

co microcontrollore principale,

oltre a un gran numero di periferi-

che integrate per implementare le

funzionalità di sistema richieste. Di

conseguenza, il consumo di ener-

gia del microcontrollore assume

un’importanza critica. Quando

si prendono in considerazione

le prestazioni a basso consumo,

è necessario considerare il fatto

che un microcontrollore a 8 bit

può fornire risultati nettamente migliori rispetto a quelli di un

microcontrollore a 32 bit. Alcune MCU a 8 bit, ad esempio, nelle

modalità a più basso consumo assorbono una corrente di soli 20

nA, mentre nelle identiche condizioni una MCU a 32 bit assorbe

una corrente superiore di un fattore compreso tra 10 o 20 volte.

Per un microcontrollore, esistono diverse modalità di “wake up”

dalla modalità “sleep”. Una pratica comune prevede l’uso dei ti-

mer interni del microcontrollore per il “wake up” periodico del

sistema. Il timer può essere configurato per innescare (trigger)

un interrupt successivamente a una condizione di overflow. Un

timer a 16 bit con pre-scaler 1:8 gestito dall’oscillatore interno a

31 kHz a basso consumo (o da un quarzo esterno) può mantene-

re il dispositivo in modalità “sleep” per circa 17 secondi. Un’altra

possibilità consiste nell’utilizzare il Watchdog Timer (WDT) del-

l’MCU, idealmente con un tempomassimo di “idle” di 256 secondi

e un consumo, in questo caso, di circa 440 nA. Una tradizionale

MCU a 32 bit con WDT, per contro, è caratterizzata da consumi

minimi di corrente superiori di un fattore pari almeno a 3 rispetto

a quelli di una MCU a 8 bit. Si consideri ora un’applicazione che

non necessiti di “wake up” frequenti, come ad esempio il moni-

toraggio ambientale, che prevede un “risveglio” ogni quattro ore

per leggere i valori del sensore di umidità prima del ritorno nella

modalità di “sleep”. Ciò non significa necessariamente effettuare

“wake up” più frequenti a causa delle limitazioni del timer interno.

Ad esempio è possibile utilizzare un Real Time Clock (RTC) e un

quarzo in grado di eseguire un cronometraggio accurato in ter-

mini di ore, giorni, mesi e persino anni, se necessario. Dato che

spesso, per ragioni di costo, non tutti i microcontrollori offrono

RTC e quarzo integrati, è anche possibile prendere in considera-

zione un RTC stand-alone.

Periferiche indipendenti dal core

Un’altra opzione per estendere il periodo di “idle” senza dover

utilizzare alcun componente aggiuntivo o incorrere in penaliz-

zazione in termini di consumi prevede il ricorso a particolari

Fig. 1 – Le periferiche indipendenti dal core di un microcontrollore a 8 bit possono essere usate per esten-

dere il periodo di “idle” fino a 205 giorni senza ricorrere a componenti esterni aggiuntivi o incorrere in

penalizzazioni in termini di consumi