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

DIGITAL

MCU LOW POWER

48

- ELETTRONICA OGGI 464 - SETTEMBRE 2017

da generare condizioni di “wake-up” specifiche che evitino il

verificarsi di falsi inneschi e i relativi assorbimenti di poten-

za. Il tempo di “wake-up” può rappresentare una componente

importante del tempo di esecuzione all’interno del profilo tem-

porale di un’applicazione. Mentre per l’oscillatore interno di un

microcontrollore a 8 bit esso è solitamente limitato a pochi cicli

di clock (3-5 cicli che equivalgono a tempo valore compreso

tra 200 ns e 1 us), in un’architettura a 32 bit che adotta tecni-

che di “deep sleep” per limitare le correnti di dispersione, si

può arrivare a tempi dell’ordine delle decine di microsecondi,

vanificando i tal modo la la quasi totalità dei vantaggi legati alla

maggiore rapidità di esecuzione. Sebbene sarebbe auspicabile

che tutte le attività venissero svolte in modalità “sleep”, alcuni

processi (task) devono essere svolti in modalità “attiva”, duran-

te la quale il core della MCU consuma la più elevata quantità di

potenza. In uno scenario di questo tipo possono sorgere com-

plicazioni. La figura 2 riporta una rappresentazione grafica

semplificata del consumo di corrente del sistema in funzione

del tempo. L’area sottostante la linea che indica il consumo di

corrente rappresenta la scarica totale nel tempo, espressa in

Coulomb. Se la somma di tutte le aree relative al periodo tra-

scorso in modalità “sleep” è molto maggiore rispetto a quella

relativa al periodo trascorso in modalità “attiva”, il valore della

corrente in modalità “sleep” risulterà il più critico, in quanto la

maggior parte del consumo di energia avviene proprio nella

modalità a basso consumo. Viceversa, se la somma dell’area

relativa al periodo nello stato “attivo” risulta maggiore in ma-

niera significativa, allora il valore della corrente di “sleep” e il

tempo trascorso in questo stato saranno irrilevanti. Le appli-

cazioni che prevedono l’uso di comunicazioni wireless, come

ad esempio Wi-Fi e Bluetooth LE, sono particolarmente com-

plesse da gestire in termini di consumo di energia. I progettisti

di questi sistemi devono tenere in considerazione la quantità

di dati trasmessa o ricevuta poiché ha un impatto diretto sul

consumo complessivo di corrente. I moduli wireless possono

essere usati in “Beacon Mode,” per il “wake up” periodico e la

ricerca di segnali, oppure entrare in modalità “standby” quanto

non sono in uso. In sistemi wireless di

questo tipo la velocità di elaborazione

dell’MCU è irrilevante dato che gli I/O

svolgono un ruolo determinante, ma

in ogni caso il tempo di “wake up” del-

l’MCU ha un impatto significativo sul

profilo dell’applicazione poiché il con-

sumo del circuito radio (tipicamente

10-20 mA) risulta in ultima analisi esse-

re il fattore più importante per quel che

riguarda il budget energetico dell’ap-

plicazione. I sensori analogici richie-

dono l’uso dei moduli ADC presenti a

bordo degli MCU. Solitamente, il tempo

richiesto dal convertitore A/D per il campionamento è molto

superiore rispetto al tempo di conversione. Ovviamente, mag-

giore è il tempo trascorso in modalità “attiva”, maggiore sarà il

consumo di corrente. Tuttavia esistono MCU con moduli ADC

che prevedono conversioni in modalità “sleep”, consentendo

quindi di risparmiare energia minimizzando il tempo trascor-

so in modalità “attiva”. Alcune MCU dispongono di numerose

modalità “attive” caratterizzate da consumi ridotti. Queste mo-

dalità offrono l’opportunità di ridurre la velocità del core, se

non addirittura spegnerlo, mantenendo nel contempo attivo il

clock di sistema in maniera selettiva per le periferiche on-chip.

Un concetto abbastanza diffuso si può così sintetizzare: più

elevate sono le prestazioni del core, maggiore sarà la veloci-

tà di esecuzione dei task e quindi più rapido il ritorno nella

modalità di “sleep”. Anche se in taluni casi tale affermazione è

vera, questa logica contiene un errore di fondo. A questo pro-

posito val la pena ricordare che il core consuma più energia

di qualsiasi altro modulo di un MCU. Inoltre, qualsiasi compito

che coinvolga il core deve essere eseguito sequenzialmente,

in modalità FIFO, a prescindere dalla velocità. Pertanto il core

non può essere spento fino al completamento dell’ultimo task.

Nel momento in cui un microcontrollore è in grado di eseguire

alcuni dei compiti richiesti in parallelo, utilizzando periferiche

integrate che possono operare indipendentemente dal core, la

velocità del core diventa irrilevante mentre il consumo com-

plessivo di potenza è sensibilmente ridotto. Periferiche di que-

sto tipo sono completamente operative anche quando il core

della MCU è in modalità “sleep”. In definitiva, il progetto di ap-

plicazioni alimentate a batteria è divenuto un compito molto

più complesso a causa dell’aumento delle loro funzionalità. Al

fine di ottimizzare l’efficienza nell’uso delle batterie, i progetti-

sti dovrebbero analizzare e comprendere “in toto” il profilo di

consumo di corrente di ognuno dei componenti nelle diverse

modalità di funzionamento. Grazie al set di Core Independent

Peripheral (CIP) integrate nei più recenti microcontrollori a 8

bit di Microchip i progettisti possono liberare la loro creatività

senza penalizzare le prestazioni.

Fig. 2 – Esempio di rappresentazione grafica del consumo di corrente di un microcontrollore

in funzione del tempo