Il bassissimo consumo per i microcontrollori è la caratteristica più importante per essere impiegati con successo nelle applicazioni embedded di ultima generazione. Le esigenze dei sistemi embedded di ultima generazione in termini di consumo di potenza sono ormai estreme. Si tratta di consumi estremamente bassi, tanto da far durare una batteria fino a 15 anche 20 anni. Per ottenere simili prestazioni in termini di consumo di potenza, sono state messe in atte strategie di power saving molto sofisticate, scendendo a valori di pochi micro Amper per MHz in condizioni di running e pochi nano Amper in condizioni di sleep. Il basso consumo è ormai un obiettivo obbligato per i produttori di microcontrollori in quanto da una parte devono soddisfare le richieste sempre più stringenti degli sviluppatori in termini di consumo di potenza dei sistemi, dall’altra devono essere competitivi nei confronti degli altri produttori di microcontrollori. Così il low-power non è sufficiente e il nuovo imperativo è ultra low- power. Diverse sono le strategie che i vari costruttori di micro stanno adottando per ottenere risultati effettivi in termini di ultra low-power per i loro microcontrollori. Una parte di questi si focalizza soprattutto sul minimizzare il consumo effettivo del microcontrollore e delle sue periferiche, altri si concentrano sulla possibilità di recuperare energia dall’esterno e quindi rendere il dispositivo stesso autonomo rispetto ai requisiti di potenza. Nelle applicazioni ultra low-power il consumo di potenza del microcontrollore viene misurato sulla base del tempo ripartito tra modalità attiva e modalità sleep. Il consumo totale di energia è un bilancio tra queste due e fasi di funzionamento (Energia = Potenza x Tempo). Ciò significa che l’effettivo consumo di potenza da parte dell’applicazione dipende da numerosi fattori, tra cui le strategie di power saving implementate nel microcontrollore e la natura del codice che viene eseguito dal microcontrollore stesso, sia utente che di sistema. Non basta quindi che il microcontrollore disponga di una specifica di ultra low-power che consente di portare i consumi di potenza in sleep mode a valori quasi nulli (ovvero inferiori a quelli di scarica naturale delle batterie). Se per eseguire operazioni molto semplici come ricevere un dato (anche un singolo byte) è necessario uscire dalla modalità sleep ed entrare nella modalità full run della Cpu, i vantaggi dell’ultra low-power in sleep mode vengono senza dubbio indeboliti, soprattutto se la Cpu non è dotata di tecnologia ultra low-power quando esegue il codice. A questo proposito, una delle strategie di maggiore successo nella implementazione della tecnologia ultra low-power è quella di dotare le periferiche e i moduli esterni alla Cpu di funzionalità che le rendono autonome dalla Cpu stessa, in modo che possono operare autonomamente senza attivare la Cpu e i suoi ben più elevati livelli di consumo di potenza. Le periferiche possono eseguire operazioni avanzate in sleep mode grazie a interconnessioni intelligenti tra esse e la memoria. Ovviamente è necessario che siano implementate memorie Ram capaci di ritenere i dati con un basso leakage. Un’altra importante condizione per un uso efficiente delle strategie di ultra low-power consumption è quella di poter eseguire il wake- up ultra veloce. Comunque, in very deep sleep model, il dispositivo può essere messo in condizioni di consumo quasi nullo (dell’ordine dei nano Ampere), ovviamente bloccando il clock e non mantenendo i dati in Ram.
EnergyLite con STMicroelectronics
STMicroelectronics ha sviluppato una tecnologia a bassissimo consumo sia per il micro a 8 bit STM8L che per quello a 32 bit STM32L (basato sul Cortex M a 32 bit). Tale tecnologia, denominata EnergyLite, combina il processo ultra-low-leakage a 130 nanometri con la tecnologia di memorizzazione non volatile a bassissimo consumo, ottenendo una corrente dinamica di solo 150 microampere per MHz. I dispositivi EnergyLite implementano un regolatore di tensione capace di mantenere bassa la corrente operativa a basso livello di alimentazione, una premessa importante per ottimizzare il consumo globale di energia. Questa riduzione di energia non implica la penalizzazione delle prestazioni in quanto le prestazioni piene della Cpu vengono mantenute fino alla massima frequenza operativa a qualsiasi livello di alimentazione da 1.65 V a 3.6 V. Inoltre, le periferiche analogiche integrate hanno la piena funzionalità a valori di alimentazione fino a 1.8 volt. La piattaforma implementa anche le modalità multiple di gestione della potenza, inclusa la modalità a 5.1 microampere, (Low-Power Run mode), a 3.0 microampere (Low-Power Wait mode), a 1.2µA (Active Halt con Rtc completo) e a 350 nanoampere (Halt mode). Il dispositivo può svegliarsi dallo stato di Halt in solo 4 microsecondi, consentendo in tal modo di attivare la modalità di basso consumo in maniera frequente.
Extreme Low-power di Microchip
Microchip ha messo in campo la tecnologia di ultra low-power consumption nanoWatt XLP, capace di ridurre il consumo di potenza a meno di 20 nA in condizioni di sleep e 50 microampere per MHz in condizioni di run. Simili condizioni di consumo ultraridotto sono applicate anche alle periferiche, per esempio il real-time clock/calendario che consuma solo 470 nA e il watch dog timer che consuma solo 220 nA. I prodotti con la tecnologia nanoWatt XLP dispongono di una circuiteria di supervisione specializzata per le applicazioni che devono essere alimentate a batteria: la circuiteria di Reset Low power Brown-out che viene utilizzata per proteggere le applicazioni dalle cadute di tensione o dalle variazioni di questa, con un consumo di appena 45 nA; il Real-time clock/calendar che opera indipendentemente e immune o all’azione di reset con un consumo di 470 nA, e il Watch Dog Timer che consente di proteggere il dispositivo dalle situazioni di malfunzionamento con un consumo di 300 nA. Tale circuiteria di supervisione globalmente consuma poco più di mezzo microampere. Per esempio, la batteria che alimenta un microcontrollore PIC24F16KA102 dura 20 anni in condizioni di funzionamento del tipo: RTCC attivo; Run 1 ms/min; batteria CR2032 Lithium Button Cell. Per lo sviluppo delle applicazioni basate sulla tecnologia eXtreme Low Power Microchip rende disponibile, in download gratuito, il software per Pc XLP Battery Life Extimator, una utility che consente agli sviluppatori di selezionare il tipo di Mcu e di batteria e di introdurre il valore di corrente generato dall’applicazione. La utility modella la corrente attiva, quella di sleep e il tempo impiegato nei vari modi al fine di stimare la vita della batteria.
Energy Friendly di Energy Micro
Energy Micro con la famiglia di microcontrollori EFM32, basati su Arm Cortex M3 ha raggiunto un livello di consumo di potenza così basso da garantire una durata di batteria fino a 20-25 anni. Per ottenere questi risultati particolare attenzione è stata rivolta al funzionamento della Cpu quando esegue il codice tipicamente dalla memoria flash. L’ottimizzazione per la riduzione del consumo di potenza ha riguardato l’oscillatore e la struttura del clock in generale, oltre a minimizzare il bit toggling nel bus di sistema e nelle memorie. In tali condizioni la Cpu consuma nell’ordine dei 180 microampere per MHz. Particolare attenzione viene posta ai livelli di corrente di picco. Questa influenza il tipo di batteria che è necessario impiegare. Quando questo valore è alto, malgrado il dispositivo abbia valori di basso consumo, è necessario l’utilizzo di batterie più grosse e di alta qualità, implicando costi maggiori. Nel caso della famiglia EFM32 la corrente di picco è stata mantenuta bassa e quindi per tali dispositivi è sufficiente utilizzare batterie a pasticche. Un altro fattore di riduzione di potenza è quello per cui la Cpu è particolarmente efficiente nell’eseguire il codice, quindi nel ridurre i tempi attivi rispetto ai tempi passivi (sleep). Un’architettura particolarmente efficiente come quella del core M3 riduce il enormemente rapporto active-to-idle, con un fattore di riduzione del consumo di potenza altrettanto enorme. Il Cortex-M3 utilizza il set istruzioni del Tumb-2, il quale combina le istruzioni compatte a 16 bit del Tumb con le istruzioni ad elevate prestazioni a 32 bit dell’ Arm. L’efficienza del 32 bit viene impiegata nella soluzione di task complessi, mentre nel 90% dell’elaborazione l’implementazione a 16 bit è più che sufficiente. L’accesso alla flash, ove risiede il programma, viene ridotto drasticamente per il 90% del tempo di elaborazione, abbassando in tal modo in maniera rilevante il consumo di potenza. Il fatto di stare in sleep mode per la maggior parte del tempo non necessariamente implica un sostanziale risparmio energetico se il microcontrollore non dispone di una efficiente gestione delle risorse che servono a mantenerlo in vita e farlo passare tempestivamente allo stato attivo. Quando tali risorse, come il real-time clock o la ricezione da Uart sono disponibili solo in stato attivo, allora la fruizione dello stato di sleep non avviene, perdendo in tal modo il vantaggio del basso consumo di potenza. Nel caso del microcontrollore EFM32 tali risorse sono disponibili nello stato di sleep e in più sono a bassissimo consumo. Per un utilizzo più efficace, vengono definiti 5 energy mode in cui le risorse attive sono gradualmente distribuite dal modo EM0 (Run Mode) in cui sono praticamente tutte disponibili al modo EM4 (Shutoff Mode) in cui è disponibile solo il Power –on reset e il Brown.out detector. In quest’ultima modalità, i consumi di corrente sono di solo 20 nA e il tempo di wake-up di 160 microsecondi. Energy Micro ha ulteriormente abbassato i consumi di potenza nella famiglia di microcontrollori EFM32 Gecko di una serie di microcontrollori basati su Arm Cortex M0.
Freescale ultra low-power Kinetis
Il basso consumo non è necessario solo nei microcontrollori a 8 o 16 bit, ma anche in microcontrollori a 32 bit, sempre più diffusi nelle applicazioni embedded, dato l’elevato livello di prestazioni richiesto. Il microcontrollore Kinetis a 32 bit di Freescale è un esempio emblematico di questa nuova tendenza. Basati su Arm Cortex M4, i due nuovi dispositivi, K10 e K20 sono ultra low-power microcontroller con prestazioni e funzionalità molto avanzate. Solo 630 microampere a 4 MHz in low-power mode, cioè 160 microamper per MHz, con la possibilità di scendere a 40 nanoampere in modalità ultra low-power. Oltre alle soluzioni ad alte prestazioni come i 32 bit, l’ultra low-power riguarda anche i microcontrollori di fascia bassa e media, soprattutto quelli funzionalmente specializzati, come per esempio la Mcu ad 8 bit MC9S8LL16 per il controllo dei display Lcd, che nella nuova generazione consuma il 50% in meno di corrente in meno rispetto alle versioni precedenti. Ciò grazie ad un modulo Tod (Time Of the Day) che, riducendo la funzionalità quarter second counter, ha ridotto il numero di commutazioni e sostanzialmente la potenza consumata (meno commutazioni, meno consumo di potenza). La riduzione della velocità e altre semplificazioni hanno permesso di eliminare inutili consumi di potenza elettrica. Anche la riduzione del percorso del clock dalla sorgente ai moduli Tod consente di ridurre la potenza elettrica consumata (lunghezza ridotta = ridotta capacità = ridotta potenza). Grazie a queste e altre soluzioni di ottimizzazione funzionale e di architettura, questi microcontrollori a 8 bit consentono di far durare per esempio una batteria AAA fino a 10 anni. Per esempio, con un Lcd con tutti i segmenti configurati Off, senza contrasto, in low-power, con un oscillatore al quarzo abilitato, a 32 Hz di frame rate, la IDD è di solo 1,2 microampere. Commutando tutti i segmenti On e con contrasto di colore, la IDD è di solo 3.3 microampere. I dispositivi della famiglia QE (S08 e ColdFireV1) sono i più efficiente in termini di power saving, quindi capaci di operare quasi illimitatamente con una sola batteria, grazie al processo Low-voltage, Low Power (LVLP). Questo processo utilizza una lunghezza di canale aumentata per ridurre il leakage della corrente e il consumo statico della potenza. L’ottimizzazione delle standard cell ha permesso di includere anche numerosi elementi funzionali a basso consumo, tra cui un very-low-power (VLP) oscillator che consuma solo 500 nA, un low-dropout standby regulator che abilita le esecuzioni a basso consumo, modi low-power run, wake up from sleep senza reset. Anche i microcontrollori Dsp sono interessati all’ultra low-power, essendo questi sempre più utilizzati in contesti applicativi embedded molto spinti, ove il signal processing è una funzionalità chiave dell’applicazione e questa è di ridottissime dimensioni e alimentata a batteria, spesso non sostituibile o ricaricabile. I Dsp sono per loro natura ad elevata dissipazione di potenza elettrica se comparati ai microcontrollori di uso generale. La combinazione microcontrollore+ Dsp, ovvero il Dsc (Digital Signal Controller) è una delle soluzioni che hanno permesso di avere la potenza computazionale dei Dsp a livello di consumi di potenza dei microcontrollori. Questa soluzione ha consentito di ridurre enormemente i consumi di potenza elettrica nelle applicazioni in cui l’elaborazione digitale del segnale è necessaria (per esempio tutte le applicazioni biomedicali portatili) e conseguentemente richiederebbe l’utilizzo congiunto di un microcontrollore e di un Dsp. La soluzione Dsc ottimizza l’applicazione sia in termini di spazio, sia in termini di consumi di potenza, a maggior ragione quando il Dsp a sua volta è un ultra low-power come il MC56F8006/2 di Freescale. Il Dsc di Freescale, MC56F8006/2, è stato progettato per il basso consumo a partire dal livello dei transistor. Il core è un Harvard modificato con processore Mac (Multiply-Accumulate) che consente operazioni aritmetiche multiple in un singolo ciclo di clock. Questo digital signal controller è basato sulla tecnologia di processo avanzata di Freescale LVLP sotto forma di cell library, ottimizzata per le operazioni a bassissima tensione e basso leakage per la riduzione del consumo della potenza statica. Per supportare le operazioni a bassa tensione è stato implementato un modulo per abilitare le basse tensioni fino a 1,8 volt e per la disabilitazione selettiva dei moduli circuitali non utilizzati. La corrente di standby è inferiore a 1 microampere, mentre la corrente di run è inferiore a 50 mA a 32 MHz. Un’altra soluzione per risparmiare energia è il peripheral clock gating register che riduce il consumo di potenza disabilitando i segnali di clock per i moduli non utilizzati, mentre per la memoria flash si utilizza la strategia di riduzione della richiesta di corrente quando opera a velocità bassa. I modi gestione dei consumi di potenza sono: run, low-power run, wait, low-power wait, stop, low-power stop e partial power down. Ulteriore risparmio di potenza si ottiene tramite le opzioni di gestione del clock. Le opzioni di gestione del clock includono un cristal oscillator ultra low-power e un relaxation oscillator a 400 kHz o in alternativa uno esterno a 32 kHz. Questi due oscillatori possono essere utilizzati con il post-scaler per ottenere un ulteriore riduzione del consumo di potenza da parte di questo microcontrollore Dsp, portando la frequenza fino a 125 Hz.