Pages: [1] 2   Go Down
Author Topic: Arduino Uno R3 SMD e convertitore USB-seriale  (Read 786 times)
0 Members and 1 Guest are viewing this topic.
Conegliano
Offline Offline
Full Member
***
Karma: 5
Posts: 220
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti
un amico mi ha portato una Arduino UNO R3 SMD che non veniva riconosciuta come periferica.

Dopo aver letto svariati topic, ha riscritto il bootloader dell' ATmega16U2 e gli ho ricaricato il bootloader della mega238P usando la guida del mitico prof Menniti. Ora, quando resetto la scheda, il led 13 lampeggia, quindi credo che il bootloader sulla mega238P funzioni correttamente.

Dopo questa procedura, il pc (W XP) riconosceva la periferica come UNO, ma durante il caricamento dello sketch lampeggiava il led RX un paio di volte ed il tutto si concludeva con il solito triste messaggio di mancata sincronizzazione. Lo stesso pc lo utilizzo con una MEGA2560 R3 ed una UNO R3, quindi tenderei ad escludere problemi su questo lato.

Ho sfogliato un po' il forum, ed ho trovato istruzioni su come fare la riscrittura del 16U2 ma parlano di UNO NON SMD...
Al momento,dopo varie prove, la periferica viene riconosciuta come ATmega16U2 e non più come arduino.

Vorrei quindi una conferma sull'HEX giusto da caricare (io ho usato Arduino-usbserial-atmega16u2-Uno-Rev3.hex) e le procedure per l'aggiornamento del bootloader, visto che la versione UNO R3 SMD nella guida non viene contemplata... (ed eventuali errori/omissioni che posso aver commesso!!  smiley-red)

Grazie!
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12510
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

