giovedì 10 luglio 2014

Arduino Tutorial 17: Arduino standalone upload bootloader

Innanzitutto dobbiamo sapere che per caricare uno sketch sul nostro ATmega328 non abbiamo necessariamente bisogno del bootloader precaricato perché adoperando un programmatore adatto per il nostro microcontrollorepossiamo tranquillamente fare l'upload del nostro sketch, ma ci sono dei pro e dei contro a fare l'upload di uno sketch senza bootloader, la cosa positiva è che senza bootloader andiamo a risparmiare un pò di memoria quindi i nostri sketch possono arrivare a qualcke KB in più, di contro però perdiamo la possibilità di poter usare la porta seriale e quindi di poter comunicare con il serial monitor e di conseguenza non poter leggere dati o inviarli da tasitera.

Per quanto riguarda i metodi di upload di uno sketch o del bootloader possiamo distinguere diversi casi, ad esempio utilizzando un programmatore adatto per il nostro microcontrollore (che non tratteremo in questo articolo) e, un altro metodo è usare Arduino come programmatore caricando un sketch denominato ArduinoISP e quindi poi procedere con l'upload del bootloader o dello sketch sul microcontrollore.
Dobbiamo tenere ben presente che fare l'upload di uno sketch con la stessa procedura del bootloader lo sketch andrà a sovrascrivere il bootloader, ma possiamo procedere con due metodi diversi per evitare che ciò accada.
Il primo è togliere il microcontrollore dalla scheda Arduino e metterci sù il nostro ATmega328 con il bootloaderappena caricato (ma io questa procedura ve la sconsiglio perché andrete solo a dananggiare ATmega ed il socket di Arduino).
Un secondo metodo è quello di utilizzare un convertitore USB-Seriale (che è il metodo che io utilizzo e ve lo consiglio per praticità oltre a quanto detto prima!!!).

Come al solito con Arduino è molto più facile a farsi che a dirsi, quindi procediamo!!!


Collegate Arduino al pc e caricate lo sketch ArduinoISP indicato in figura in modo da trasformare temporaneamente il nostro Arduino in un programmatore.



adesso selezioniamo Arduino come programmatore


successivamente indichiamo come board Arduino Uno in modo da caricare il bootloader di Arduino Uno


ok, adesso scolleghiamo il nostro Arduino e chiudiamo l'IDE e procediamo con i collegamenti illustrati in figura traArduino ed il nostro ATmega328



fatto ciò ricolleghiamo il nostro Arduino al pc con i collegamenti appena fatti e procediamo con il caricamento del bootloader


perfetto, il nostro ATmega328 adesso è bello pronto con il bootloader caricato!!
Ma ricordate cosa abbiamo detto in precedenza????? Per caricare uno sketch e mantenere il bootloader dobbiamo staccare l'ATmega di Arduino e collegarci quello con il bootloader appena caricato e poi procedere al caricamento dello sketch (ma ripeto di nuovo che questa procedura può danneggiare socket e ATmega dell'Arduino) quindi vediamo come poter caricare il nostro sketch tramite un convertitore USB-Seriale


Convertitore USB-Seriale alla mano vediamo come collegarlo al nostro ATmega328 standalone:
  • collegare il piedino DTR del convertiore con il piedino di reset dell'ATmega tramite condensatore da 100nF
  • collegare il piedino RX del convertiore con il piedino di TX dell'ATmega
  • collegare il piedino TX del convertiore con il piedino di RX dell'ATmega
  • collegare rispettivamente Vcc e Gnd


dopo i collegamenti bisogna reimpostare da IDE il programmatore da utilizzare per il caricamento degli sketch come da immagine



perfetto adesso possiamo caricare il nostro sketch mantenendo il bootloader caricato in precedenza!!!!

p.s.
quando si utilizza Arduino come programmatore, può succedere che durante il caricamento del bootloader o di un sketch salti fuori un errore di sincronizzazione, spesso si risolve collegando un condensatore elettrolitico da 10µF o 22µF tra i 5V ed il reset di Arduino, collegando la parte negativa del condensatore su reset e la parte positiva sui 5V


Se avete dei problemi a far funzionare il circuito commentate o scrivete sul forum.

Nessun commento:

Posta un commento

Commenta