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. Spesso le specifiche tecniche relative alle prestazioni di un prodotto vengono espresse nelle condizioni di funzionamento (e di misura) ottimali, nell’intento di metterlo in evidenza ed in posizioni di (apparente...) superiorità rispetto ai concorrenti. Un documento comparativo di TI, volto a confrontare i micro della famiglia MSP430 con quelli a tecnologia XLP di Microchip, mostra le differenze e le relative caratteristiche tecniche e funzionali.
Introduzione
In un documento messo online (vedi Riferimento 1) Texas Instruments ha confrontato i PIC24F Microchip con tecnologia XLP caratterizzata da consumi estremamente ridotti, dell’ordine dei nW, con i propri dispositivi MSP430 con Ultra Low Power. La documentazione TI fa riferimento a otto parametri specifici importanti nelle applicazioni di consumo estremamente ridotto, e in questa si sostiene la superiorità della propria tecnologia rispetto a quella denominata “XLP” di Microchip. Quest’ultima, nell’articolo pubblicato a distanza di qualche mese (vedi Riferimento 2) considera ciascuno degli otto elementi ai quali TI si riferisce, rivela i punti discutibili nel documento originale di TI e presenta, alla fine, dei dati ben diversi. Nello specifico, il documento si riferisce ad una prova di laboratorio dove si considerano dei test in cui vengono confrontati un dispositivo MSP 430F2619 - 120 KB, un dispositivo MSP 430 F2011 - 1KB Flash e un PIC 24F16KA102 - 16KB Flash, posti in modalità di funzionamento a basso consumo e in cui si usa, come alimentazione, una batteria a bottone del tipo CR2032 da 3 V: il funzionamento a basso consumo prevede, per tutti i dispositivi, lo Sleep Mode con Watchdog Timer e il Brown Out Reset abilitati. I risultati di provenienza Texas Instruments sono riportati nella Tabella 1.
Relativamente ad essi, si afferma che il funzionamento in standby è molto importante e i dispositivi hanno una fase di wake-up ogni pochi secondi. La prova di laboratorio fa riferimento ai dati considerati per concludere che il PIC XLP consuma così due volte di più rispetto alla famiglia MSP430F2xx; l’articolo considera quindi otto affermazioni della TI che, riferendosi ad altri modelli della famiglia MSP430F2xx e alla famiglia PIC24F, vogliono sostenere conclusioni similari.
AFFERMAZIONE 1: “TUTTI I DISPOSITIVI MSP430 MCU SONO RAGIONEVOLMENTE A BASSO CONSUMO”
Dati reali riportati non supportano questa tesi. Ci sono parecchi MSP430 MCU, come ad esempio gli MSP430F2252, che assorbono 100 nA in modalità Sleep. Ci sono anche dispositivi come quelli della famiglia MSP430F553X che richiedono il 1700% in più di corrente in sleep-mode, ovvero 1690 nA. Questo dato differisce di oltre un ordine di grandezza rispetto all’altro, che risulta quindi così non consistente. La Tabella 2 illustra la grande differenza dei consumi all’interno della famiglia dei dispositivi MSP430.
AFFERMAZIONE 2: “L’UTILIZZO CON UNA SORGENTE DI ALIMENTAZIONE DI 1,8V NON È RILEVANTE IN APPLICAZIONI DAL CONSUMO ESTREMAMENTE RIDOTTO”
Questa è un’affermazione infondata, dal momento che non considera un serio dato di progetto: il funzionamento della MCU quando si riduce la tensione a causa del progressivo esaurimento della batteria di alimentazione. Per la maggior parte delle industrie di elettronica embedded, la tendenza nella tecnica di consumo estremamente ridotto è quella di far ricorso a batterie come fonte di alimentazione. Questa modalità a consumo estremamente ridotto è divenuta così sinonimo di “alimentazione a batterie” e questo, nelle applicazioni odierne, significa far ricorso a sorgenti costituite da una o due celle, ovvero o un elemento a bottone come la CR2032, o un paio di Alcaline AA/AAA. In entrambi i casi l’intervallo di tensioni di utilizzo scende al di sotto dei 3,0 V. Nel caso di una batteria alcalina da 1,5 V, la tensione rimane utilizzabile fino a 0,9 V, o 1,8 V nel caso di due batterie. Nel caso della popolare CR2032, il campo di tensioni utilizzabili si estende fino a 2,5 V prima che la tensione inizi a decrescere drasticamente, come si vede nella Figura 1.
Le affermazioni TI sostengono che l’MSP430 è specificamente progettato per le applicazioni basate su alimentazioni a batteria. La scelta di non considerare che tali applicazioni devono in concreto e realisticamente comportare la possibilità di utilizzo anche una volta che la tensione della batteria è scesa sotto il valore nominale, significa che le applicazioni per cui i dispositivi MSP430 sono dedicati non sono le applicazioni basate su alimentazioni a batteria.
AFFERMAZIONE 3: “L’MSP È IL MICROCONTROLLORE CHE CONSUMA DI MENO AL MONDO”
La documentazione della TI sostiene che i dispositivi MSP430 consumano meno in tutti i modi di funzionamento. Comunque TI può affermare questo sostenendo che il modo di funzionamento Deep Sleep dei PIC24F dotati di tecnologia XLP sia tanto “pericoloso” quanto “sconveniente” e perciò diminuendone l’importanza. In realtà, i dispositivi MSP430 non includono un modo di funzionamento Deep Sleep, e non è possibile togliere alimentazione alla RAM e ristabilirla (vedi Affermazione 5: il modo di funzionamento Deep Sleep è pericoloso). Le correnti di perdita della RAM sono una delle cause di maggior consumo della batteria durante lunghi periodi in cui il dispositivo ha un funzionamento ridotto; è per questo motivo che TI cerca di screditare il modo Deep Sleep, considerandolo pericoloso o sconveniente. Nessuna delle due considerazioni è difendibile. Nelle situazioni reali, in cui si considerano applicazioni che prevedono un funzionamento per molti anni tramite una sola batteria, non si può sostenere un modo di funzionamento simile come “sconveniente”. Inoltre, la documentazione della TI sostiene che il Deep Sleep è più che altro un modo di funzionamento “off” perché si può utilizzare togliendo alimentazione alla maggior parte degli elementi attivi dei PIC24F. Comunque, come si può vedere dalla Tabella 3, il modo di funzionamento Deep Sleep si può utilizzare quasi con ogni combinazione di Brown-Out Reset (BOR), Watchdog Timer (WTD) e Real Time Clock/Calendar (RTCC), con un consumo inferiore ai dispositivi MSP430 in ciascuno di questi modi di funzionamento di consumo ridotto. Sostenere che un dispositivo sia il microcontrollore con il minor consumo al mondo deve sempre comportare esclusioni, ma escludere modalità di funzionamento a basso consumo di un concorrente solo perché il proprio dispositivo non li supporta, non sembra sia un modo obiettivo di eseguire un confronto.
AFFERMAZIONE 4: “TUTTI I MODI DI FUNZIONAMENTO SLEEP SONO UGUALI”
Nella documentazione di TI non si fa accenno ad un modo di funzionamento Deep Sleep, presumibilmente perché il dispositivo MSP430 non è in grado di offrire una modalità di funzionamento a basso consumo paragonabile. Non supportare una caratteristica non giustifica il fatto di ignorarla; tuttavia, la TI ripetutamente evita di riconoscere le caratteristiche più vantaggiose dei PIC24F con tecnologia XLP. La TI, invece, sceglie di ignorare le differenze tra la modalità di funzionamento Sleep mode e Deep Sleep mode dei PIC24F, preferendo indicare il Deep Sleep mode come un “modo di memorizzazione” ed evitando di riconoscerne la flessibilità. Questo traspare ancor più nel paragone della modalità LPM4 dei dispositivi MSP430 (Low Power Mode 4), descritto da TI come “equivalente ad un modo di memorizzazione”, con i valori relativi al funzionamento in modalità Sleep mode dei PIC24F. Ironia della sorte, le prestazioni dei microcontrollori PIC® nella modalità di funzionamento Sleep mode sono per lo più equivalenti al “modo di memorizzazione” dei dispositivi MSP430 e, se i valori relativi alla modalità Deep Sleep mode dei PIC24F fossero stati considerati da TI come si sarebbe dovuto fare, i risultati sarebbero stati ancora più favorevoli a Microchip. Il risultato finale è che il PIC24F ha dimostrato un consumo nel modo Deep Sleep mode inferiore a quello di ogni altra modalità che i dispositivi MSP430 possano offrire, senza rinunciare ai diversi modi con BOR, WTD o RTCC.
AFFERMAZIONE 5: “LA MODALITA’ DEEP SLEEP È PERICOLOSA”
La modalità di funzionamento Deep Sleep è considerata nella documentazione della TI come “pericolosa”; afferma che è un modo di memorizzazione dal momento che uno Sleep mode richiede un wake-up, cosa che, secondo gli ingegneri della Texas Instruments, la modalità Deep Sleep mode del PIC24F non offre. Ciò non è esatto. Il PIC24F ha sei modi di wake-up dopo il Deep Sleep mode. Dispone di due opzioni autonome di wake-up:
- Il Deep Sleep WDT
- Il Real-Time Clock/Calendar
Un interrupt esterno o un Master Reset, POR, o BOR possono a loro volta essere utilizzati come opzioni di wake-up. È possibile che TI consideri paragonabili la modalità Deep Sleep del PIC24F e l’LPM5 dell'MSP430; questo è, per sua stessa ammissione, considerato un modo di funzionamento virtuale “off”. Entrando nella modalità di funzionamento LPM5, si toglie alimentazione al core del processore, cancellando tutti i dati dai registri SRAM e, cosa più significativa, perdendo gli stati dei pin di I/O. Uscire da tale modalità di funzionamento è possibile solo tramite un evento esterno e provoca un reset del sistema. È chiaro che ricorrere ad un modo di funzionamento così limitativo come l’LPM5 per consumare meno va fatto in modo prudente e solo in quelle applicazioni dove è possibile un reset del dispositivo tramite eventi esterni, altrimenti potrebbe essere considerato pericoloso.
AFFERMAZIONE 6: “L’MSP430 VINCE NEGLI STUDI DI DURATA DELLA BATTERIA”
Questa affermazione fa riferimento ad un esempio di utilizzo presentato per illustrare la durata di una batteria. Per gli esempi riportati nella documentazione, la TI fa uso dei valori “tipici” del foglio specifiche del proprio dispositivo, ma usa i “massimi assoluti” ricavati dal foglio dati del microcontrollore PIC. Non c’è nessuna spiegazione nella documentazione sul perché ciò sia stato fatto o perché possa essere considerato un paragone appropriato. Gli esempi riportati nella documentazione della TI considerano due casi: un’applicazione con un duty-cycle dell’ 1% e un’applicazione con un duty-cycle dello 0.1%. In ciascun esempio la TI usa valori massimi assoluti dei datasheet quando calcola la durata di vita della batteria nel caso del PIC24F, ma valori tipici nel caso del proprio MSP430. In aggiunta all’uso scorretto dei dati specifici, il paragone viene fatto senza usare la modalità di funzionamento di consumo più basso possibile del PIC, il Deep Sleep. Chiaramente, nel caso di un utilizzo generico, andrebbero utilizzati valori “tipici” per tutto il confronto. Inoltre, si dovrebbero includere tutte le possibili caratteristiche del microcontrollore. Quando gli ingegneri della Microchip ricostruirono questo esperimento usando i dati forniti dalla TI per il rispettivo microcontrollore, ma usando invece quelli più appropriati nel caso del PIC24F - includendo l’uso del Deep Sleep Mode - i risultati furono differenti in modo significativo (vedi la Figura 2).
Primo, nel caso dell’esempio dell’applicazione con il duty-cycle dell’1 %, invece di ottenere una durata di vita di meno di 2 anni, il PIC24F rimane operativo per 6,7 anni, che è 4 mesi in più dei migliori dati propri dell'MSP430. Secondo, nel caso dell’applicazione con un duty-cycle dello 0,1 %, il PIC24F rimane operativo quasi 30 anni, che è approssimativamente 5 anni in più del miglior dato riportato per l’MSP430. Va notato che un tempo di vita di 30 anni è teorico, dal momento che sarebbe più lungo delle tabelle di vita di tipiche celle a bottone CR2032.
AFFERMAZIONE 7: “L’MSP430 HA IL WAKE-UP PIU’ VELOCE”
Questa affermazione è corretta, dal momento che l’oscillatore digitale dell’MSP430 può iniziare a funzionare e raggiungere un segnale stabile a 16 MHz in 1 μs, mentre l’oscillatore RC del PIC24F impiega 2 μs per funzionare. Comunque, l’MSP430 può funzionare a 16 MHz solo con una tensione che supera i 3,0 V; al di sotto di questo valore non è più in grado di garantire un clock ad una simile frequenza (vedi Figura 3). L’affermazione, dunque, nelle applicazioni alimentate a batteria è puramente accademica, poiché la tensione nominale è pari a 3,0 V soltanto all’inizio e successivamente il suo valore non può che scendere. Per inciso, il PIC 24F è in grado di funzionare a 32 MHz a 3,0V.
AFFERMAZIONE 8: “L’MSP430 E' DUE VOLTE PIÙ VELOCE IN ESECUZIONE”
L’ultima affermazione da confutare è legata all’Affermazione 7, che propone che un periodo di wake-up più breve e un’ esecuzione di codice più rapida comportano una minor perdita di energia. Calcolando l’utilizzo di energia si raggiunge una conclusione differente. La maggior parte delle istruzioni dei dispositivi MSP430 richiedono due o più cicli, mentre circa il 90% delle istruzioni dei PIC24F sono di un solo ciclo. Ciò significa che per una data operazione, l’architettura del PIC24F richiede un minor numero di cicli d’istruzione. Meno cicli d’istruzione significa minor impiego del bus e meno transizioni di gate, che rappresentano la maggior causa di consumo in un dispositivo CMOS. L’esempio riportato nella Tabella 4 riporta il risultato di un compito semplice ma eseguito spesso: copiare un array di 32 byte da una parte della memoria in un’altra.
Si può vedere che l’MSP430 inizia l’esecuzione del codice 1 μs dopo l’inizializzazione, ma continua ad eseguire codice a lungo dopo che il PIC24F ha terminato il compito, con un consumo di energia significativamente maggiore - con un tempo tre volte superiore - per ottenere lo stesso risultato. Ciò è dovuto al set di istruzioni del PIC24F, che dispone di più istruzioni ad un singolo ciclo e quindi più efficienti nella loro applicazione.
CONCLUSIONE
La conclusione che viene tratta da TI nella sua documentazione è che il dispositivo MSP430 rappresenta la famiglia di microcontrollori con il consumo più ridotto al mondo; affermazione che è stata poi confutata negli esempi riportati nell’articolo. Il PIC24F è stato in realtà progettato per operazioni a consumo estremamente ridotto in applicazioni in cui l’aspetto del risparmio energetico è di importanza primaria. Si conclude in modo evidente che la famiglia di PIC24F è superiore in caratteristiche e funzioni. Non solo fa il miglior uso della potenza di una sorgente come una batteria, ma lo fa anche nel modo più flessibile ed efficiente. Progettando un’applicazione in cui il consumo va controllato, il team dei progettisti non si deve veder aumentata la difficoltà del compito a causa dei vincoli del microcontrollore. Necessita di una soluzione che sia semplicemente la migliore e con un funzionamento a consumo estremamente ridotto, qualunque sia l’applicazione. La famiglia PIC24F viene incontro a tale necessità e lo fa senza imporre restrizioni sull’alimentazione, sulle modalità di sleep o sull’efficienza del codice utilizzato.
Articolo della rivista cartacea Firmware Anno 2015 - Numero 109-110