azz, mitico finora non l'avevo mai sentita smiley-red smiley-red smiley-red
Hai provato a caricare il bootloader anche sul micro 328P? che sia PDIP o SMD non cambia nulla.
A "occhio" il firmware che hai caricato sul 16u2 è proprio quello, peraltro la scheda ti viene riconosciuta, quindi ora il problema è sul microcontrollore principale, ho risolto due casi identici proprio nei giorni scorsi.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Conegliano
Offline Offline
Full Member
***
Karma: 5
Posts: 220
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se non confondo le cose, non è la procedura descritta nella guida che hai fatto? (mi permetto di darti del tu nell'ottica friendly del forum smiley )

con il mio MEGA ho seguito la guida come descritto ai punti 2A1-3-4-5
apro poi l'ide (1.0.5), faccio l'upload dello sketch Blink
quando arriva la scritta "sto caricando" il led 13 lampeggia, poi il led RX fa tre lampeggi e si risolve con la solit scritta "not in sync"
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12510
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cerchiamo di spiegare tutti i passaggi altrimenti diventa problematico capire dove ci troviamo smiley-sweat

Tu hai usato la programmazione ISP per caricare il firmware nel 16u2 e l'operazione è andata a buon fine visto che ora la board viene riconosciuta.

Poi dovresti aver usato la programmazione ISP (ovviamente cambiando connettore ICSP...) per caricare il bootloader nel 328P-AU (versione SMD, come detto le istruzioni sono identiche), riferendoti al paragrafo 5, specifico per l'IDE 1.0.x

Se anche questa operazione è andata a buon fine allora puoi caricare il blink e dovrebbe funzionare senza problemi.

Hai fatto così o no?
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Conegliano
Offline Offline
Full Member
***
Karma: 5
Posts: 220
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, scusa... smiley-red

- usando flip ho programmato il 16U2 usando i file HEX presenti nella cartella C:\Programmi\Arduino\hardware\arduino\firmwares\atmegaxxu2 .
Primo dubbio: non è che così ho caricato solo il firmware e non il bootloader?

- poi la scheda viene riconosciuta come Arduino UNO dal pc
 
- a questo punto ho caricato il bootloader nel 328P-AU usando la tua preziosa guida e sia il lampeggìo dei led che i messaggi dell'IDE confermano che l'operazione è andata a buon fine

- provo a caricare lo sketch blink e da i sintomi descritti sopra...  smiley-sad

probabilmente ho saltato qualche passaggio; ho letto una decina di post che trattano l'argomento e probabilmente ho fatto un mix con gli ingredienti sbagliati!  smiley-sad
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12510
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

L'operazione con flip ti ha caricato il solo file hex nel 16u2 e va bene così, il 16u2 NON ha un proprio bootloader.
L'operazione fatta seguendo la guida invece dovresti averla fatto seguendo espressamente il capitolo destinato alla versione 1.0.x dell'IDE, scritta così sembra ok, ma a questo punto dovrebbe andare. Prova a descrivermi i passaggi che hai fatto punto per punto, riguardo il solo bootloader, ad iniziare dal tipo di collegamento e poi i successivi passaggi software.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Conegliano
Offline Offline
Full Member
***
Karma: 5
Posts: 220
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, lo rifaccio in diretta:

- apro IDE 1.0.5
-controllo settaggi seriale e modello Arduino
- imposto "Arduino as ISP"
- apro lo sketch di esempio "Arduino ISP"
-lo carico nella MEGA funzionante
-scollego la MEGA
-eseguo i collegamenti HW
-ricollego la MEGA
-seleziono la UNO come modello
-strumenti->Scrivi il bootloader
-lampeggìo di led per diversi secondi finchè appare la scritta "Scrittura bootloader terminata"
-collego direttamente la UNO
-seleziono porta e modello per la Arduino UNO
-carico lo sketch
-il led 13 lampeggia
-il led RX fa tre lampeggi
-appare l'errore "avrdude: stk500_getsync(): not in sync: resp=0x00"
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12510
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bella descrizione  smiley ok tutto perfetto. A questo punto il problema potrebbe riguardare i pin seriali del micro o del convertitore. Avendo la mega puoi provare la strana manovra della seriale. Collega mega e uno tra loro con 5v gnd reset e tx in parallelo, non usare l'rx. Collega la mega all'usb apri l'ide e setta la mega quindi carica il blink. Poi scollega tutto e verifica se il blink funziona separatamente sulle 2 board
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7098
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il 16u2 NON ha un proprio bootloader.

Non sono d'accordo. Il bootloader del 16U2 e del 8U2 è il DFU; esiste infatti un file per il firmware, un file per il bootloader e un file combinato che permette di riscrivere entrambi con la sola tecnica ISP.
Trovi tutto qui --> https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2
oppure dentro le directory dell'IDE.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12510
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie per la precisazione Paolo, onestamente non ho mai messo mano a quei chip e non ne conoscevo la gestione.
Allora se lui ha caricato il solo bootloader (o il solo firmware?) tutto si spiega.
OK Tap, prova a caricare il blocco che ti ha linkato Paolo, al 99% risolvi.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7098
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tramite tecnica DFU deve caricare solo il firmware: https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial : Arduino-usbserial-atmega16u2-Uno-Rev3.hex

Tramite ISP (ma servono i fuse corretti) questo --> https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2 : Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex

I fuse dovrebbero essere:
Quote
To burn (Uno):
avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m
Ma questo è argomento di Michele.
« Last Edit: March 11, 2014, 11:53:01 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22720
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se lui ha caricato il firmware, la scheda deve essere vista come Arduino perché il firmware invia VID/PID per farsi identificare dal sistema operativo proprio come Arduino. Ma qui scrive che ora è vista come Atmega16U2:
Ho sfogliato un po' il forum, ed ho trovato istruzioni su come fare la riscrittura del 16U2 ma parlano di UNO NON SMD...
Al momento,dopo varie prove, la periferica viene riconosciuta come ATmega16U2 e non più come arduino.
mi viene da pensare allora che abbia riscritto solo il bootloader DFU, ed è per questo che non riesce a spedire gli sketch.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 568
Posts: 12510
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Paolo, fammi capire, ma gentilmente leggiti bene il suo primo post, se no ci imbarchiamo in discussioni senza fine per mancanza di particolari.
Lui ha usato la tecnica ISP però ha caricato il file sbagliato, almeno così capisco dal suo e dal tuo intervento.
Comunque sia se usa la tecnica ISP deve caricare il file Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex
Ora perché dici che serve settare i fuse? Il chip è saldato sulla board quindi deve essere già settato; allora non è sufficiente fare una cormale programmazione ISP con il file "combined" che hai indicato tu?
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22720
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se non si erasa il chip usando il parametro "-e", avrdude i fuse non li tocca di suo. Quindi può semplicemente scrivere la Flash e basta. Che sia bootloader o firmware completo, non fa differenza.
Logged


Conegliano
Offline Offline
Full Member
***
Karma: 5
Posts: 220
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-eek-blue
Ora state andando oltre le mie conoscenze!  smiley-roll-blue

Dopo aver riprogrammato il 16u2 con flip ed averci caricato il file C:\Programmi\Arduino\hardware\arduino\firmwares\atmegaxxu2\arduino-usbserial\Arduino-usbserial-atmega16u2-Uno-Rev3.hex L'arduino viene riconosciuto correttamente come UNO. Per essere sicuro di aver eseguito tutto correttamente:
-collego la UNO
-ponticello sul primo jumper vicino al connettore USB
-su flip seleziono il modo di comunicazione USB
-carico l'HEX
- clicco su "Start application"

Ho provato ad usare la programmazione "in parallelo" della MEGA e della UNO, ma al momento dell'upload va tutto in timeout...
Logged

Pages: [1] 2   Go Up
Jump to: