Microcontrollori a basso consumo

Sul blog di Elettronica Open Source puoi leggere non solo tutti gli articoli Premium riservati agli abbonati Platinum 2.0 e inseriti nella rivista Firmware 2.0 (insieme ad articoli tecnici, progetti, approfondimenti, news, tutorial a puntate e molto altro) ma anche gli articoli della Rubrica Firmware Reload. In questa Rubrica del blog abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi evergreen per Professionisti, Makers, Hobbisti e Appassionati di elettronica. Molti produttori di microcontrollori offrono dispositivi che vantano consumi bassissimi, se confrontati con le caratteristiche di componenti progettati anche solo pochi anni fa. Ottenere le prestazioni richieste richiede però il rispetto di qualche cautela.

La riduzione dei consumi di corrente elettrica fa parte dell’approccio moderno ad uno stile di vita sostenibile, tale cioè da ridurre al minimo l'impatto ambientale delle attività umane e di privilegiare l’uso di risorse rinnovabili anziché risorse a perdere. Contribuiscono a questo atteggiamento l’attenzione al degrado dell’ambiente naturale ed anche meno nobili ma robusti argomenti economici. Una delle vie per rilanciare i consumi e creare nuove possibilità di crescita economica identificate per uscire dalla crisi economica del 2008, è stata la creazione di prodotti e servizi a basso impatto ambientale ed anzi in grado di ottimizzare al massimo i consumi di energia e materie prime. Intrecciata a questa tendenza, la nascita dell’Internet delle Cose (Internet of Things, IoT nel seguito) esaspera la necessità di ridurre a livelli microscopici il consumo di energia elettrica delle apparecchiature componenti la rete. L'IoT prevede infatti un impiego estremamente pervasivo di apparecchiature auto alimentate, in particolare sensori, in grado di trarre la loro alimentazione dall’ambiente stesso o da piccole batterie, accanto ad applicazioni alimentate più tradizionalmente dalla rete elettrica. Per sensori ed affini, non si prevede sostanzialmente manutenzione, quindi neppure la sostituzione della batteria durante la vita operativa del dispositivo. Si vedono quindi applicazioni progettate per lavorare oltre 10 anni con una singola batteria a bottone. Questa stessa fonte di alimentazione può eventualmente lavorare come sorgente di back-up per sistemi di alimentazione miniaturizzati basati su celle solari o micro generatori termici. La maggior attenzione ai consumi è anche la filosofia in cui si inseriscono la sostituzione delle lampadine a incandescenza con apparati illuminanti ad alta efficienza, basso consumo o LED, la maggiore attenzione al consumo nella progettazione di elettrodomestici ed apparecchiature di intrattenimento, la considerazione degli edifici commerciali e residenziali come sistemi dei quali ottimizzare l’efficienza energetica in ogni sua componente.

Figura 1: Basta davvero poco per alimentare un dispositivo “Low Energy”!

 

Figura 2: Una semplice pila a bottone può garantire lunghi anni di funzionamento con un dispositivo “Low Power”

Tutte queste richieste trovano evidentemente pronta l’industria elettronica e microelettronica, in grado di fornire il particolare attraverso microcontrollori, intelligenza distribuita necessaria per le ottimizzazioni citate. Da tutti questi piccoli computer sparsi per le nostre case, i nostri uffici, le nostre auto e le nostre strade ci si aspetta un consumo minimo e limitato all’effettiva necessità, senza assorbimenti di corrente quando le funzioni primarie dell’apparecchio non siano strettamente necessarie. Giustamente si cita spesso ad esempio il termostato di un impianto di riscaldamento. Visti gli ampi volumi e l’inerzia termica associata, è evidentemente inutile che il microcontrollore misuri la temperatura ogni millisecondo, cosa che sarebbe perfettamente in grado di fare. Intervalli di misura dell’ordine di qualche minuto sono più che sufficienti e non è per nulla necessario che il termostato rimanga alimentato pienamente nell’intervallo tra una misura e l'altra, una volta che sia garantito il mantenimento dello stato dell’uscita di comando per il generatore termico. Visto l’enorme numero di dispositivi previsti nei prossimi anni, anche apparentemente piccoli guadagni ottenuti nel consumo della singola unità comportano significativi risparmi a livello complessivo. Nel caso di apparecchiature che basano la loro alimentazione su tecnologie Energy Harvesting, consumi bassissimi sono un requisito fondamentale per il successo del progetto, vedi Riferimento 1. Non va inoltre trascurato l’effetto promozionale di tali prestazioni, in un contesto che privilegia un atteggiamento più parco ed attento rispetto ai periodi pre-crisi.

Molti fornitori di semiconduttori hanno quindi sviluppato famiglie di microcontrollori particolarmente attente a tutti gli aspetti del consumo, da quelli più ovvi come la corrente consumata per MHz di clock, a quelli meno evidenti come la potenza necessaria per riprendere l’esecuzione di un programma precedentemente sospeso. Grande attenzione è posta anche alla potenza media assorbita, importante per determinare la durata della batteria, non solamente alla potenza di picco. Sostanzialmente tutti questi dispositivi offrono supporto per sofisticati meccanismi di stand-by e sleep-mode, che permettono un’ordinata sospensione e ripresa del programma di controllo in esecuzione, mantenendo lo stato con consumi irrisori. La riduzione di potenza dissipata comporta anche una temperatura operativa inferiore, con benefici sull’affidabilità e durata delle apparecchiature, essendo noto come la temperatura elevata sia uno tra i principali fattori che determinano la riduzione della vita operativa delle apparecchiature elettroniche. Vediamo qualche caratteristica propria dei microcontrollori low-power. Sappiamo che la tecnologia più diffusa per la realizzazione di circuiti integrati, CMOS, sostanzialmente consuma potenza elettrica solamente durante le transizioni ed ha consumi irrisori in condizioni statiche. Questa caratteristica intrinseca non è più rispettata per nodi tecnologici inferiori ai 100 nm ma i produttori prendono precauzioni a livello di processo per ridurre le correnti di leakage statiche, dovute al non più perfetto isolamento delle gate dei transistori MOS. Esistono inoltre tecniche di progettazione di una rete digitale, anche sincrona quale è un microcontrollore, che consentono a parità di funzione logica di rendere minime le transizioni tra stati diversi e quindi il consumo dinamico. In buona parte queste tecniche si basano sull’ottimizzazione della distribuzione del clock, dimensionando opportunamente i buffer interni usati nel cosiddetto clock-tree, il percorso ad albero che porta il clock dalla sorgente principale, tipicamente un PLL o direttamente un oscillatore, a tutti i flip flop del circuito sincrono. Un’altra tecnica molto utile è il Clock-gating ovvero la sospensione temporanea del clock a moduli che non siano attivi. Questa tecnica può essere ulteriormente sofisticata aumentandone la granularità a livello di rete logica, evitando di propagare il clock quando non ci sia stata variazione nello stato logico. In sostanza, si evita di confermare lo stato di uscita di Flip-flop quando il dato da campionare non cambia, evitando transizioni non necessarie ed il consumo ad esse associato. L’applicazione o meno di queste tecniche di progettazione porta notevoli differenze di consumo nell’implementazione della stessa rete logica di partenza. Questo spiega perché dispositivi basati ad esempio sulla stessa CPU ARM Cortex-M, possono offrire consumi notevolmente diversi.

Un altro accorgimento per ridurre il consumo consiste nella riduzione della tensione di alimentazione interna, in qualche caso realizzata in modo dinamico in funzione delle periferiche che devono essere servite. STM32L0 ad esempio è in grado di commutare la tensione interna tra 1,2V ed 1,8V. La tensione elevata è ad esempio selezionata quando il dispositivo potrebbe gestire una comunicazione USB con un PC. Alcuni costruttori vantano così un consumo di soli 150 microAmpere per MHz di consumo nello stato attivo, vedi Riferimento 2. Passando invece a precauzioni sotto il controllo diretto del progettista di applicazioni, un primo accorgimento per ridurre i consumi è evidentemente minimizzare la frequenza di clock operativa. Ritornando all’esempio del termostato, in generale non c’è alcuna ragione per cui il suo microprocessore lavori a decine di MHz, clock dell’ordine di pochi MHz se non addirittura decine di kHz possono essere più che soddisfacenti. Un’altra tecnica già brevemente richiamata, a disposizione del progettista è l’uso degli sleep mode, in cui mandare il microcontrollore al termine della task attiva, ad esempio misura della temperatura, confronto con la soglia, attivazione dell’attuatore, restando nell’esempio del termostato. Questi modi operativi a consumo ridotto non sono in realtà una novità, i dispositivi più recenti offrono però maggiori livelli di sofisticazione. Entrata e uscita dallo sleep mode possono richiedere solo un paio di microsecondi, questo perché viene preservato il contenuto dei registri e della memoria RAM. Questi microcontrollori possono quindi essere rapidamente risvegliati in risposta ad eventi esterni. A titolo di esempio dei consumi di cui stiamo parlando EFM 32 vanta 20 nanoAmpere a 3V nel modo shut-down e 900 nanoAmpere nel modo deep-sleep che mantiene il contenuto di memoria e varie periferiche attive. In dispositivi di ultima generazione, inoltre, al contrario di quanto succedeva alle precedenti, alcune periferiche chiave rimangono in funzione anche mentre la CPU è in modalità sleep.

Periferiche di comunicazione possono riconoscere il proprio indirizzo ed accettare messaggi in ingresso risvegliando la CPU solo dopo aver ricevuto l’intero pacchetto. Alcuni chip offrono funzioni di networking interne tali per cui alcune periferiche comunicano direttamente tra loro riducendo la necessità di intervento diretto della CPU. Al verificarsi di un evento di Trigger altre periferiche possono essere abilitate oppure la CPU risvegliata. Convertitori analogico digitale possono monitorare autonomamente segnali in tensione o le uscite di sensori resistivi, capacitivi o induttivi, facendo trovare aggiornati i dati necessari all’elaborazione al successivo risveglio della CPU. Queste tecniche consentono di evitare il classico risveglio periodico incondizionato sotto il controllo di un timer. Una serie di tool software quali quelli offerti da Silicon Labs, Energy Aware Designer ed Energy Aware Profiler consentono al programmatore di conoscere la corrente consumata in funzione del codice in esecuzione, consentendo ulteriori ottimizzazioni della propria applicazione eliminando hot spot nell’esecuzione del programma. Garantire performance di bassissimo consumo e manutenzione sostanzialmente nulla, richiede un’accurata progettazione di cui la scelta del microcontrollore è solo la prima fase. Tutti i componenti utilizzati nello schema elettrico vanno ispezionati alla luce del loro contributo al consumo. Le correnti di leakage dei condensatori sono i primi candidati a rovinare le performance previste. Condensatori ad alte perdite quali elettrolitici in alluminio, saranno quindi da eliminare preferendo altre tecnologie a bassa perdita. Anche condensatori al tantalio possono presentare corrente di perdita dell’ordine di parecchi microAmpere, indirizzandoci quindi verso l’uso di condensatori ceramici. La scelta migliore si può orientare verso condensatori con dielettrico X7R, quali frequentemente usati in automotive. Tuttavia, le caratteristiche di leakage devono essere accuratamente verificate per gli specifici componenti scelti, non accontentandosi di generiche dichiarazioni “low leakage”.

Figura 3: Famiglia di microcontrollori Low Power EFM32

L’uso dei resistori di pull-up e pull-down deve essere fatto con cautela per evitare di trasformarli in fonti di consumo. Un resistore da 10 kOhm alla tensione di 3V consuma 300 nanoAmpere, come si vede una corrente dell’ordine di grandezza del microcontrollore in deep-sleep mode. Un altro fattore di limitazione è evidentemente la sorgente di alimentazione di back-up. Quando questa è costituita da una batteria a bottone l’autonomia massima dell’applicazione sarà determinata dalla vita operativa della batteria stessa, garantita dalla maggior parte dei costruttori per 10 anni. Occorre tenere anche conto della temperatura operativa che determina l’effettiva corrente assorbita dei semiconduttori e della curva di scarica delle batterie per tale valore di corrente. È opportuno che il circuito stampato sia protetto da solder mask che previene correnti di leakage dovute a contaminazioni superficiali ed umidità. Estesi test sono inoltre richiesti in tutte le modalità operative, simulando condizioni di vita della batteria e tenendo conto che la resistenza all’interno della stessa aumenta rispetto alla stessa batteria nuova. Un’estesa e veramente dettagliata discussione è contenuta in Riferimento 4, con particolare enfasi sulle prestazioni delle batterie a bottone CR2032.

Articolo della rivista cartacea Firmware Anno 2015 - Numero 112

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend