Proviamo a fare un giro per casa e contare una cosa che non siamo soliti fare, ovvero i microcontrollori che vivono sotto il nostro tetto. Vi sorprenderete nello scoprire che decine di microcontrollori vi hanno tenuto compagnia da anni! Qualunque elettrodomestico o dispositivo con qualche pulsante e display è un potenziale candidato ad essere controllato da un microcontrollore. Il mercato è talmente esteso che decine di società competono la fetta di mercato dei sistemi embedded basati su microcontrollori.
Le applicazioni sono molte, per cui, al fine di ottimizzare i costi per ogni applicazione è possibile trovare varie tipologie di microcontrollori che si differenziano per architettura, memoria disponibile, I/O, periferiche disponibili e molto altro che possa fare del prodotto la soluzione ideale per un´applicazione potenzialmente high volume.
Applicazioni per gli MSP430
In questo mercato che ci vizia con le mille comodità dei sistemi embedded, gli MSP430, nati nel 1990 da un gruppo di progettazione della Texas Instruments di Freising nei pressi di Monaco di Baviera, hanno subito trovato spazio nelle applicazioni emergenti che richiedevano bassi consumi. Negli anni 90 i sistemi embedded alimentati a batteria sono aumentati ad un ritmo elevato, per tale ragione gli MSP430 vennero progettati con i mente i bassi consumi al fine di permettere durate di batteria che superassero i dieci anni e fossero dunque la soluzione ottimale per le applicazioni emergenti a batteria. MSP430 sta per Mixed Signal Controller, ovvero è paragonabile ad un DSP (Digital Signal Processor) e vennero pensati con un´architettura a 16bit RISC (Reduced Instruction Set Controller) di tipo Von Neumann, ovvero in cui un unico spazio di memoria viene utilizzato sia per la memoria programma che per la memoria dati (Figura 1).
Figura 1: Architettura di von-Neumann usata negli MSP430.
Questa architettura si contrappone all´architettura di molti altri microcontrollori, quali i PIC della Microchip, progettati con architettura Harvard, ovvero in cui memoria Programma e dati risiedono in due diverse sezioni accessibili rispettivamente da un bus dedicato (Figura 2).
Figura 2: Architettura Harvard.
Sotto certi aspetti l´architettura von-Neumann porta a essere meno efficienti in termini di accesso dati ed elaborazioni dati, vista la presenza di un solo bus. Ciononostante, come vedremo a breve, questa architettura porta ad avere una semplicità di utilizzo tale, che molti programmatori programmano gli MSP430 in assembly. A supporto della facilità di utilizzo gli MSP430 hanno un set di istruzione piuttosto ristretto, solo 27 istruzioni! Sebbene la specifica di avere un microcontrollore di facile utilizzo possa far sembrare che gli MSP430 siano una seconda scelta, non è affatto cosi. L´architettura interna grazie ai numerosi registri general purpose e al costant generator, permette al compilatore o ai programmatori abili di ottimizzare il codice al pari di architetture Harvard.
Gli MSP430 integrano al loro interno molte periferiche analogiche rendendoli un´ottima scelta per applicazioni con sensori. Tra le periferiche analogiche di maggior rilievo si ricordano:
- ADC 10 bit (di tipo SAR, ovvero ad approssimazioni successive)
- ADC 12 bit (di tipo SAR, ovvero ad approssimazioni successive)
- ADC 16 bit (di tipo Sigma Delta, con ingressi single ended e differenziali)
- ADC 24 bit (di tipo Sigma Delta, con ingressi single endedd e differenziali)
- Comparatori
- Amplificatore Operazionali
- Cap Touch (Sensori capacitivi)
- Scan Interface (periferica simile ai moduli per encoder)
- Transceiver RF (Modulo RX e TX per frequenze sub 1GHz)
Tra le periferiche ed interfacce digitali di maggior interesse si trovano:
- Timers, Capture e Compare, PWM
- UART, I2C, SPI,USB
- Moltiplicatore 32x32 bit
- DMA (Direct Memory Access)
- Clock ortogonale
- Modulo Data Encription
- Interfaccia LCD
Ok, quindi!?
Da quanto fin ora detto, si sarà compreso che l´MSP430 nasce per applicazioni Mixed Signal, ovvero per quelle applicazioni che rappresentano il punto d´incontro tra il mondo analogico e digitale. Sebbene ci siano sul mercato diversi microcontrollori che supportano tali applicazioni gli MSP430 hanno qualcosa che li differenzia dagli altri prodotti, e che li rendono particolarmente attraenti. Sebbene in Italia gli MSP430 siano piuttosto sconosciuti i paesi che sono caratterizzati dall´avere centri di ricerca e sviluppo (e forse questo spiega perché in Italia non prendano piede, permettetemi questo piccolo sfogo) sanno che gli MSP430 rappresentano il punto di partenza per applicazioni embedded destinate ad essere alimentati a batteria.
Gli MSP430, diversamente da tutti i microcontrollori a 16bit presenti sul mercato vennero pensati sin dal principio con in mente i bassi consumi. I microcontrollori MSP430 richiedono talmente poca energia che potrebbero eseguire molte applicazioni con un´alimentazione proveniente da tre acini di uva!
L´essere stati pensati per applicazioni a bassi consumi permette di avere un´intera famiglia dalla quale poter selezionare il microcontrollore migliore, garantendo di poter ottimizzare la propria applicazione. Altri produttori di microcontrollori, sebbene si stiano avvicinando sempre più ai consumi della famiglia MSP430, possono offrire solo un numero ridotto di soluzioni. La Texas Instruments ha recentemente rilasciato una nuova famiglia di Microcontrollori MSP430 facente uso della memoria FRAM (Ferroelectric RAM) permettendo di abbassare ulteriormente i consumi in Active Mode (ovvero quando viene eseguito il codice) ed ampliare le applicazioni in cui poter utilizzare gli MSP430 (degli MSP430 con l´opzione FRAM, si parlerà successivamente).
Permettere ad una batteria di poter lavorare 10-20 anni non è banale (per maggior dettagli si veda la Brief Note BN0014 “Progettare sistemi embedded a batteria”. Raggiungere tali durate richiede caratteristiche tali per cui ogni modulo del microcontrollore deve essere caratterizzato dall´avere bassi consumi e non solo quando si disattiva il Microcontrollore (sebbene molte applicazioni operino in stato di sleep anche per percentuali 85%-95%). Tutti i necessari accorgimenti messi in evidenza nella Brief Note BN0014, sono implementati nella famiglia MSP430.
Famiglia MSP430 e relativi consumi
La famiglia MSP430 si divide in diverse sottofamiglie in particolare è presente la MSP430F1xxx, MSP430F2xxx, MSP430G2xxx, MSP430C3xxx, MSP430F4xxx, MSP430F5xxx, MSP430F6xxx. Da queste famiglie principali ci sono alcune sottofamiglie specifiche per alcune applicazioni tra cui la FRAM. Diversamente da quanto si possa pensare, le sottofamiglie non sono nate in ordine crescente e ogni sottofamiglia non rappresenta esattamente un modo per rendere obsolete le altre, per altro la Texas Instruments nella sua politica di supporto non rende obsolete le proprie parti.
La prima famiglia ad essere commercializzata è stata la famiglia MSP430C3xxx, caratterizzata dall´avere una memoria OTP (One Time Programmable memory) e ROM (Read Only Memory) programmate tramite maschere direttamente in fase di produzione del Chip. La C indica proprio il fatto che si ha anche fare con la memoria OTP o ROM. Nella stessa famiglia è possibile trovare anche versioni cancellabili con i raggi ultravioletti, ovvero i famosi dispositivi con la finestrella (EPROM). Queste varianti furono pensate per favorire la fase di prototyping (la sigla di questi MSP430 è PMS430E3xx, dove la prima P sta appunto per Protoyping e la E per EPROM). Sebbene i microcontrollori con memoria OTP non siano presenti nelle altre versioni la Texas Intruments offre la possibilità di richiedere la versione ROM di qualunque microcontrollore. Questo viene però fatto solo per grandi volumi, visto che la memoria ROM costa meno della memoria Flash. Per applicazioni che siano sensibili ai costi e in cui non sia richiesto aggiornare il Firmware, può risultare una opzione vantaggiosa. In ambito hobbystico o in fase di sviluppo le memorie OTP, UV EPROM, rappresentano una pessima scelta, visti i tempi di sviluppo richiesti. Per tale ragione quando la memoria Flash divenne una soluzione economicamente vantaggiosa in termini di vantaggi/costi (fine anni 90), fu introdotta la famiglia MSP430F1xxx, dove la F indica appunto che si ha a che fare con una memoria Flash.
Attualmente, Ottobre 2011, gli MSP430 supportano fino a 256KB di Flash, ma l´architettura della nuova famiglia exended MSP430X (indirizzamento a 20 bit piuttosto che a 16) supporta fino a 1MB di Flash. Dopo la famiglia MSP430F1xxx, è stata introdotta la famiglia MSP430F2xxx pensata quale ottimizzazione della precedente famiglia. La famiglia F2xxx, sebbene non sostituisca la F1xxx, possiede diversi modelli 1:1 compatibili con la versione F1xxx ma ad un costo inferiore. Dopo la versione F2xxx è stata introdotta la famiglia MS430F4xxx, che è praticamente uguale alla famiglia F2xxx ma introduce il modulo LCD per pilotare direttamente i display LCD. La famiglia ha introdotto anche il primo modello di microcontrollore con ADC Sigma delta a 16bit, recentemente introdotto anche nella famiglia MSP430AFE2xxx con una risoluzione a 24bit. Il convertitore Sigma delta avendo ingressi sia single ended che differenziali, si presta per una lettura diretta di sensori a ponte ovvero il cui segnale è differenziale. La versione AFE, che sta per Analog Front End, oltre a possedere la versione ADC Sigma Delta, possiede anche amplificatori operazionali a guadagno variabile, al fine di poter amplificare direttamente il segnale proveniente da un sensore (ovvero senza dover far uso di componenti esterni). In seguito è stata introdotta la famiglia MSP430F5xxx e MSP430F6xxx, analogamente alle versioni F2xxx e F4xxx, la differenza tra la famiglia F5xxx e la famiglia F6xxx risiede nella presenza o meno del modulo LCD (MSP430 è con il modulo LCD). L´architettura F5xxx (uguale a F6xxx) è stata ottimizzata per applicazioni che devono operare in Active Mode (ovvero che devono eseguire del codice) per tempi lunghi. Tale ottimizzazione è stata fatta anche per la recente famiglia MSP43FR57xx basata sull´architettura F5xxx ma utilizzante la memoria FRAM piuttosto che la memoria Flash. La famiglia F2xxx e F4xxx sono ottimizzate per applicazioni che devono operare in Sleep Mode gran parte del tempo, ovvero eseguire del codice solo per brevi tempi. Da circa un anno la Texas ha introdotto la Value Line, ovvero la famiglia MSP430G2xxx, caratterizzata dalla stessa architettura della famiglia F2xxx, basata anche essa su memoria flash, ma ottimizzata per avere costi comparabili con i microcontrollori a 8 bit (la G sta per Gate, ovvero porta…forse porta per entrare nel mercato 8 bit). Perciò se vi siete domandati se la Texas Instruments possieda microcontrollori a 8 bit, la risposta è no, ma possiede la famiglia value line che ha costi uguali a quelli dei microcontrollori ad 8 bit. Il vantaggio della famiglia Value Line, almeno dal punto di vista hobbystico è il fatto che i vari modelli sono stati introdotti con un package DIL (Duali In Line Package) ovvero utilizzabili su normali breadboard senza far stancare il nostro occhio o richiedere mani da chirurgo (le altre famiglie sfortunatamente non hanno il package DIL). Nel nostro percorso di studio verranno sviluppate applicazioni facendo prevalentemente uso della famiglia Value Line e del tool di sviluppo Launch Pad (tratterò tutto a breve). Per applicazioni più complesse farò uso delle Experimenter board.
Oltre alle famiglie appena introdotte ci sono alcune varianti parzialmente descritte. Di rilievo oltre a quelle accennate vie è la variante MSP430FW4xx ottimizzata per il Water metering (con periferica Scan Interface). La variante MSP430FE4xx con Front End analogico e ADC Sigma Delta. La variante MSP430FG4xx ottimizzata per Glucose Meter (la G della value Line, come detto non sta per Glucose). La variante MSP430C09x, caratterizzata dal poter funzionare con una sola batteria senza richiedere charge pump interni. Suo unico difetto è che per poter funzionare a tensioni cosi basse la memoria flash è sacrificata ed esiste solo la versione ROM. Si ricorda poi la variante CC430Fxxx, con modulo RF sub 1GHz. Il nome di questa variante discende dall´aver integrato in un unico chip il microcontrollore MSP430 con il transceiver CC1101 Sub 1GHz, la CC sta per ChipCon, ovvero la società scandinava acquisita nel 2006 dalla Texas Instruments.
Dopo questa carrellata d’informazioni vediamo un riassunto dei consumi e caratteristiche base che distinguono le varie famiglie:
Microcontrollori 16 bit della serie MSP430x1xx
Microcontrollore a 16 bit Ultra-Low Power basato su memoria Flash o ROM.
Frequenza di calcolo fino a 8 MIPS con tensioni operative da 1.8V a 3.6V. Memoria interna fino a 60 KB.
Ultra Low Power
- 0.1 uA RAM retention
- 0.7 uA real-time clock mode
- 200 uA / MIPS active
- Fast Wake-Up From Standby Mode in <6 us
Parametri
- Flash Options: 1 KB – 60 KB
- ROM Options: 1 KB – 16 KB
- RAM Options: 512 B – 10 KB
- GPIO Options: 14, 22, 48 pins
- ADC Options: Slope, 10 & 12-bit SAR
Altre periferiche integrate: Analog Comparator, DMA, Hardware Multiplier, SVS, 12-bit DAC
Microcontrollori 16 bit della serie MSP430F2xx
Microcontrollore a 16 bit Ultra Low Power basato su memoria Flash.
Frequenza di calcolo fino a 16 MIPS con tensioni operative da 1.8V a 3.6V. Memoria interna fino a 60 KB e un ampio range di periferiche intelligenti digitali. VLO (Very Low power Oscillator e opzione di resistori pull-up pull-down su ogni I/O pin.
Ultra Low Power
- 0.1 uA RAM retention
- 0.3 uA Standby mode (VLO)
- 0.7 uA real-time clock mode
- 220 uA / MIPS active
- Ultra-Fast Wake-Up From Standby Mode in <1 us
Parametri
- Flash Options: 1 KB – 120 KB
- RAM Options: 128 B – 8 KB
- GPIO Options: 10, 16, 24, 32, 48, 64 pins
- ADC Options: Slope, 10 & 12-bit SAR, 16-bit Sigma Delta
- Altre periferiche integrate:
- Analog Comparator, Hardware Multiplier, DMA, SVS, 12-bit DAC, Op Amps
Microcontrollori 16 bit della serie MSP430G2xx
Microcontrollore a 16 bit Ultra Low Power basato su memoria Flash ottimizzato per un basso costo.
Frequenza di calcolo fino a 16 MIPS con tensioni operative da 1.8V a 3.6V. Memoria interna fino a 16 KB e un ampio range di periferiche intelligenti digitali. VLO (Very Low power Oscillator e opzione di resistori pull-up pull-down su ogni I/O pin.
Ultra Low Power
- 0.1 uA RAM retention
- 0.4 uA Standby mode (VLO)
- 0.7 uA real-time clock mode
- 220 uA / MIPS active
- Ultra-Fast Wake-Up From Standby Mode in <1 us
Parametri
- Flash Options: 0.5 KB – 16 KB
- RAM Options: 128 B - 512 B
- GPIO Options: 10, 16, 24 pins
- ADC Options: Slope, 10 -bit SAR
- Altre periferiche integrate: Analog Comparator
Microcontrollori 16 bit della serie MSP430C3xx
Rappresenta la famiglia a 16 bit nominata legacy, basata su memoria ROM o OTP. I dispositivi operano in un range di tensioni da 2.5V a 5.5V e possiedono fino a 32 KB ROM. Frequenza di calcolo fino a 4MIPS.
Ultra Low Power
- 0.1 uA RAM retention
- 0.9 uA real-time clock mode
- 160 uA / MIPS active
- Fast Wake-Up From Standby Mode in <6 us
Parametri
- ROM Options: 2KB – 32 KB
- RAM Options: 512 B – 1 KB
- GPIO Options: 14, 40 pins
- ADC Options: Slope, 14-bit SAR
- Altre periferiche integrate: LCD controller, Hardware Multiplier
Microcontrollori 16 bit della serie MSP430x4xx
Microcontrollore a 16 bit Ultra-Low Power basato su memoria Flash.
Frequenza di calcolo fino a 8-16 MIPS con tensioni operative da 1.8V a 3.6V. Memoria interna fino a 120 KB e un ampio range di periferiche intelligenti digitali. VLO (Very Low power Oscillator e opzione di resistori pull-up pull-down su ogni I/O pin. Ideale per applicazione di Metering e medicali, grazie alla presenza del modulo LCD e front end analogico.
Ultra Low Power
- 0.1 uA RAM retention
- 0.7 uA real-time clock mode
- 200 uA / MIPS active
- Fast Wake-Up From Standby Mode in < 6 us
Parametri
- Flash/ROM Options: 4kB – 120 KB
- RAM Options: 256 B – 8 KB
- GPIO Options: 14, 32, 48, 56, 68, 72, 80 pins
- ADC Options: Slope, 10 &12-bit SAR, 16-bit Sigma Delta
- Altre periferiche integrate :
- LCD Controller, Analog Comparator, 12-bit DAC, DMA, Hardware Multiplier, Op Amp, USCI Modules
Microcontrollori 16 bit della serie MSP430x5xx MSP430x6xx
Microcontrollore a 16 bit Ultra-Low Power basato su memoria Flash, ottimizzato per bassi consumi in Active Mode.
Frequenza di calcolo fino a 25 MIPS con tensioni operative da 1.8V a 3.6V. Memoria interna fino a 256 KB e un ampio range di periferiche intelligenti digitali. VLO (Very Low power Oscillator e opzione di resistori pull-up pull-down su ogni I/O pin.
Ultra Low Power
- 0.1 uA RAM retention
- 2.5 uA real-time clock mode
- 165 uA / MIPS active
- Fast Wake-Up From Standby Mode in 3.5 us
Parametri
- Flash Options: up to 256 KB
- RAM Options: up to 16 KB
- ADC Options: 10 & 12-bit SAR
- Altre periferiche integrate:
- USB, Analog Comparator, DMA, Hardware Multiplier, RTC, USCI, 12-bit DAC
Quanto appena scritto rappresenta la versione Marketing associata al prodotto, ovvero quello che viene scritto sulla prima pagina. Sebbene come detto la famiglia MSP430 sia ottimizzata per bassi consumi e possa effettivamente rappresentare la soluzione ottimale per molte delle applicazioni low power, è bene sempre valutare anche altre soluzioni presenti sul mercato. Molti competitor, pur non riuscendo ad offrire una gamma di soluzioni ottimali vasta come per la famiglia MSP430, hanno in alcune applicazioni ottimizzato versioni particolari dei loro microcontrollori a tal punto che per applicazioni specifiche possono risultare la soluzione migliore. Come descritto nella Brief Note BN0014 “Progettare sistemi embedded a batteria”, nel bilancio energetico del sistema bisogna valutare diversi aspetti dei consumi senza farsi letteralmente abbindolare da numeri piccoli tipici e non garantiti! Vi renderete conto che conti tra le mani gli MSP430 potranno risolvere molte dei vostri problemi qualora dobbiate progettare sistemi Ultra low Power. Con una lettura attenta dei datasheet vi renderete conto che molti produttori mettono come valori tipici per i propri parametri quelli che per l´MSP430 rappresenta il caso peggiore, ovvero il valore massimo e non il valore tipico, normalmente più piccolo.
Voi siete i progettisti ed è vostra la responsabilità delle decisioni che prenderete.
Forum
Per qualunque domanda e chiarimento potete scrivere sul primo Forum in Italia dedicato agli MSP430.
Bibliografia
[1] : Home page dei microcontrollori MSP430 (Texas Instruments)
Capitoli del Corso MSP430
Corso |
Data |
|
Titolo |
|
|
||||
Parte I | 16-10-2011 | MSP430: Microcontrollori Ultra Low Power | ||
Parte II | 23-10-2011 | MSP430: Strumenti per Iniziare | ||
Parte III | 11-12-2011 | MSP430: Code Composer Studio e LaunchPad | ||
Parte IV- 1 | 15-04-2012 | MSP430: Architettura e periferiche Ultra Low Power (Parte 1) | ||
Parte IV- 2 | 22-04-2012 | MSP430: Architettura e periferiche Ultra Low Power (Parte 2) | ||
Parte V |
13-05-2012 | MSP430: Hello World | ||
Parte VI | 01-07-2012 | MSP430: Utilizzo ed impostazione delle Porte I/O | ||
Parte VII | 18-11-2012 | MSP430: Il modulo di distribuzione del Clock e modalità Ultra Low Power | ||
Parte VIII | 10-03-2013 | MSP430: Le interruzioni e le modalità Ultra Low Power | ||
Parte IX-1 | 13-10-2013 | MSP430: Utilizzo del Modulo Timer_A (Parte 1) | ||
Parte IX-2 | 13-10-2013 | MSP430: Utilizzo del Modulo Timer_A (Parte 2) | ||
...nuovi in arrivo...tieniti informato |
You don`t have permission to comment here!