MSP430: Strumenti per Iniziare

Valutazione attuale: 4 / 5

Ogni qual volta si debba iniziare a utilizzare un nuovo microcontrollore, ci si trova di fronte ad una serie di difficoltà che fortunatamente sono sempre le stesse. Qualora si potesse passare del tempo con qualcuno che ha già iniziato a sviluppare software con un determinato microcontrollore, con pochi minuti si riuscirebbe a imparare quello che normalmente richiederebbe giorni interi (notti incluse). In questa parte del corso descriveremo tutti gli strumenti necessari per iniziare a sviluppare del software con i microcontrollori MSP430.

MSP430: Software di sviluppo

I microcontrollori rappresentano una soluzione tecnica che richiede lo sviluppo sia di hardware sia di software. In questo paragrafo descriveremo le varie soluzioni che sono disponibili al fine di sviluppare software.
Gli MSP430, come già accennato, sono stati progettati con numerosi registri interni general purpose (uso generico) al fine di favorire possibili ottimizzazioni da parte del compilatore. Si capisce quindi, che sebbene il microcontrollore sia facilmente programmabile anche in Assembly è ottimizzato per linguaggi ad alto livello come il C. Tra gli ambienti di sviluppo principali è bene ricordare Code Composer Studio (CCS), rilasciato dalla stessa Texas Instruments (TI) e IAR rilasciato dalla IAR Systems. Code Composer Studio è possibile scaricarlo dal seguente link.  
Sono presenti varie versioni, dalla versione 4 Code Composer Studio è basato sull´IDE Eclipse. Dalla versione 5, attualmente in versione Beta, ma ormai prossima al rilascio, CCS supporta anche il sistema operativo Linux.
Code Composer Studio integra un completo ambiente di sviluppo e permette di programmare e fare Debug di applicazioni scritte sia in Assembly che in C. Non possiede il simulatore ma permette di fare il Debug dell'applicazione sfruttando direttamente il modulo EEM (Embedded Emulation Module) interno agli MSP430. Code Composer Studio rappresenta la piattaforma di sviluppo della Texas Instruments per mezzo della quale è possibile programmare non solo gli MSP430 ma anche gli altri microcontrollori TI, quali la famiglia Stellaris basata su Core ARM M3 e M4, la famiglia C2000 nonché i processori high hand C54x, C55x, C6000, DaVinci, TMS470, TMS570, Sitara e OMAP. Code Composer Studio è possibile scaricarlo in due versioni, quella Platinum, ovvero completa ma con un periodo di prova di 60 giorni, o la versione Code Size Limited (Dimensione del codice limitata). Questa seconda licenza pur avendo tutte le funzionalità attive, permette di scrivere codici per un massimo di 16KB. Come visto la linea Value Line MSP430G2xxx possiede al massimo 16KB di flash, il che significa che tale famiglia, che verrà per altro presa come riferimento in questo corso, può essere programmata senza alcun limite. Oltre al Code Composer Studio è possibile usare l´ambiente di sviluppo IAR scaricabile dal seguente link.
Anche in questo caso sono presenti due versioni. La versione full, scaricabile gratuitamente, ha una licenza valida solo per 30 Giorni (alcune evaluation board TI aggiungono ulteriori 30 giorni per un totale di 60 giorni). La seconda versione disponibile (KickStart Edition) ha un limite sulle dimensioni del codice; fino a 4KB per gli MSP430 standard, tra cui la Value Line, e 8KB per gli MSP430X ovvero con architettura estesa (maggiori dettagli tra le due diverse architetture verranno forniti nella parte del corso dedicata all'architettura, in ogni modo a solo scopo di chiarimento, gli MSP430 con memoria maggiore di 64KB sono automaticamente con architettura MSP430X). Programmi in Assembly possono essere scritti senza limite sulla dimensione del codice, ma per applicazioni complesse può essere poco pratico.
Il vantaggio principale di IAR sta nel fatto che oltre al Debug possiede anche il Simulatore, cosa utilizzata da diversi sviluppatori di software. Altro vantaggio del compilatore IAR è quello di ottenere, mediamente, un livello di ottimizzazione del codice compilato, migliore rispetto al CCS. Questo discende prevalentemente dal fatto che gli investimenti effettuati da IAR, essendo una società che vende software sono mirati per ottenere performance migliori. Avere un codice ottimizzato può permettere di utilizzare microcontrollori con meno memoria Flash (più economici) e permette per una medesima applicazione di eseguire meno linee di codice, quindi permette di risparmiare cicli di clock, ovvero energia (sebbene tali affermazioni siano valide in generale, dovrebbero essere verificate applicazione per applicazione). Questo potrebbe essere un aspetto particolarmente importante in applicazioni che devono essere alimentate a batteria (per maggiori informazioni si veda la Brief Note BN0014 “Progettare sistemi embedded a batteria”). Sebbene IAR non sia un tool ufficiale il suo supporto per il programmatore di TI è praticamente come per il CCS (usano lo stesso driver) per cui non bisogna temere che IAR non abbia tool aggiornati.
La Texas Instruments fornisce molti esempi per ogni microcontrollore sia scritti per l´ambiente di sviluppo IAR che CCS.
IAR oltre a supportare gli MSP430, supporta altri microcontrollori di varie marche, tra cui Microchip, Atmel, ST, Renesas, Freescale, EnergyMicro e altri. Questo permette ai team di sviluppo che fanno uso di microcontrollori di diversi produttori di utilizzare un unico ambiente di sviluppo. Lo svantaggio di IAR è forse solo uno, ovvero il prezzo, generalmente maggiore rispetto ai prodotti offerti dalle stesse case produttrici di microcontrollori.  
Nel seguente corso utilizzerò il CCS poiché permette di programmare la famiglia Value Line senza alcun limite. La versione del CCS sarà la versione 5.1 anche se in versione Beta (ma ormai prossima al rilascio). La versione CCS 5.x differisce dalla CCS 4.x per pochi aspetti, per cui il passaggio dall´una all´altra versione è piuttosto indolore. Ciononostante alcuni aspetti delle impostazioni, almeno da un punto di vista grafico sono cambiati, per tale ragione al fine di non rendere obsoleti gli screen shot  farò uso dell'ultima versione (maggiori informazioni verranno date nella successiva parte del corso dedicata all'impostazione dei vari strumenti di lavoro).
Oltre al CCS e IAR ci sono tool non ufficiali supportati dalla community intorno agli MSP430. In particolare ci sono compilatori Open Source e Sistemi operativi Real Time. A proposito dei sistemi operativi Real Time è bene ricordare SYS/BIOS della stessa TI.

Tale sistema operativo è compatibile sia con gli MSP430 che con altri microcontrollori TI ed è gratuito. Nella versione CCS 5.x può essere selezionato per essere  installato assieme l´IDE.
Oltre ai tool ora descritti, dal momento che utilizzerò CCS e gli MSP430 della Value Line,  è bene ricordare GRACE Tool (Graphical Peripheral Configuration Tool) disponibile come plug  per CCS 4.x mentre è  integrato nel pacchetto d'installazione di CCS 5.x. Questo Tool permette d'impostare il microcontrollore facendo uso di uno strumento grafico. Un esempio d´impostazione del TimerA è riportato in Figura 1.

 

Esempio di utilizzo del Tool di sviluppo GRACE

Figura 1: Esempio di utilizzo del Tool GRACE.


GRACE permette d´iniziare la programmazione degli MSP430 senza dover conoscere in dettaglio le periferiche interne e le loro impostazioni. Sfortunatamente non è ancora disponibile per le altre famiglie, ma dal momento che faremo uso prevalentemente della serie Value Line questo non comporterà un grande disagio. In ogni modo al fine d´insegnare l´architettura degli MSP430, escluso qualche esempio, non farò molto uso del tool GRACE. Ciononostante tale strumento può tornare utile quale supporto nella scelta delle impostazioni delle periferiche.
I software appena descritti rappresentano l´ambiente di sviluppo base per iniziare a programmare gli MSP430. Oltre a questi bisogna ricordare che la scelta del microcontrollore giusto è anche una fase importante visto che bisogna cercare il microcontrollore che abbia la combinazione giusta delle periferiche, memoria, packaging. Questo è possibile comodamente farlo per mezzo del Tool online Product Search, riportato in Figura 2.

 

Product Search per MSP430

Figura 2: MSP430 Product Search.

Per mezzo di questo strumento è possibile selezionare le periferiche d´interesse e vedere la lista dei microcontrollori che soddisfano i vincoli imposti.

MSP430: Hardware per lo sviluppo

Oltre ad avere una buona piattaforma software per lo sviluppo, l´hardware è altrettanto importante. Poter iniziare a sviluppare senza doversi preoccupare troppo delle connessioni e problematiche associate alla realizzazione di una scheda di sviluppo, permette di risparmiare molto tempo, cosa che spesso si traduce anche in denaro. La Texas Instruments produce diverse schede di sviluppo al fine di supportare la famiglia MSP430 (Il programmatore verrà introdotto nel prossimo paragrafo).
Le schede più complete sono le cosiddette Experimenter board. In questo momento sono presenti tre diverse tipologie:
Experimenter Board MSP430FG4618/F2013 riportata in Figura 3. Possiede il microcontrollore MSP430FG4618 già montato sulla scheda e il modello MSP430F2013 quale supporto per applicazioni CapTouch (il grosso 4 sulla scheda è composto da vari elementi capacitivi). Questa scheda risulta utile nei casi in cui si voglia far uso del modulo LCD. La scheda, tra il vario hardware a bordo, fornisce la porta seriale, il microfono, il connettore per i moduli RF ChipCon e sensori CapTouch (sensori capacitivi). Richiede il programmatore FET al fine di poter programmare e testare le applicazioni sviluppate. Per maggiori informazioni fare riferimento alla documentazione ufficiale.

Experimenter Board modello MSP430FG4618/F2013

Figura 3: Experimenter Board modello MSP430FG4618/F2013.


La seconda Eperimenter Board è  l'MSP-EXP430F5438 (Figura 4), pensata per il microcontrollore MSP430F5538, ma diversamente dalla scheda precedente il microcontrollore non è montato direttamente sulla scheda; è infatti presente un connettore ZIF al fine di agevolare un suo cambio. La scheda possiede la porta USB ottenuta tramite il bridge seriale-USB della Texas (TUSB3410) che permette di emulare la porta USB per mezzo di una porta seriale (ovvero utilizzando la classe CDC). La scheda possiede anche un display LCD grafico. Questo non è comandato direttamente dal microcontrollore, infatti il modulo LCD possiede un controllore proprio, con il quale l´MSP430 comunica via SPI. La scheda possiede come la precedente il microfono e il jack audio e il connettore di espansione per moduli RF ChipCon. La scheda richiede il programmatore FET al fine di programmare e testare le applicazioni sviluppate. Per maggiori informazioni fare riferimento alla documentazione ufficiale.

Experimenter Board modello MSP-EXP430f5438

Figura 4: Experimenter Board modello MSP-EXP430f5438.


L´ultima scheda di sviluppo della famiglia Eperimenter Board, è la MSP-EXP430F5529 (Figura 5) pensata per applicazioni USB e con sensori capacitivi. Oltre alle periferiche precedenti possiede USB nativa (in alto a destra) e USB emulata (in basso a sinistra), il Display grafico LCD, slot per memorie SD e periferiche analogiche varie. La scheda non richiede il programmatore FET (comunque utilizzabile), possiede infatti il modulo di programmazione e Debug incorporato (angolo basso a sinistra della scheda). Per maggiori informazioni fare riferimento alla documentazione ufficiale.

Experimenter Board modello MSP-EXP430F5529

Figura 5: Experimenter Board modello MSP-EXP430F5529.


Oltre alle schede appena descritte, sono presenti altre schede a basso costo, specifiche per determinate applicazioni. In particolare la scheda con la quale inizierà l´avventura con gli MSP430 è il LaunchPad il cui costo in America è 4.30 Dollari (meno di 4 Euro)! La scheda, riportata in Figura 6, possiede sia il programmatore che il Debugger, per cui non richiede il programmatore FET.

Scheda di sviluppo LaunchPad

Figura 6: Scheda di sviluppo LaunchPad.


Il KIT di sviluppo è fornito con due microcontrollori della serie Value Line, che possono essere facilmente scambiati grazie allo zoccolo DIL. La scheda grazie alla presenza del Debugger ha la possibilità di utilizzare il modulo USB qualora non si stia in fase di Debug. Sebbene la scheda sia piuttosto essenziale (molto simile ad Arduino) si presta bene per lo studio iniziale degli MSP430, infatti poche sono le periferiche che saranno sacrificate (per le quali farò uso delle altre schede di sviluppo).  La scheda di sviluppo LaunchPad sebbene sia la più piccola della famiglia, possiede una community che  condivide diversi progetti sviluppati.  È presente anche una Wiki Page, dalla quale poter partire ad attingere informazioni e spunti applicativi.


Le schede ora presentate sono solo una piccola parte di quelle offerte dalla Texas Instrument. Altre informazioni e dettagli possono essere trovate alla seguente pagina.

Oltre a questi tool ce ne sono altri dedicati ad applicazioni RF, forse tra i più interessanti si ricorda l´EZ430 Chrono,

sviluppato con la famiglia CC430 ovvero con l'MSP430 con RF transceiver incorporato. In ultimo si ricordano le varie schede della famiglia EZ430 (da leggersi easy 430) per applicazioni Zigbee, Bluetooth, sub 1GHz, 2.4GHz e le Trget board. Quest'ultima scheda è presente per ogni microcontrollore e rappresenta una semplice scheda di sviluppo con zoccolo ZIF dove ogni pin viene riportato in uscita e la possibilità di attaccare il programmatore FET direttamente sulla scheda.
Oltre alla Texas Instruments, tra i più grandi fornitori di schede di sviluppo basate su MSP430 si ricorda la Olimex.

MSP430: Programmatore per lo sviluppo

Diversamente da molti produttori di microcontrollori, gli MSP430, essendo utilizzati prevalentemente in ambito professionale, non sono caratterizzati dall´avere una miriade di programmatori fatti in casa. Gli MSP430 sono supportati da un “unico” programmatore della Texas Instruments noto come programmatore FET (Flash Emulation Tool) riportato in Figura 7, presente sia in versione USB che per porta parallela.

 

Programmatore FET per MSP430

Figura 7: Programmatore MSP430 (FET Programmer).


E´possibile acquistarlo direttamente dall'eStore Texas alla seguente pagina.
Il programmatore fa uso dell'interfaccia JTAG e permette di programmare tutta la famiglia MSP430. E´ in particolare supportato sia dall'ambiente di sviluppo CCS che IAR. Infatti la TI fornisce i driver per il programmatore, per cui altri fornitori di ambienti di sviluppo hanno sempre garantita la possibilità di fornire strumenti di sviluppo al passo della stessa TI. Oltre al CCS e IAR è presente il programma, FET-pro430 della Elprotronic che permette, nella sua versione gratuita Lite, di programmare gli MSP430 facendo uso direttamente del file .hex. Normalmente il file .hex non viene generato da CCS dopo la compilazione di un programma, ma l´ambiente di sviluppo può essere impostato per farlo. L´utilità di quest’applicazione la si apprezza soprattutto quando ci si trova in una fase di produzione o semplicemente voler leggere il contenuto di un microcontrollore (qualora non sia protetto da lettura). Il programma può essere scaricato alla seguente pagina. Una schermata di esempio è riportata in Figura 8.

 

Schermata principale del programma FET-Pro430 della Elprotronic.

Figura 8: Schermata principale del programma FET-Pro430 della Elprotronic.


