Come installare un bootloader Arduino

Come installare un bootloader Arduino

L’installazione di un bootloader è il primo passo per dare vita ai tuoi progetti Arduino. Questo è un software che ti aiuta a caricare frequentemente gli schizzi di Arduino con facilità sulla scheda senza la necessità di speciali apparecchiature di programmazione.

Anche se questo può sembrare scienza missilistica, in realtà è più semplice di quanto si possa pensare, anche per i principianti. Ti mostreremo come installare (o reinstallare) facilmente un bootloader sulla tua scheda Arduino in pochi semplici passaggi.

Ma prima, cos’è esattamente un bootloader sulla scheda Arduino?

Che cos’è un bootloader?

Un bootloader Arduino è un piccolo programma memorizzato nella memoria non volatile della scheda che viene eseguito ogni volta che la scheda viene accesa, caricata con un nuovo codice o ripristinata. Ogni volta che viene eseguito il programma bootloader, inizializza l’hardware della scheda e quindi carica lo sketch o il programma principale memorizzato nella memoria flash della scheda.

Vale la pena notare che tutte le schede Arduino vengono fornite con un bootloader preinstallato dai rispettivi produttori. A volte potresti trovare schede con bootloader difettosi appena fuori dalla scatola. Tuttavia, questo accade raramente.

Perché utilizzare un bootloader?

Esistono diverse situazioni in cui l’utilizzo di un bootloader Arduino può essere utile. Ad esempio, se sei un principiante della piattaforma Arduino, l’utilizzo di un bootloader può rendere più facile e veloce il caricamento di nuovi programmi sulla tua scheda. Questo perché non è necessario utilizzare dispositivi di programmazione esterni, come un programmatore o un convertitore da USB a seriale, per caricare il codice.

Se stai lavorando a un progetto che richiede frequenti aggiornamenti del codice, lo troverai molto utile. In questo caso, l’utilizzo di un bootloader può farti risparmiare tempo e fatica, in quanto puoi semplicemente caricare il nuovo codice sulla scheda senza dover utilizzare dispositivi di programmazione esterni.

Inoltre, se stai lavorando a un progetto che richiede che Arduino si trovi in ​​uno stato specifico quando è acceso, come l’esecuzione di un particolare programma, può essere utile utilizzare un bootloader. Il bootloader consente di impostare lo stato iniziale della scheda in modo che eseguirà automaticamente il programma desiderato all’accensione.

Infine, fornisce un modo per recuperare Arduino se lo schizzo principale viene danneggiato o altrimenti non riesce a funzionare.

Perché manca il mio bootloader?

Errore Immagine con 1 e 0 verdi.

Potrebbero esserci quattro possibili motivi per cui la tua scheda potrebbe aver bisogno di un nuovo bootloader:

  1. Nessun bootloader preinstallato : è abbastanza comune avere molti progetti autonomi ATMEGA328P in cui si salda il chip su un PCB e capita di friggere il chip. Potrebbe quindi essere possibile sostituire la scheda con un chip senza una precedente installazione del bootloader.
  2. Bootloader sostituito : potresti aver sostituito il tuo bootloader con un bootloader di terze parti modificato che potrebbe essere danneggiato.
  3. Bootloader danneggiato : questo è lo scenario meno probabile. Tuttavia, in alcuni casi, la memoria flash di Arduino può essere danneggiata.
  4. Memoria estesa : se hai sostituito (flash) l’intero bootloader con la tua applicazione per goderti i restanti 2K di memoria del programma, il tuo bootloader è decisamente mancante.

Ecco cosa devi fare.

Installazione/reinstallazione di Arduino Bootloader

I microcontrollori sono generalmente programmati prima di essere saldati su un PCB. Ciò viene in genere eseguito utilizzando la programmazione in-system (ISP), come la programmazione seriale in-circuit (ICSP), che consente di programmare il microcontrollore utilizzando un programmatore esterno. Molti produttori di microcontrollori, come Atmel e Microchip, forniscono un’intestazione ISP sulle loro schede per questo scopo.

Utilizzo di un’altra scheda Arduino

Per eseguire il flashing del bootloader su un microcontrollore ATmega328, è necessario utilizzare l’intestazione ICSP sulla scheda prima di poter installare il bootloader utilizzando l’altra scheda come programmatore ISP.

Avvia l’IDE di Arduino, vai su ArduinoISP come mostrato di seguito e carica il codice di esempio sulla scheda che intendi utilizzare come programmatore. (Segui il video tutorial per il collegamento hardware).

Schermata dell'IDE di Arduino che naviga su File>>Esempi>>ArduinoISP>>ArduinoISP

Il codice dovrebbe assomigliare a questo solo per sapere che sei sulla strada giusta.

Codice di esempio Arduino-IDE per ISP

Dalla scheda Strumenti , vai su Programmatore quindi fai clic su Arduino come ISP come mostrato di seguito.

Screenshot di Arduino-IDE navigation Tools>>Programmer>>Arduino as ISP

Infine, sempre dalla scheda Strumenti , fai clic su Masterizza Bootloader come mostrato.

Screenshot di Arduino-IDE che naviga attraverso Strumenti>>Burn Bootloader

Una volta completato il processo, la scheda target è ora pronta per essere programmata.

Utilizzo di un programmatore dedicato

Sono disponibili molti dispositivi di programmazione AVR per questo tipo di installazione. Una buona opzione che puoi provare è AVR Pocket Programmer (solo Windows) basato su USBtiny di Dick Streefland e USBtinyISP di Limor Fried . Offre un modo più semplice per programmare i microcontrollori AVR, come quelli che si trovano sulle schede Arduino. Oltre al fatto che è alimentato da una connessione USB, è l’opzione migliore perché è compatibile con una varietà di linguaggi di programmazione e software, rendendolo uno strumento versatile per qualsiasi utente Arduino.

Puoi anche provare altre opzioni come il programmatore ufficiale Atmel-ICE per microcontrollori ARM, specialmente se non sei su Windows.

Collega la scheda Arduino al programmatore e avvia il bootloader. Fare riferimento a questo video tutorial qui sotto.

Il processo dovrebbe essere semplice e non richiedere più di 20 secondi.

Nota: la scheda target deve essere accesa correttamente prima di tentare questo metodo. Altrimenti, non sarai in grado di eseguire il flashing del file .hex sul tuo target.

Per gli utenti esperti, esiste un modo più complesso per installare il bootloader utilizzando la riga di comando. Non è necessario arrivare a questa fase, ma ti dà la possibilità di modificare o ricompilare il codice per ottenere un’esperienza più personalizzata.

Il primo passo nel processo è configurare i bit del fusibile, che fanno parte del chip AVR, e controllare le impostazioni come l’uso di un cristallo esterno. Utilizzare il seguente comando per impostare i bit del fusibile:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

Dopo che i bit del fusibile sono stati configurati, il passaggio successivo consiste nel trasferire un file compilato. file esadecimale sulla scheda di destinazione e impostare i bit di blocco. Ciò ti consentirà di eseguire il programma sulla scheda. Assicurati di essere nella stessa directory del file optiboot_atmega328.hex prima di digitare questo comando:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

Nota: questi comandi sono per Arduino Uno. Dovrai rifattorizzare i bit dei fusibili per la tua scheda trovati nel file board.txt e modificare anche i parametri del numero di parte di AVRDUDE affinché funzionino.

Cosa farai con Arduino dopo?

Il bootloader Arduino è ciò che rende così facile la programmazione, anche per i principianti. Ora puoi caricare i tuoi schizzi personalizzati su Arduino e ripristinare il bootloader per i futuri progetti fai-da-te di Arduino.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *