[AIUTO] Programmare un ATmega16u2 da zero

Ciao a tutti..
Sono molto nuovo di questo forum ma ho un mega problema a cui non ho trovato risposta in giro per la rete.
Sono venuto in possesso per puro caso di un arduino UNo R3 completamente vuoto, ovvero con tutti i componenti saldati ma non ancora programmato.
La prima cosa che ho fatto, da neofita, è stata scaricare il bootloader di arduino sull'ATmega328P, credendo che bastasse per farlo funzionare, e con un pò di difficoltà ed utilizzando il progetto OptiLoader ci sono riuscito. Ho testato il suddetto chip su una board già funzionante e nessun problema, il classico "blink" va a meraviglia, quindi l'ho attaccato alla sua board "vergine" e collegandolo all'usb ho notato che non veniva riconosciuto allo stesso modo della precedente, seppur il programma sull'ATmega328P girasse senza problemi.
In gestione dispositivi infatti mi visualizzava la voce "ATmega16u2" con il simbolo di driver mancanti.. Ho scaricato Flip della Atmel e nella directory dell'installazione ho trovato i driver corretti. Inoltre leggendo tra i forum ho anche capito che l'ATmega16u2 era vergine ed in modalità programmazione per essere visto così..
Cosa devo fare ora per caricare qualche sorta di FW sull'ATmega16u2 e far funzionare tutto?
Grazie in anticipo..

Qui ci sono le istruzioni per programmare il firmware del microcontrollore tramite Flip da porta Usb:

Non devi toccare il FW del 16u2 a meno che non si "incasini", ma dato che viene riconosciuto funziona.
Scarica l'IDE di Arduino --> http://arduino.cc/en/Main/Software
Estrai lo zip e nella directory "Driver" trovi il file Arduino UNO REV3.inf che dai in pasto a gestione dispositivi. :wink:

Le istruzioni passo passo (in inglese) le trovi qui --> http://arduino.cc/en/Guide/HomePage

P.S. Non è che hai il ponticello attivato sui pin ICSP vicini al 16U2?

Sono venuto in possesso per puro caso di un arduino UNo R3 completamente vuoto, ovvero con tutti i componenti saldati ma non ancora programmato.

Come si viene in possesso di un Arduino UNO R3 senza Bootloader sui controller?
Ciao Uwe

uwefed:

Sono venuto in possesso per puro caso di un arduino UNo R3 completamente vuoto, ovvero con tutti i componenti saldati ma non ancora programmato.

Come si viene in possesso di un Arduino UNO R3 senza Bootloader sui controller?
Ciao Uwe

L'ho trovato su ebay ad un prezzo ridicolo.. ma pensavo che con "Da programmare" non intendessero tutto da zero.. :cold_sweat:

leo72:
Qui ci sono le istruzioni per programmare il firmware del microcontrollore tramite Flip da porta Usb:
http://arduino.cc/en/Hacking/DFUProgramming8U2

Già tentata quella strada, ma senza successo.. Ovvero, con Flip mi collego, gli scarico il firmware aggiornato o almeno è quello che mi dice di aver fatto ma ci mette troppo poco tempo.
Io lo stacco e riattacco all'usb, me lo vede come Arduino UNO R3, ma dopo mi dà comunque errore se provo a scaricare uno sketch..
Inoltre nella sezione bootloader, nell'arduino "vero" ho la version 1.2.0 con due id diversi, in questa "pacco" ho bootloader 1.0.0 e id entrambi a 0..
Leggendo qua e là dicono che il bootloader deve essere scaricato prima di scaricare il firmware.. probabilmente in quello di default, non "custom arduino", manca qualcosa per cui non si può scaricare il firmware corretto ed eseguirlo.. con conseguenza che non si riesce a comunicare con l'ATmega328p..

Hai provato seguendo la guida del Prof? --> http://www.michelemenniti.it/arduino_burn_bootloader.php

PaoloP:
Hai provato seguendo la guida del Prof? --> http://www.michelemenniti.it/VHD/Elettronica/GPAT_v4.pdf

Guida molto ben scritta, solo che non specifica come programmare il bootloader del chip ATmega16u2.. :~

withoutname:

PaoloP:
Hai provato seguendo la guida del Prof? --> http://www.michelemenniti.it/VHD/Elettronica/GPAT_v4.pdf

Guida molto ben scritta, solo che non specifica come programmare il bootloader del chip ATmega16u2.. :~

Io pensavo avessi risolto e volessi flashare l'ATmega328P. :sweat_smile:

il post lo scrissi tempo fa ma il micro è sempre quello :stuck_out_tongue:

comunque il tuo se proprio mi sa che è un problema di driver non per la modalità DFU ma seriale.

quindi segui PaoloP prima:

PaoloP:
Non devi toccare il FW del 16u2 a meno che non si "incasini", ma dato che viene riconosciuto funziona.
Scarica l'IDE di Arduino --> http://arduino.cc/en/Main/Software
Estrai lo zip e nella directory "Driver" trovi il file Arduino UNO REV3.inf che dai in pasto a gestione dispositivi. :wink:

Le istruzioni passo passo (in inglese) le trovi qui --> http://arduino.cc/en/Guide/HomePage

P.S. Non è che hai il ponticello attivato sui pin ICSP vicini al 16U2?

Con flip (o dfu per linux), carichi il firmware sul 16U2 tramite bootloader... ma se il bootloader non c'è....

Se hai la R3 hai il connettore ICSP dell'Atmega16U2. A quel connettore ti ci attacchi o con un programmatore hardware, tipo Dragon o USBtinyISP, oppure con l'ArduinoISP caricato su un altro programmatore.
Devi poi prendere il firmware che trovi nella cartella /hardware/arduino/firmwares/atmegaxxu2 e caricarlo sul chip tramite un programmatore Atmel e AvrStudio oppure da terminale usando il programma avrdude.

Però non so se quel firmware contiene anche il bootloader oppure no. Comunque, una volta caricato il firmware, l'Atmega16U2 dovrebbe funzionare senza problemi.