Strano comportamento Mega 2560

Salve ragazzi, dopo essere un felice possessore di una Uno ed una Yun originali, sono caduto nella tentazione di acquistare una Mega compatibile. Oggi appena arrivata ho provato a caricargli su qualche programma, ma nulla da fare, allora mi è venuto in mente di caricargli tramite una Uno nuovamente un bootloader, dopo qualche minuto l'upload si conclude con un errore:

avrdude: verification error, first mismatch at byte 0x1e000 0xff != 0x0d avrdude: verification error; content mismatch

ma collegando la Mega direttamente all'IDE si riesce a programmare, ma solamente per una volta, poi bisogna nuovamente ricaricare il bootloader :astonished: Secondo voi il problema è hardware o software?

Tranquillo è normale se cerchil'errore sul forum trovi un topic con tanto di spiegazioni tecniche.

Grazie Prof. e complimenti per la tua guida, se ti riferivi a questo post ho provato ad inserire in mega.menu.cpu.atmega2560.bootloader.extended_fuses sia 0D che 07, ma mi continua a dare errore :roll_eyes:

Grazie :) No mi riferisco ad un topic aperto proprio per quell'errore. È un problema di avrdude non puoi farci nulla ma non crea alcun guaio. È il processo di verifica che inizia da una locazione sbagliata.

collegando la Mega direttamente all'IDE si riesce a programmare, ma solamente per una volta, poi bisogna nuovamente ricaricare il bootloader

E' successo anche a me con un 2560 in questo lungo thread http://forum.arduino.cc/index.php?topic=111561.msg850614#msg850614 « Reply #36 on: July 06, 2012, 08:57:34 am » ho fatto diventare matto Menniti :D

Sicuro che il Reset-EN sia chiuso?

ciao

Ciao Paolo! La tua MEGA ADK funziona ancora a meraviglia :) @ onire: scusa ma mi era sfuggito quest'ultimo passaggio che ha evidenziato Pablos. Ora che sono da PC e non da Smartphone mi spiego meglio. Quando si carica il bootloader su Arduino MEGA 2560 o ADK, mediante tecnica ISP, con un qualsiasi altro Arduino come programmatore, si ottiene l'errore che hai indicato tu. Abbiamo scoperto che tale errore è dovuto al fatto che viene effettuata la verifica dopo la scrittura del bootloader. Ma tale verifica invece di partire dall'indirizzo 0x1f000 (mi pare...) parte da 0x1e000, di conseguenza trova la prima locazione vuota (ff) invece di trovare il dato che si aspetta (0d); quindi è un problema di AVRDUDE ed è solo un problema di verifica, visto che la scrittura è andata a buon fine. Questa prova l'ho fatta svariate volte ed ho avuto diversi riscontri da altri utenti e perfino dal reparto tecnico di Elettronica In: a prescindere dall'errore poi funziona tutto regolarmente. Quindi il fatto che tu non riesca a caricare una seconda volta uno sketch non è normale; Paolo dice che aveva lo stesso problema, io non me lo ricordo più, ma ad un certo punto lui mi regalò la sua scheda ed è ancroa qui perfettamente funzionante. Ora ti faccio alcune domande banali, quindi non te la prendere, ma a volte capitano anche ai migliori....: 1 - Che versione di IDE usi? 2 - Quando parli di collegamento all'IDE intendi che colleghi la MEGA alla porta USB? La setti correttamente poi? 3 - A questo punto per il caricamento usi il normale carica/upload invece di carica con un programmatore? Dovresti poi fare una prova: - Dopo il caricamento dello sketch, invece di ritentare subito prova prima a spegnere il PC e riaccenderlo e vedi cosa succede.

@ Paolo: non penso ci sia un problema di RES_EN, in caso contrario non caricherebbe mai nemmeno il primo sketch, se non con procedura manuale.

Ottimo mi fa piacere .... ora sono quasi pronto per tentare di usare la DUE, ma avrò poco supporto in caso di problemi o cose non conosco ... bho vedremo, al massimo ti mando anche quella ahahahahhaa

ciao

pablos: Ottimo mi fa piacere .... ora sono quasi pronto per tentare di usare la DUE, ma avrò poco supporto in caso di problemi o cose non conosco ... bho vedremo, al massimo ti mando anche quella ahahahahhaa

ciao

XD XD XD Fornitore ufficiale XD XD XD Ti dirò, nel frattempo mi sono riempito di schede Arduino, rigorosamente originali (MEGA r3, DUE e YUN) ma sono tutte sigillate nei loro pacchettini, ora sono troppo preso da ciò che sto facendo, poi vedrò a cosa dedicarmi per prima, comunque la DUE mi pare che non stia andando molto, quanto ad utenti, intendo, effettivamente vedo che se ne parla poco, se almeno avesse potuto funzionare a 5V sarebbe stata tutt'altra cosa, ma purtroppo questa è.

Grazie ragazzi per il vostro interesse

@pablos ho verificato il RESET-EN è chiuso, ho provato anche a fare un ponticello a mano

purtroppo non va =(

@Michele Menniti Provato ad utilizzare sia la arduino-1.5.6-r2 che la arduino-1.0.5. Ho fatto questa procedura: - carico sulla Uno ArduinoISP - collego la Uno alla Mega secondo schema da te fornito (ho inserito un condensatore da 10uF sui pin GND e AREF) - sull'IDE imposto come scheda la Mega - come programmatore Arduino ISP - scrivo il bootloader - dopo qualche minuto il caricamento si conclude con errore - scollego la Uno e collego la usb della mega al pc - la prima volta riesco a caricare lo sketch, al secondo tentativo di upload va in timeout

Ho provato anche a caricare lo sketch di Nick Gammon, stesso risultato mi permette di caricare lo sketch solo la prima volta.

Ho provato anche a smanettare con boards.txt cambiando i valori da te suggeriti, ma senza successo, però non mi è ben chiaro cosa sono i fuses.

A questo punto che fare? Pensavo che con il suggerimento di pablos per il reset avrei risolto :~ Suggerimenti?

Grazie

Onire

PS per l'immagine mi scuso, ma non ho capito come caricarla direttamente una miniatura sul forum

Qualche suggerimento? Non so più che provare.

Purtroppo non so che altro dirti, non è mai successo a nessuno questa cosa, nemmeno a Pablos che io ricordi, nonostante lui dica diversamente, tant'è che la sua board la uso io regolarmente e funziona. O più precisamente il problema si è verificato varie volte con l'ATmega328P, in alcuni casi è bastato caricare il bootloader di Arduino 2009 in altri casi hanno proprio dovuto sostituire il micro. Intanto ti consiglio vivamente di NON giocare con i fuse perché se non li conosci bene fai danni forti, quindi ripristina quelli originali della tua scheda ricaricando il bootloader con la board coi parametri corretti. Ma prima elimina la versione 1.5.x da computer, non so se possa creare conflitti con qualche file comune; a me succedeva con le 0022 e 1.0.1, finché non ho capito il problema sono uscito pazzo. Comunque il condensatore da 10µF non serve a niente come lo hai collegato tu (tra ARef e GND), va collegato tra 3,3V o 5V (+) e RST (-). In ogni caso la programmazione ISP dovrebbe funzionare anche senza questo C, che serve SOLO in caso si verifichi un errore ben preciso. Intanto ripristina tutto, verifica questa cosa del condensatore e poi collega la mega all'USB del PC e setta la COM esatta; più tardi facciamo un po' di prove da riga di comando, se vuoi.

Ciao Michele, per quanto riguarda il condensatore mi sono confuso, però ti assicuro che funzionava. Cercando su google spesso viene fuori programmazione DFU, non ho capito cosa sia, può fare al caso mio?

Aggiornamento 1

Ho spostato il condensato su 3,3V e Reset, sulla Uno che utilizzo come programmatore, ma adesso non ne vuole più sapere di caricarmi il bootloader sulla Mega, ottengo di nuovo:

avrdude: verification error, first mismatch at byte 0x1e000
         0xff != 0x0d
avrdude: verification error; content mismatch

=( =( =( =( =(

Aggiornamento 2 Anche se da errore il bootloader lo carica, ma continua a funzionare solo one shot :~

Quell'errore è assolutamente normale. Ho aperto un topic apposta, se lo cerchi trovi le motivazioni. La dfu riguardA il 16u2 potrebbe anche essere utile. A questo punto provala.

Potresti darmi qualche info in più sulla DFU, perchè non ho proprio capito cosa sia.

È la riprogrammazione del micro convertitore usb-seriale mediante il connettore ISP posteriore di Arduino

Posso sfruttare un altro Arduino per farlo o c’è bisogno di un programmatore specifico?

Non ho mai sperimentato questa tecnica ma sono certo che puoi usare il solito sistema ISP, in fondo nel 16u2 c'è un normalissimo firmware; comunque dovrebbero esserci svariati tutorial sulla rete; se non ricordo male dovrebbero esserci due diversi metodi per il caricamento del firmware.