Firmware Atmel Mega 16U2

Buonasera a tutti voi. Sono entusiasta di questo Forum e soprattutto che sia in italiano :slight_smile:
Ho un problema, stamattina ho collegato la scheda arduino uno r3, ma non viene piu rilevata dal mio PC.
Stavo eseguendo un collegamento con i cavetti e probabilmente uno di loro avrà toccato qualche componente ma non ne sono sicuro.
Ne ho collegata un'altra che invece funziona.

Non so se il convertitore usb/seriale si sia danneggiato o se devo ricaricare il firmware al suo interno.
Potete allegarmi il firmware corretto (mi sembra che sia in formato esadecimale hex).
Inoltre potete anche indicarmi se esiste il docice sorgente del firmware e allegarmi il file??
Grazie

Vedi qui: https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/firmwares/atmegaxxu2.

Qua invece info sulla procedura di reflash: https://www.arduino.cc/en/Hacking/DFUProgramming8U2.

Ciao SukkoPera, ti ringrazio.
Ho appena eseguito il reflash ed è ripartito !!

Sulla stessa pagina trovo anche il sorgente?
....(tra quelli che ho visto penso dovrebbe essere il file Arduino-usbserial.c).

Giusto?

I sorgenti del firmware 16u2 sono tutti in quelle cartelle, non è solo quel file. Dipende cosa ti interessa ;).

A me interessa il sorgente del firmware usb/seriale Atmel MEGA 16U2 ..che fa funzionare il convertitore
..praticamente è lo stesso che mi hai linkato tu, ma anzichè essere in formato esadecimale, sto cercando il sorgente.

Mi serve perchè sto iniziando a studiare il linguaggio di programmazione e sono interessato a vedere come è stato sviluppato e come fa ad interagire.

Il firmware per il 16u2 lo trovi in "..\arduino-1.8.1\hardware\arduino\avr\firmwares\atmegaxxu2", fa parte della distribuzione del IDe, però ti avviso subito che se non sai come funziona la usb, sia come hardware che come protocollo dati, non sei in grado di capire come funziona il codice.

Ho capito cosa ti interessa, ed è nelle cartelle che ti ho linkato (o in locale al path che ti ha indicato astro), ma non è un file solo! È un programma lungo, articolato e distribuito su più file, che credo vada obbligatoriamente compilato con Atmel Studio, non credo compili con l'IDE di Arduino senza un (bel) po' di lavoro, ammesso che si possa fare.

Vale comunque quanto detto da astro: ci vuole una conoscenza molto avanzata del microcontrollore e dei bassi livelli dell'USB per capirci qualcosa.

Grazie ragazzi siete gentilissimi e molto preparati, vi invidio.. :frowning:

Ho seguito i vostri consigli e ho trovato alcuni file all'interno delle cartelle dell'IDE.
Pensavo che il sorgente per il MEGA16U2 era soltanto uno, che bisognava complilarlo in esadecimale (hex) per programmarlo, invece da come mi ha scritto SukkoPera i file sorgenti sono piu di uno...

Praticamente attualmente nel mio MEGA16U2 di Arduino Uno R3 è presente al suo interno il firmware usb/serial in formato Hex.
Io sto cercando proprio questo file ma in formato "sorgente".

Esiste un unico file?
Non ho ben capito...

No, come te lo devo spiegare?

Hex è solo un formato in cui viene codificato l'"eseguibile" per caricarlo. L'eseguibile è soltanto uno ma i sorgenti sono parecchi.

darioAVR:
sto cercando proprio questo file ma in formato "sorgente".

Il sorgente sono tutti i file che trovi nella cartella che ti ho indicato, un programma spesso e volentieri è diviso in più file, tutti assieme costituiscono il sorgente, a seconda dell'ambiente di sviluppo questi file possono venire caricati tutti automaticamente oppure li devi aprire uno per uno.
Il sorgente del 16u2 è compilabile tramite make in automatico, però devi avere sia make che gcc installati, oppure tramite Atmel Studio, non puoi compilarlo da IDE perché non è strutturato come un codice per Arduino.

Scusami SukkoPera ma lo avevo gia accennato che sono un neofita di programmazione, quindi sto partendo da zero :sweat_smile:

Siccome ho smanettato ultimamamente con gli sketch/sorgente di Arduino, che sono singoli file... che caricavo sull'IDE e che trasferivo sul atmega328, pensavo che per il sorgente del atmeha16U2 funzionasse alla stessa maniera...

Ok vi ringrazio per la vostra spiegazione.
Adesso ho capito che, almeno per quando concerne il convertitore Mega16U2, il sorgente è diviso in piu parti.

Vi chiedo una curiosità per il Mega16U2: il bootloader (che per il Mega16U2 prende il nome di Hoodloader2) dove lo trovo?

Ho cercato nelle cartelle dell'IDE ma non l'ho trovato

In ogni caso, un file solo o tanti, cambia poco. Concettualmente puoi immaginare di concatenare tutti i file in uno solo, se la cosa ti fa sentire meglio. Non è che ci siano cose mirabolanti che nascono dalla suddivisione dei sorgenti, in prima approssimazione è più che altro per comodità di manutenzione, raggruppamento di parti logicamente collegate, rapidità nel trovare una funzione di interesse, ecc, che si suddividono.

Anche nell'IDE puoi usare più file, e anche nelle librerie.

Hoodloader2 è una cosa a parte, ben distinta da quella che ti abbiamo linkato. È un firmware alternativo con funzioni avanzate, che può sostituire il firmware nativo del 16U2 (credo), ma che non è direttamente collegato a questo. Il firmware nativo del 16U2 che, ribadisco, non ha nulla a che vedere con Hoodloader, è diviso in due ulteriori parti: il DFU loader e il convertitore USB-Seriale (è per questo che nel filename compare COMBINED). Qua però non conosco più di tanto i dettagli, non è cosa comune mettere mano a questo firmware. Mi è capitato di sostituirlo con UnoJoy ma non sono sceso più di tanto nei dettagli di come sia fatto. Forse astro può esserti più di aiuto.

Grazie SukkoPera per la tua spiegazione.

Il file che riporta la dicitura "COMBINED" (pr Arduino Uno R3) avevo provato a caricarlo con Flip, ma purtroppo mi vien fuori un messaggio di errore.

Praticamente ho acquistato il convertitore usb/serial Mega16U2 (pensando che il mio era danneggiato)...
Appena arriverà ho intenzione comunque di installarlo sulla board di Arduino Uno r3.
Ho letto che molto probabilmente esso sarà vergine (senza neanche il bootloader) e che dovrò programmarlo con Flip, per metterci dentro il firmware.

Ma il bootloader dove lo trovo? Devo caricarlo pure con Flip?

...affinchè io possa ricevere maggiori risposte e aiuti, mi spiego meglio.
Ho intenzione di dissaldare il 16U2 gia presente e saldare il nuovo 16U2 per affinare anche la pratica della tecnica "reflow".
Userò l'adattatore allegato qui sotto, saldandolo in una basetta di vetronite, collegato comunque in "parallelo" con le piazzuole di Arduino. Il package del nuovo 16U2 avrà dimensioni differenti rispetto all'originale, ma non è un problema perchè farò tutto ciò solo a scopo "sperimentativo" per prendere confidenza con l'hardware.

Però non so come procedere con la programmazione del convertitore.
So che molto probabilmente dovrò usare il software Flip, ma per poter ripristinare il corretto funzionamento del convertitore 16U2 dovrei caricargli dentro sia il bootloader, sia il firmware.

Qualcuno potrebbe darmi una mano? :slight_smile:

Grazie

zif_socket.jpg

Forse dovresti postare la discussione nella sezione Hardware...

valeriosandrelli:
Forse dovresti postare la discussione nella sezione Hardware...

NO, la discussione è iniziata qui e continua qui ...
... l'argomento è sempre lo stesso ed è un misto di HW e SW ... inutile avere più thread.

Guglielmo