Come progettare dispositivi indossabili sempre in funzione a basso consumo energetico - Parte 1 – Ottimizzazione del microcontroller
Contributo di Editori nordamericani di DigiKey
2019-09-12
Nota del redattore: questo è il primo di una serie di tre articoli che trattano la progettazione di dispositivi elettronici indossabili, alimentati a batteria, sempre in funzione, e approfondiscono tre aspetti da considerare per ottimizzare il consumo energetico. Questo articolo è la prima parte e descrive come configurare il microcontroller per allungare la durata della batteria e ridurre il numero di ricariche. La seconda parte illustra come gestire correttamente la batteria per aumentare il tempo che intercorre tra le ricariche. La terza parte esamina la connettività wireless dei dispositivi indossabili e spiega come mantenerla senza gravare troppo sulla batteria.
I dispositivi indossabili alimentati a batteria sono sempre più diffusi. Per rimanere competitivi, i produttori aggiungono continuamente nuove funzionalità, soprattutto negli orologi per il fitness, che i consumatori utilizzano senza sosta per tutta la giornata. Questi dispositivi rimangono sempre accesi e gli utenti sono costantemente alla ricerca di nuove funzioni e prestazioni migliori.
Però l'aggiunta di nuove funzionalità spesso significa dover ricorrere a un microcontroller più potente per controllare le funzioni dell'orologio e monitorarle. Il rovescio della medaglia è una riduzione dell'autonomia della batteria e la necessità di ricaricarla più spesso, con un conseguente degrado dell'esperienza utente.
Questo articolo tratta le esigenze specifiche dei microcontroller per i dispositivi indossabili sempre in funzione, illustrando come configurare un microcontroller per un dispositivo di questo tipo e toccando argomenti come la modalità a bassa potenza e le periferiche autonome. Esamina quindi un microcontroller a 16 bit di Texas Instruments e uno a 32 bit di Maxim Integrated, spiegando come le loro caratteristiche più importanti possono essere sfruttate a vantaggio della progettazione dei dispositivi indossabili.
Esigenze specifiche dei microcontroller nei dispositivi indossabili sempre in funzione
Nei dispositivi indossabili, una buona durata della batteria tra le ricariche può essere la caratteristica più importante per l'utente finale. Sebbene le recensioni online possano lodare la precisione e le numerose funzionalità di un prodotto indossabile, è il tempo che intercorre tra le ricariche che può fare la differenza tra il disappunto di chi assegna una stella e la soddisfazione di chi invece ne regala cinque.
Una durata limitata della batteria non implica solo la necessità di ricaricare spesso il dispositivo. Le batterie ricaricabili al litio perdono la capacità totale se vengono ricaricate spesso e rendono quindi difficile mantenere un ottimo stato di salute nel tempo. Le batterie dei dispositivi indossabili verranno trattate nella seconda parte di questa serie di articoli.
Inoltre, nonostante il connettore utilizzato per la ricarica sia in genere robusto, ha un tasso di inserimento/rimozione limitato e quindi ogni ricarica ne aumenta l'usura.
I dispositivi elettronici indossabili hanno esigenze energetiche diverse rispetto ad altri dispositivi consumer, perché sono sempre attivi e quindi il microcontroller deve essere sempre alimentato. In genere poi è presente anche una connessione Bluetooth Low Energy (BLE) che deve essere sempre pronta e disponibile per comunicare con un dispositivo mobile abbinato. La connettività wireless dei dispositivi indossabili sarà trattata nella terza parte di questa serie.
Il dispositivo indossabile non deve tuttavia solo sincronizzare i dati con il dispositivo mobile quando è disponibile la connessione, ma anche assicurare un funzionamento autonomo senza connessione mobile per diverse ore o giorni, in base all'uso previsto.
Oltre all'indicazione dell'ora, lo scopo principale di un dispositivo indossabile, come uno smart watch, è quello di tenere sotto costante controllo e di registrare gli input dei sensori esterni collegati alle porte seriali, come I2C e SPI, che possono includere accelerometri specializzati in grado di contare i passi per un contapassi, un segnale GPS per il controllo della posizione e per le funzioni di navigazione e un cardiofrequenzimetro. Sebbene la maggior parte di questi sensori possa essere attivata e disattivata singolarmente dall'utente, un bravo ingegnere dovrebbe progettare il sistema per lo scenario peggiore, in cui cioè tutti i sensori siano attivi.
I dati raccolti dai sensori devono essere continuamente registrati. Spesso in molti dispositivi mobili Internet delle cose (IoT) o consumer, i dati registrati dai sensori vengono immagazzinati nella memoria non volatile, ad esempio flash o EEPROM. Un'operazione di scrittura nella memoria flash o EEPROM però assorbe una grande quantità di corrente, che può scaricare in breve tempo la piccola batteria di un dispositivo indossabile. Una soluzione migliore consiste nel memorizzare i dati del sensore nella SRAM.
La scrittura nella SRAM, piuttosto che nella memoria non volatile, consuma molto meno corrente. Dato che il microcontroller è sempre alimentato, i dati del sensore nella SRAM sono al sicuro e non vanno persi, a meno che il dispositivo indossabile non venga spento o l'utente lasci scaricare completamente la batteria perché non la ricarica. I dati del sensore memorizzati vengono trasferiti in wireless e immagazzinati in un dispositivo mobile, che li conserva anche se viene spento.
Una funzione importante per ridurre il consumo energetico del microcontroller riguarda le periferiche autonome. L'autonomia esatta dipende dalla famiglia di prodotti del microcontroller. Un'ulteriore soluzione abbastanza comune per ridurre i consumi è quella di togliere l'alimentazione a una periferica che non viene usata, indipendentemente dal resto del microcontroller, impostando o azzerando un bit in un registro di alimentazione.
Modalità a basso consumo energetico dei microcontroller per dispositivi indossabili
Dopo aver ben compreso le esigenze di un microcontroller di un dispositivo indossabile sempre in funzione, è importante stabilire cosa devono fare le modalità a basso consumo energetico e capire cosa è utile e cosa no.
Naturalmente la modalità a consumo più basso di un dispositivo indossabile è lo spegnimento. La maggior parte di questi dispositivi può essere accesa e spenta tenendo premuto un pulsante software temporaneo per un periodo di tempo specifico, in modo da impedire il sequenziamento involontario dell'alimentazione. Questo metodo è migliore rispetto a un interruttore meccanico, che non è meno vantaggioso dal punto di vista economico, ma può essere premuto accidentalmente. L'ingegnere però deve supporre che l'utente spegnerà raramente il dispositivo e quindi progettarlo sulla base di due presupposti apparentemente in conflitto: il dispositivo non verrà mai spento e il dispositivo verrà anche spento occasionalmente.
In genere un chip per la gestione del consumo energetico controlla la carica della batteria e attiva e disattiva l'alimentazione per il microcontroller e i sensori. La gestione del consumo energetico è trattata anche nella seconda parte di questa serie. Quando il chip per la gestione del consumo energetico spegne il dispositivo indossabile, viene tolta l'alimentazione al microcontroller, fatta eccezione per l'alimentazione separata del clock in tempo reale (RTC). Questa situazione richiede un microcontroller che possa funzionare anche quando l'alimentazione esterna alla CPU, RAM e alla maggior parte delle periferiche è disattivata e funziona solo l'RTC.
L'RTC del microcontroller deve funzionare anche quando il dispositivo indossabile è spento per garantire l'ora corretta, quindi il microcontroller deve avere un pin di alimentazione separato per l'RTC che rimanga sempre alimentato. Per il clock dell'RTC è presente un oscillatore a 32,768 kHz a bassa frequenza che assorbe una manciata di nano ampere. Uno smart watch che non mantiene l'ora corretta quando viene spento non sarebbe accettabile e quindi una modalità a basso consumo energetico che disattivi l'RTC non sarebbe pensabile in un dispositivo indossabile.
La CPU può essere disattivata per risparmiare energia, e lo stesso vale per tutte le periferiche che in quel momento non sono utilizzate. Il contenuto della RAM però deve essere conservato e quindi anche una modalità a basso consumo energetico che disattivi tutta la RAM non sarebbe adatta per un dispositivo indossabile.
Configurazione del microcontroller
Un buon esempio di microcontroller ottimizzato per dispositivi indossabili è MSP430FR2676TPTR di Texas Instruments, a 16 MHz, con memoria ad accesso casuale ferroelettrica (FeRAM) (figura 1). È un membro della famiglia di microcontroller con rilevamento tattile capacitivo CapTIvate™ MSP430™ a 16 bit MSP430FR2676 di Texas Instruments, che contengono una periferica a basso consumo energetico in grado di rilevare il tocco attraverso un vetro spesso. Gli schermi di vetro dei dispositivi indossabili devono essere spessi e durevoli per sopportare l'uso regolare e quindi la tecnologia CapTIvate è idonea per un dispositivo indossabile con touchscreen.
Figura 1: Il microcontroller MSP430FR2676TPTR con FeRAM a 16 bit a bassissimo consumo energetico di Texas Instruments ha un'ampia gamma di periferiche e può controllare un dispositivo indossabile semplice con un numero minimo di parti esterne. (Immagine per gentile concessione di Texas Instruments)
Il microcontroller MSP430FR2676TPTR ha 64 kB di memoria di programma FeRAM di Texas Instruments per garantire prestazioni di lettura/scrittura migliori con un minor consumo energetico rispetto ai microcontroller flash. Include 8 kB di SRAM e un set completo di periferiche tra cui I2C, SPI e UART per la connessione ai sensori. Un moltiplicatore hardware 32x32 velocizza la moltiplicazione e riduce il consumo energetico.
L'RTC del microcontroller MSP430FR2676TPTR può essere configurato per riattivare il microcontroller in intervalli da microsecondi a ore, aspetto utile per riattivare la CPU per attività come l'elaborazione periodica dei dati dei sensori e il loro invio a un dispositivo mobile tramite la rete.
Il sistema di oscillatore e clock del microcontroller MSP430FR2676TPTR è progettato per ridurre i costi e garantire consumi ridotti. Il microcontroller supporta quattro generatori di clock interni e due esterni ad elevata precisione. Gli oscillatori e i clock possono essere attivati e disattivati da firmware in base alla modalità a basso consumo energetico selezionata e alla configurazione firmware. Per le periferiche in esecuzione, il microcontroller MSP430FR2676TPTR ha due clock: un sottosistema di master clock ad alta velocità (SMCLK) in grado di funzionare alla frequenza del clock di sistema e un clock ausiliario (ACLK) a 40 kHz a bassa velocità.
Oltre alla modalità attiva, in cui la CPU e tutto il resto sono attivi, il microcontroller MSP430FR2676TPTR supporta anche modalità a basso consumo energetico configurabili complesse. Ognuna delle periferiche su chip attive in una determinata modalità a basso consumo energetico del microprocessore MSP430 può essere disattivata tramite firmware, permettendo così di ottenere configurazioni a basso consumo energetico personalizzate. Per un dispositivo indossabile con MSP430FR2676TPTR, sono possibili le seguenti modalità a basso consumo energetico (LPMx):
- LPM0 consente il funzionamento completo, tranne che della CPU. È utile quando periferiche specifiche devono essere attive e funzionare a piena velocità senza l'intervento della CPU.
- LPM3 disattiva la CPU, l'oscillatore ad alta velocità e SMCLK. Tutte le periferiche attive possono funzionare con l'ACLK a 40 kHz a basso consumo. È utile quando il dispositivo indossabile è in standby e non viene premuto nessun pulsante. Periferiche seriali come I2C e SPI possono funzionare autonomamente per raccogliere i dati dei sensori mentre l'accesso diretto alla memoria (DMA) trasferisce i dati alla RAM. L'RTC può riattivare il dispositivo affinché esegua le necessarie attività.
- LPM4 disattiva tutto tranne l'RTC. La SRAM non è alimentata. È utile quando il dispositivo indossabile viene spento dall'utente.
Il microcontroller MSP430FR2676TPTR può funzionare tra 1,8 e 3,6 V ed è quindi idoneo per l'uso con batterie al litio da 3,6 V. Con l'RTC in funzione e un numero minimo di periferiche, il microcontroller può assorbire meno di 5 µA. Con l'oscillatore principale in funzione, ha un assorbimento di 135 µA/MHz (uso tipico).
Per dispositivi indossabili più performanti, Maxim Integrated offre il microcontroller a 32 bit MAX32660GWE (figura 2), basato su core Arm® Cortex®-M4 con unità a virgola mobile (FPU). Il chip MAX32660 ha 256 kB di memoria flash e 96 kB di SRAM, suddivisa in quattro settori. Ciascun settore può essere abilitato per la lettura/scrittura, impostato in modalità di bassa sospensione disabilitando la lettura/scrittura ma mantenendo l'alimentazione per non perdere i dati, o disattivato completamente per togliere del tutto l'alimentazione.
Figura 2: MAX32660 di Maxim Integrated è progettato appositamente per dispositivi elettronici indossabili sempre in funzione. Per non disattivare l'alimentazione, riduce al minimo il numero di periferiche, mantenendo solo quelle necessarie per interfacciarsi con i sensori esterni in un'applicazione del dispositivo indossabile. (Immagine per gentile concessione di Maxim Integrated)
Il chip MAX32660 può funzionare a una frequenza massima di 96 MHz e con tutte le periferiche attive assorbe solo 85 µA/MHz. Per ridurre al minimo l'assorbimento di corrente in un contenitore di dimensioni ridotte, offre un set minimo di periferiche per dispositivi indossabili, cioè due SPI, due I2C e due UART.
Supporta due oscillatori interni: un oscillatore interno a 96 MHz ad alta velocità disattivabile da firmware e un oscillatore ad anello a 8 kHz a basso consumo energetico, sempre attivo indipendentemente dalla modalità a basso consumo energetico. Un oscillatore a 32,768 kHz usa un cristallo esterno e viene impiegato per l'RTC. Uno di questi tre oscillatori può essere utilizzato per il clock della CPU e delle periferiche.
Tutte le periferiche possono essere disattivate da firmware. Il firmware può anche disattivare il clock della periferica per risparmiare nano ampere preziosi.
Per soddisfare i requisiti dei dispositivi indossabili, l'RTC è sempre attivo in tutte le modalità a basso consumo energetico, a meno che non venga volutamente disattivato tramite firmware in modalità attiva. L'RTC e il clock si trovano in una sezione distinta, il "dominio sempre in funzione", isolato dal resto del microcontroller, per garantire che l'RTC non subisca conseguenze in caso di malfunzionamento o manomissione del firmware.
Oltre alla modalità attiva, MAX32660 supporta tre modalità a basso consumo energetico personalizzate appositamente per i dispositivi elettronici indossabili:
- In modalità di sospensione, la CPU è disattiva e ognuna delle periferiche attive può funzionare autonomamente. Può essere utile quando il dispositivo è in standby e i dati dei sensori sono registrati e immagazzinati nella DMA. Ciascuna delle periferiche attive può riattivare la CPU in modalità attiva.
- In modalità di sospensione profonda, tutti i clock interni della CPU e delle periferiche sono disalimentati, ad eccezione del clock a 32,768 kHz dell'RTC. Il firmware può configurare il clock interno a 96 MHz per disattivarsi automaticamente all'ingresso in modalità di sospensione profonda. Tutto il contenuto della RAM, inclusa la SRAM dati e tutti i registri delle periferiche, viene mantenuto. È utile per dispositivi indossabili che hanno bisogno di una modalità di sospensione limitata, per poter essere spenti per risparmiare energia ma allo stesso tempo riavviati da dove erano stati lasciati quando vengono riaccesi.
- La modalità con il minor consumo energetico è quella di backup. I clock e l'alimentazione della CPU e di tutte le periferiche sono disattivati, fatta eccezione per l'RTC. Come impostazione predefinita, l'alimentazione alla SRAM è completamente disattivata. È utile quando il dispositivo indossabile viene spento dall'utente e, per risparmiare energia, non viene conservato il contenuto della SRAM. Se si desidera, per conservare il contenuto della memoria, questa modalità può mantenere uno o più dei quattro settori della SRAM in modalità di bassa sospensione. È utile per dispositivi indossabili che devono mantenere uno stato attivo minimo, con un assorbimento di corrente aggiuntivo ridotto.
MAX32660 richiede da 1,71 a 3,63 V e quindi può essere alimentato con batterie al litio da 3,6 V. Il microcontroller dispone inoltre di un'unità di gestione dell'alimentazione autonoma e garantisce quindi una piedinatura ridotta perché elimina il componente esterno. Offre anche un supporto per l'indicazione dello stato della batteria che tiene sotto controllo la batteria esterna e garantisce una lettura precisa dello stato della carica, visualizzabile nell'interfaccia utente del dispositivo indossabile.
Conclusione
I dispositivi elettronici indossabili sempre in funzione rappresentano una vera sfida per chi li progetta. Anche quando sembrano spenti, assorbono comunque una certa quantità di energia. Tuttavia, come abbiamo illustrato, i progettisti possono aggiungere funzionalità e caratteristiche ad-hoc e sfruttare le modalità a basso consumo energetico configurabili per conservare ed estendere la durata della batteria.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.