Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP

Se vi siete imbattuti nell’errore “avrdude: stk500_getsync() Errore durante il caricamento dello sketch“, durante il caricamento di un qualsiasi sketch, è semplicemente perchè il chip ATmega328P della vostra board non ha il bootloader aggiornato. In questo post vedremo come Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP.


Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP

Come anche spiegato sul sito di Arduino, è stato migliorato il bootloader per quanto riguarda la programmazione dell’ATmega328P tramite Arduino IDE. l’unico problema è che, per poter essere compatibile con l’IDE, bisogna aggiornare il bootloader.

Resta comunque possibile caricare gli sketch sui microcontrollori non aggiornati selezionando, dall’IDE, Strumenti -> Processore -> ATmega328P (old bootloader)

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP old bootloader

Questo è il messaggio di errore che viene visualizzato in fase di caricamento di uno sketch su un microcontrollore con l’ATmega328P non aggiornato:

Materiale occorrente

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP materiale occorrente

In questa guida vedremo come aggiornare una board Arduino Nano tramite Arduino UNO Rev3 utilizzando i connettori ISP presenti su entrambe le schede:

  • Arduino Nano ATmega328P CH340G: lo abbiamo già utilizzato per altri progetti (acquistabile su AmazoneBay)
  • Arduino UNO Rev3: (acquistabile su AmazoneBay)
  • Jumper Wire: cavetti (acquistabili su AmazoneBay)
  • Arduino IDE: ambiente di sviluppo per programmare il micro controllore Arduino (per l’installazione e la configurazione vi rimando a questi post)

Per comodità chiameremo la board Arduino Nano, quella con il bootloader da aggiornare, Target e Arduino UNO Rev3 Programmer.

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP target e programmer

Collegamenti

Il connettore ISP ha una piedinatura standard ma può essere saldato sulle varie schede in modo differente.
Questa è la piedinatura:

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP piedinatura isp

Per questioni di spazio le indicazioni dei 6 piedini non vengono stampate tutte ma viene indicato solo il piedino 1 (MISO). Una volta individuato il piedino 1 basta guardare lo schema dell’immagine precedente per individuare la disposizione degli altri piedini del connettore.

Sulla board Arduino Nano, utilizzata in questa guida, il piedino 1 è evidenziato con il numero 1

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP connettore arduino nano

Sulla board Arduino UNO Rev3 il piedino 1 è contrassegnato con un cerchietto bianco

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP connettore arduino uno

N.B. sulla board Arduino UNO sono presenti due connettori ISP, quello che andremo ad utilizzare per aggiornare il bootloader è quello collegato al chip ATmega, come evidenziato nell’immagine seguente

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP dettalio connettore arduino uno

Procediamo con il collegamento dei piedini dei connettori ISP, tra le due schede, in questo modo:

COLLEGAMENTO PIEDINI
Arduino Nano (Target) Arduino UNO Rev3 (Programmer) Jumper Wire
1 MISO (ISP) 1 MISO (ISP)      Blu
2 VCC (ISP) 2 VCC (ISP)      Rosso
3 SCK (ISP) 3 SCK (ISP)      Verde
4 MOSI (ISP) 4 MOSI (ISP)      Giallo
5 RESET (ISP) D10      Viola
6 GND (ISP) 6 GND (ISP)      Nero

Prestare attenzione al piedino 5 RESET, del connettore ISP, della board Target (Arduino Nano) che deve essere collegata sul piedino D10 della board Programmer e non al piedino 5 RESET presente sul connettore ISP.

Questo è lo schema di collegamento realizzato con Fritzing (Arduino UNO Rev3 Programmer a sinistra e Arduino Nano Target a destra)

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP collegamenti fritzing


Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP

Aggiornamento chip

