Dopo la sua introduzione nel 2005 la famiglia di microcontrollori basati su Core a 32bit Cortex M ha praticamente invaso il mercato diventando quasi uno standard. Il fatto di avere una CPU progettata e testata da esperti come la società ARM, ha permesso anche a molte società fabless (senza fabbrica) di introdurre una propria famiglia di microcontrollori per funzioni speciali. In questo contesto probabilmente società come ST micro, NXP (Freescale), Texas Instruments, fanno certamente da padroni. Gran parte delle famiglie di microcontrollori introdotte, anche se in alcuni contesti hanno cercato di coprire le applicazioni Low Power, i risultati derivanti da alcuni compromessi progettuali non hanno portato risultati ancora soddisfacenti.
Texas Instruments ha introdotto il primo Cortex M3 per applicazioni Ultra Low Power per mezzo della famiglia di Transceiver RF CC13xx e CC26xx annunciate alla fiera Embedded World 2015, ma dopo poche settimane ha esteso le applicazioni Ultra Low Power annunciando la nuova famiglia MSP432, ovvero i famosi MSP430 con core 32 bit. Diversamente dagli MSP430 con architettura proprietaria, gli MSP432 sono basati su architettura Cortex M4F.
La famiglia MSP432 è stata pensata più propriamente per applicazioni Low Power, dove sono necessari sia ridotti consumi che performance. Controllando i consumi della famiglia MSP430 basata su FRAM, si ha che gli MSP430 a 16 bit sono ancora i microcontrollori con i consumi minori sul mercato, ma confrontando performance e consumi per applicazioni con maggior esigenze di calcolo, la famiglia MSP432 si pone al primo posto. Il diagramma a blocchi del microcalcolatore MSP432 è mostrato in Figura 1.
Figura 1: Diagramma a blocchi delle periferiche e moduli integrati nel microcontrollore MSP432.
La famiglia MSP432 è basata sul core Cortex M4F, ovvero Cortex M4 con Floating Point Unit e viene presentata con frequenza massima di 48MHz. Per quanto riguarda la memoria è attualmente presente con memoria Flash fino a 256KB e RAM 64KB. Dal lato della memoria non ci sono grossi limiti e visto il bus d'indirizzamento a 32 bit è facile estendere il tutto a memorie più grandi. Interessante è invece la frequenza massima, effettivamente inferiore ai microcontrollori Cortex M4 della stessa Texas Instruments e ST. La scelta è semplicemente di natura tecnica. Infatti i blocchi costruttivi (transistor) utilizzati per applicazioni con frequenze elevate di clock, non sono l'ottimo per applicazioni Low Power. Dal momento che la famiglia MSP432 è introdotta per le applicazioni Low Power la frequenza di clock di 48MHz rappresenta un buon compromesso. In applicazioni Low Power non è insolito che le frequenze di clock siano tra 1MHz e 8MHz, per cui 48MHz fornisce effettivamente un buon compromesso con quel boost in più per gli aspetti computazionali.
Una caratteristica introdotta dal Cortex M4 rispetto alle precedenti famiglie è il set di istruzioni tipicamente supportate dai DSP (Digital Signal Processors). Questo significa che un Cortex M4 in generale, qualora si debbano eseguire operazioni tipiche dei filtri digitali risulta più efficiente da un punto di vista del tempo ed energia richiesta, rispetto al Cortex M3, Cortex M0. La famiglia MSP432 associa al set di istruzione Cortex M4 anche il modulo FPU (Floating Point Unit) al fine di ridurre ulteriormente i tempi di calcolo.
I consumi tipici della famiglia MSP432 sono 95uA/MHz in Active Mode e 850nA in LPM3 (con Timer RTC attivo).
La famiglia MSP432 come anche la famiglia MSP430 basata su FRAM, rappresentano un ottimo esempio di come i bassi consumi non siano solo il risultato del core utilizzato ma della tecnologia utilizzata, in particolare gli MSP432 sono realizzati con tecnologia 90nm a basso leakage. Interessanti sono i risultati ottenuti da EMBC nel test “ULPBench (TM) Score” .
Tolti alcuni aspetti più o meno comuni presenti in tutti i microcontrollori, una cosa interessante degli MSP432 è la presenza di LDO e convertitore DC-DC interni al fine di poter alimentare il microcontrollore direttamente dalla batteria in un range di tensioni che vanno da 1.62V a 3.7V.
La memoria Flash è organizzata in due blocchi indipendenti che possono essere letti e scritti nello stesso tempo, agevolando quelle applicazioni in cui sia necessario aggiornare il Firmware. Il microcontrollore introduce un ADC a 14bit con ENOB 13.2bit e frequenza di campionamento pari a 1MSPS.
La fase di scrittura del codice e Debug è agevolata per le persone che provengono dal mondo MSP430, infatti alcuni moduli sono presi di sana pianta dagli MSP430, tanto è vero che i registri di configurazione degli stessi sono a 16 bit, rendendo la migrazione piuttosto indolore.
Detto questo è bene sottolineare che gli MSP432 non si presentano come successori degli MSP430, ma un'alternativa quando siano richieste maggiori performance e bassi consumi. Infatti da un punto di vista dei consumi gli MSP430 rimangono ancora, per molte applicazioni, la famiglia a minor consumo energetico.
Sebbene gli MSP432 erediti molto dalla famiglia MSP430, ci sono inevitabilmente delle cose nuove introdotte dalla scelta dell'architettura ARM. Alcuni layer di astrazione software sono disponibili per poter usare gli stili di programmazione MSP430 piuttosto che ARM. Questo è possibile farlo semplicemente includendo un header file apposito. Naturalmente lo stile MSP430 è consigliato solo se si proviene dalla programmazione MSP430, mentre quello ARM è in generale consigliato in tutti gli altri casi. Al fine di agevolare i programmatori esperti con MSP430 è presente la Porting Guide MSP430-MSP432.
Per chi si trova alle prime armi è già presente un corso completo di programmazione online e relativa scheda di sviluppo LaunchPad (Figura 2), dal solito costo irrisorio di pochi euro. L'ambiente di sviluppo Energia supporta già la scheda di sviluppo MSP432 aggiungendo l'interessante supporto del TI-RTOS, ovvero del sistema operativo TI gratuito, che permette di eseguire più scketch in parallelo.
Figura 2: Scheda di sviluppo MSP432.
Sebbene abbia fatto pubblicità, un poco di parte, è bene mettere i piedi per terra e analizzare gli MSP432 per quello che sono e non quello che vorremmo che siano. La nuova famiglia di microcontrollori MSP432 non rappresenta un microcontrollore Cortex M4 per applicazioni generiche il cui parametro più importante sia il costo dello stesso, bensì un microcontrollore per applicazioni in cui gli aspetti tecnici legati ai consumi siano di primaria importanza. Non è difficile che un microcontrollore generico possa avere più memoria Flash, RAM essere più veloce e costare anche meno ma senza dubbio richiedere anche più energia. Applicazioni tipiche per gli MSP432 potrebbero essere moduli di trasmissione Radio, sistemi remoti per Home Automation, metering o industriali, come anche sistemi medicali portatili.
You don`t have permission to comment here!