Ripristino firmware ATmega 16u2 e 328P
Firmware e bootloader per comunicazione USB-seriale Arduino UNO rev3
Questa guida è indirizzata a coloro che possiedono una board Arduino UNO rev3 (o Genuino) con problemi di comunicazione usb/seriale. Nel nostro caso, in seguito ad una errata programmazione attraverso i terminali ICSP, non era più possibile programmare il microcontrollore attraverso la porta USB. Non conoscendo realmente le cause che hanno messo fuori uso la scheda è stato deciso di procedere su due fronti:
1 – ripristinare il firmware del microcontrollore ATmega 16u2, il quale svolge la conversone usb/seriale
2 – ripristinare il bootloader del microcontrollore ATmega328P
Per entrare i punti è stato necessario l’utilizzo di un programmatore esterno: nel nostro caso un banale TinyUSB ISP. Inoltre è stata necessaria l’ultima release software di Arduino per attingere ai file di sistema e un programmatore specifico, nel nostro caso AVRfuses (macOS).
- Download Arduino software: https://www.arduino.cc/en/Main/Software
- Download AVRfuses: http://vonnieda.org/software/avrfuses
Per prima cosa realizziamo il collegamento usb –> programmatore –> Arduino ICPS 16u2
a questo punto apriamo AVRfuses e utilizziamo il file hex Arduino-usbserial-atmega16u2-Uno-Rev3.hex contenuto nella directory
ARDUINO/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial
per chi lavora su macOS l’indirizzo corretto è:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial
inoltre è scaricabile anche qui:
https://github.com/arduino/Ard……/firmwares/atmegaxxu2/arduino-usbserial
Premendo il pulsante Program si procede alla riprogrammazione del microcontrollore 16u2.
A questo punto colleghiamoci sui terminali ICSP dell’ATmega328P
e aprendo l’IDE di Arduino precedentemente scaricato avviamo la scrittura del bootloader facendo attenzione alla selezione del microcontrollore, del programmatore e della porta utilizzata.
Quest’ultima operazione potrebbe richiedere circa 60-100 secondi. Al termine di queste operazioni la vostra scheda Arduino UNO rev3 sarà pronta ad essere utilizzata nuovamente tramite porta USB. Le medesime operazioni, svolte nel medesimo ordine, sono attuabili anche da Microsoft Windows. In tal caso, in alternativa a AVRfuses è possibile utilizzare Atmel flip scaricabile qui: http://www.atmel.com/tools/flip.aspx