Una volta effettuati i collegamenti tra le due board, colleghiamo la scheda Programmer (Arduino UNO Rev3) al nostro PC tramite cavo USB e avviamo Arduino IDE.
Selezioniamo da Strumenti -> Scheda -> Arduino/Genuino Uno la voce relativa alla board che stiamo utilizzando come Programmatore

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP scheda programmer

Selezioniamo la porta su cui è collegata la scheda Programmer da Strumenti -> Porta -> COM7 (N.B.: il nome della porta potrebbe essere differente)

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP porta programmer

Impostiamo la board Programmer in modo da poterla utilizzata come programmatore da Strumenti -> Programmatore -> Arduino as ISP

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP programmatore

Selezioniamo lo sketch che si occuperà di effettuare il flash del bootloader da File -> Esempi -> ArduinoISP

selezione sketch ArduinoISP

Carichiamo il codice ArduinoISP sulla board Arduino Programmer cliccando sul pulsante Carica

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP carica sketch ArduinoISP

Al termine della carica dello sketch vedremo un messaggio in basso all’IDE che ci conferma l’avvenuta carica

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP carica ArduinoISP completata

A questo punto, tenendo sempre collegata al PC la scheda Programmer (Arduino UNO Rev3), configuriamo l’IDE per poter permettere il flash del bootloader sulla board Target.
Selezioniamo la board Target da Strumenti -> Scheda -> Arduino Nano

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP selezione board target

e il processore da Strumenti -> Processore -> ATmega328P

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP selezione processore target

Per avviare il flash del bootloader clicchiamo su Strumenti -> Scrivi il bootloader

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP scrittura bootloader

L’operazione di flash del bootloader durerà qualche secondo. Se tutto è andato correttamente ci verrà mostrato un messaggio dell’avvenuta scrittura

Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP conferma scrittura bootloader

Ora non ci resta che testare se il bootloader appena aggiornato funziona.
Scolleghiamo le due schede, colleghiamo Arduino Nano al pc e avviamo l’IDE, selezioniamo il processore da Strumenti -> Processore -> ATmega328P, e proviamo a caricare il codice blink come mostrato in questo post.

Se avete riscontrato delle anomalie durante l’aggiornamento del bootloader, o degli errori nel post, non esitate ad utilizzare i commenti per segnalarmeli.

A presto 😉

6 commenti su “Aggiornare bootloader ATmega328P Nano con Arduino Uno e connettore ISP”

  1. Ciao ho provato a seguire la tua guida ma mi da errore.

    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

    avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
    avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude: stk500_disable(): unknown response=0x12
    Errore durante la scrittura del bootloader

    Ora se provo ad alimentare il nano da solo mi si accende il led L e non riesco a caricare nessuno sketch, anche segnando “ATmega328P (Old Bootloader)”. Cosa posso fare?

    1. Ciao TDARIO, premetto che ho aggiornato 3 Arduino Nano CH340G con questa procedura senza problemi.
      Dal messaggio di errore sembra un problema di collegamento tra i due connettori ISP.
      Hai provato a rifare la procedura controllando bene i collegamenti?
      Qual’è la versione dell’IDE che stai utilizzando (io ho utilizzato la 1.8.5) e su quale sistema operativo?

      1. Sono riuscito a risolvere sotto windows, con il Mac non ne voleva di scrivere il bootloader. Grazie.

      2. Bene. In effetti ho testato la procedura solo su Windows 10.
        Non appena ne avrò l’occasione proverò a trovare una soluzione funzionante anche su Mac.
        A presto.

  2. sei un grande nella tua semplicita di espressione hai reso possibile anche a me di recepire il procedimento per il boot di nano che non ho mai fatto scuole di elettronica faccio l’artigiano GRAZIE Giuseppe

    1. Ciao Giuseppe,
      grazie a te per aver visitato il mio blog.
      Mi fa piacere che questo post ti sia stato utile. Cerco di fare del mio meglio per rendere ‘semplici’ le guide che pubblico.
      A presto 😉

Lascia un commento

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