Il programma della Elprotronic fa uso del driver ufficiale del programmatore FET, per cui anche in questo caso non ci sono problemi di compatibilità.
A supporto della produzione vie è anche il programmatore GANG, il quale permette di programmare più MSP430 in parallelo, favorendo una produzione di massa. Anche questo secondo programmatore è fornito dalla stessa TI. TI fornisce sia per il programmatore FET, versione USB che versione porta parallela, lo schema elettrico. Per tale ragione è possibile trovare in commercio anche dei cloni perfettamente funzionanti. Probabilmente tra i cloni più famosi vi è quello della Olimex, visto che è esteticamente uguale.
Il programmatore FET, oltre a funzionare come programmatore, fornisce la possibilità di eseguire anche il Debug del programma, ovvero permette la lettura/scrittura del modulo di Debug interno agli MSP430 (EEM, Embedded Emulation Module).
 

Applicazioni ed esempi per gli MSP430

I microcontrollori MSP430 possiedono molti programmi di esempio già scritti per diverse applicazioni. La pagina principale dalla quale partire è la seguente.

I codici di esempio sono scaricabili direttamente dalla pagina di ogni microcontrollore nella Tabella “Software and Development Tools”. In questa Tabella sono elencati i principali tool a supporto del microcontrollore scelto, tra cui appunto i sorgenti di esempio raccolti in un file ZIP. Gli esempi sono sviluppati in Assembly, CCS e IAR. A partire dalla versione CCS 5.x con l'installazione dell'ambiente di sviluppo viene installato anche MSP430ware, ovvero la raccolta degli esempi per gli MSP430. Per mezzo di CCS è possibile direttamente navigare tra gli esempi degli MSP430 come anche tra altre risorse.
Dalla pagina principale di ogni microcontrollore è possibile scaricare il datasheet e la User Guide della famiglia.
I datasheet degli MSP430 sono organizzati in maniera piuttosto essenziale, ovvero solo con le specifiche tecniche che caratterizzano il componente, ovvero senza la spiegazione delle periferiche. Il funzionamento delle periferiche è rimandato alla User Guide. Ogni famiglia MSP430 possiede una propria User Guide, questa oltre ad essere scaricabile direttamente dalla pagina del microcontrollore scelto, può essere scaricata anche nella pagina in cui sono raccolte tutte le User Guide relative agli MSP430.

In questa pagina, è possibile trovare anche i documenti relativi agli strumenti di sviluppo utili per la programmazione degli MSP430.
Altro link molto utile è quello delle Application Notes ovvero documenti che trattano particolari argomenti di interesse comune. Le Application Notes sono spesso interi progetti corredati da sorgenti, che permettono di risolvere problemi interessanti ed utili. Le Application Notes è possibile trovarle alla seguente link.
 

Supporto Tecnico MSP430

Sebbene in Italia il microcontrollore MSP430 non sia molto noto, la comunità mondiale è piuttosto attiva, per cui in Forum di lingua inglese è possibile trovare molte informazione. Il sito LaurTec è probabilmente l´unico Forum che può fornire supporto in italiano ed è l´unico con la sezione dedicata agli MSP430 (aperta a supporto di questo corso).
TI fornisce in maniera ufficiale supporto ai clienti per mezzo del Centro di Supporto Europeo, o per mezzo del Forum e2e (Engineer to Engineer) ovvero della sua Community. Il Forum è frequentato da molte persone esperte e dal personale TI stesso.

 

Riassumendo

Dopo questa carrellata di informazioni dovreste avere delle basi sufficienti per cercare in maniera consapevole ulteriori informazioni e cominciare ad indagare con maggior facilità il mondo degli MSP430.
Nella prossima parte del corso fornirò le basi per installare ed iniziare ad utilizzare i vari strumenti.

 

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)

[2] : Scarica Code Composer Studio

[3] : Scarica IAR KickStart Edition

[4] : Scarica SYS/BIOS Real Time Operative System per MSP430

[5] : Wiki Page per il LaunchPad

 

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!

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login