Usare i microcontrollori da zero

Iniziare con i microcontrollori

Usare i microcontrollori è più semplice di quanto possiate pensare. Con uno starter kit economico e possibile iniziare subito con i microcontrollori. 3 di questi tools di sviluppo subito in omaggio!

Iniziare con i microcontrollori è molto semplice sia per l’hobbista che per lo studente che si avvicina per la prima volta al real-world! I concetti esposti in questo articolo valgono per tutti i microcontrollori programmabili (detti anche flash) che possono essere cancellati e riprogrammati con un semplice click di mouse 

Tali concetti sono validi sia per microcontrollori pic, che per microcontrollori avr, anche se nell’esempio userò microcontrollori freescale. Un minimo di teoria dovete averla, ma vi assicuro che passare dalla teoria alla pratica è facilissimo.

La prima cosa che dovete avere a mente è che l’hardware è lo schema elettrico con il microcontrollore ed il firmware è il programma, da voi scritto, che gestisce il microcontrollore e che il sistema di sviluppo comprende un software per PC (in questo caso il Codewarrior) che comunica con una scheda di sviluppo (in questo caso Spyder USB) in grado di programmare il microcontrollore ed eseguire istruzione per istruzione il firmware (programma per microcontrollers). In questo modo una volta scritto il firmware in assembler oppure in linguaggio c, potete verificarne passo passo il funzionamento (debug).
E’ sicuramente piu semplice a farsi che a dirsi!

Esempio accensione led con microcontrollore: se dovete accendere un led dovrete operare sia a livello hardware che a livello software (firmware). Hardware microcontroller: collegare un pin del microcontrollore ad una resistenza e poi la resitenza ad un led collegato poi a massa (gnd), il valore della resistenza dovrà essere calcolato in base alla tensione di uscita del pin del micro, per ora considerate R=1K.Firmware: per semplicità lanciare uno dei firmware demo, già con tutte le configurazioni per il microcontrollore usato e scrivere l’istruzione in assembler o C che attiva il pin della porta dove abbiamo collegato il led. Attivare un pin, significa metterlo a on, quindi significa metterlo a 1 logico e quindi in uscita si avrà la stessa tensione di alimentazione del microcontroller, in genere 5V oppure 3,3V. Tale tensione, attraverso la resistenza di prima, permetterà lo scorrere della corrente nel circuito ed il LED si accenderà!
Vi assicuro che fate prima a farlo che a leggere quanto scritto 

Schema elettrico dello Starterkit per microcontrollori

Emulatore real-time per microcontroller

Tramite lo schema proposto potete realizzare la vostra applicazione sfruttando il connettore I/O e costruendo su di esso il vostro schema, che può essere anche una resistenza ed un led.
Nel nostro caso, sfrutteremo il led già a bordo della scheda di sviluppo usb. Infatti come potete verificare, il led è collegato al pin 0 della porta A denominato PTA0.

Programma del kit di sviluppo per microcontrollori

Una volta scricato il programma Codewarrior (gratuito) dal sito Freescale, potete fare delle simulazioni, oppure installare anche il plugin per lo spyder usb, disponibile nella confezione con il kit.
Una volta lanciato il Codewarrior dovete caricare il progetto demo.mcp e poi avviare il debug tramite l’icona con la freccia verde e partirà il real-time debug per avere il pieno controllo del microcontrollore. Ecco un esempio semplice semplice di codice scritto in linguaggio c per far lampeggiare un led, il led montanto sul pin PTA0, appunto. 


/////////////////////////////////////////////////////////////////////////////////////////
// MAIN
// 
///////////////////////////////////////////////////////////////////////////////////////
void main(void)      //la parte principale del programma, il main
{
  unsigned int i;    // definisco la variabile i

  EnableInterrupts;  // abilito gli interrupt
  PeriphInit();      // abilito gli interrupt da periferica, mi serve per il timer
  
  for(;;)            // ciclo infinito, il programma rimane sempre qui dentro
  {    
    PTAD ^= 0x01;    // cambio stato al pin, se era 1 diventa 0 e viceversa

        for (i=0; i<DELAY_TIME; i++)   // ciclo definito dal DELAY_TIME
      Delay_100us(10);  // 1 ms delay
  }  // ottengo un ritardo di 1/2 secondo
}    // quindi il led lampeggerà ogni 1/2 secondo (500mS)

Facile no! Ora puoi modificare il firmware a tuo piacere, riprogrammare il micro, testare passo passo il codice da te scritto con semplici comandi, come START (F5) SINGLE STEP (F11) HALT (F6) RESET

Ti invito anche a leggere alcuni articoli tecnici di approfondimento

http://it.emcelettronica.com/recensione-spyder-kit-usb-freescale

http://it.emcelettronica.com/iniziare-con-codewarrior-ide-della-freescale

Inizia subito a sperimentare, puoi farlo con il sistema che vuoi, questi concetti sono universali, oppure provare a vincere uno starterkit USB Spyder! Ecco come:

Come iniziare con i microcontrollori

Vuoi ricevere gratuitamente uno dei 3 Starter Kit USB per Microcontrollori? Dimmi perche? E perche ti piace L’Elettronica e L’Elettronica Open Source!
Ma dimmelo tramite il tuo blog!

1) Scrivi un post nel tuo blog

2) Condividi il post con i tuoi amici di Facebook, Twitter e Linkedin

3) Segnalami quanto fatto tramite il modulo contact del mio profilo

I 3 migliori verranno premiati con uno starterkit usb, che riceverete direttamente al vostro indirizzo, spese di spedizione comprese! Non hai un blog? Leggi qui!

Allora, se vuoi imparare in pochissimo tempo ad usare i microcontrollori, e ricevere una chiavetta usb starterkit in omaggio, non aspettare, corri subito a scrivere sul tuo blog!

ATTENZIONE: per accontentare il maggior numero di utenti possibile, a questo contest NON possono partecipare i 5 vincitori di FTPmicro della scorsa settimana. Perdonatemi, ma con tutti i premi che abbiamo messo e che metteremo in palio nei prossimi giorni, saprò farmi perdonare  

STAMPA    

30 Comments

  1. Emanuele 6 giugno 2011
  2. Ionela 7 giugno 2011
  3. monoblocco 7 giugno 2011
  4. Emanuele 8 giugno 2011
  5. Ionela 9 giugno 2011
  6. mirko74 9 giugno 2011
  7. Emanuele 9 giugno 2011
  8. Ionela 13 giugno 2011
  9. Bazinga 31 maggio 2011
  10. Emanuele 31 maggio 2011
  11. DRK 31 maggio 2011
  12. Giovanni Giomini Figliozzi 16 giugno 2011
  13. Giovanni Giomini Figliozzi 31 maggio 2011
  14. toni93 16 giugno 2011
  15. StratoFranz 31 maggio 2011
  16. toni93 31 maggio 2011
  17. Emanuele 31 maggio 2011
  18. Emanuele 31 maggio 2011
  19. Emanuele 31 maggio 2011
  20. Trimix63 31 maggio 2011
  21. Emanuele 31 maggio 2011
  22. testato 31 maggio 2011
  23. Emanuele 31 maggio 2011
  24. Trimix63 31 maggio 2011
  25. Emanuele 31 maggio 2011
  26. brazov2 31 maggio 2011
  27. Emanuele 31 maggio 2011
  28. Emanuele 1 giugno 2011

Leave a Reply