Go Down

Topic: MEGA 2560: affrontiamo l'errore "first mismatch at byte 0x1e000 0xff != 0x0d" (Read 6737 times) previous topic - next topic

astrobeed

Giusto per togliere ogni dubbio allego uno screen capture di AvrStudio 4, videata del disassembler, dove si vede chiaramente che il bootloader della 2560 viene allocato a partire da 0x1f000, le prime istruzioni sono la tipica jump table creata dal compilatore.
Il primo byte della word che viene letta in 0xf1000 è proprio "0x0D" (formato Little Endian).


Michele Menniti

--pausa-- :smiley-sweat:
Quindi questa è la conferma assoluta che l'errore è proprio nel fatto che "chi" verifica usa un indirizzo di partenza errato, se riusciamo a sapere dov'è scritto questo valore si risolve il problema, sarebbe cosa molto buona  :) :) :) ma io non ho idea.
@ Leo: in base alla traduzione di quel topic quei fuse impostano correttmente l'atmega2560 per i 4k di spazio per il bl a partire da 1F000, ma quelli della mega sono identici, quindi non capisco il suggerimento :smiley-roll: sul lock abbiamo già chiarito che non c'entra visto che non è certo lui che imposta l'indirizzo di partenza della verifica  :(
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

leo72

Dopo il primo appunto di Astro ho specificato che l'errore è chiaro che sia in verifica: in rete tutti confermano che nonostante quell'errore il bootloader venga scritto. Ma non posso aiutare nei test, non ho la Mega.

astrobeed


tutti confermano che nonostante quell'errore il bootloader venga scritto. Ma non posso aiutare nei test, non ho la Mega.


Ho dato un'occhiata veloce al makefile del bootloader e vedo un gran casino, dato che AvrDude gli address li legge dal file .hex ho l'impressione che siano dei problemi nell'interpretazione da parte di AvrDude, ma non da parte di AvrStudio.
Da notare che il formato Intel HEX usato per gli AVR prevede un indirizzamento a 16 bit però è possibile introdurre dei comandi per lo spiazzamento del adress fino a 32 bit, infatti la prima riga del .hex del bootloader è proprio uno di questo comandi.
Toccherebbe provare a ricompilare il bootloder con AvrStudio, senza usare il makefile fornito, e vedere se il problema scompare.

PaoloP

E allora perché compare ogni tanto e non sempre.
Ci sono stati pochi casi segnalati su una miriade di MEGA vendute.

Testato

Non mi risulta un problema di saltuarietà, a michele il problema è fisso, wd anche gli altri che ricordo non lamentano randomizzazioni.
Il fatto che non ci siano molte lamentele dipende secondo me dal fatto che trovare gente che mette mani al bootloader del 2560 è raro, perché non se ne comprano vergini ed aggiornare il bl sulla mega non è indispensabile a molti.
Invece il bootloader sul 328p si mette spesso visto l acquisto di nuovi 328p o sugli standalone.

Domani faccio un po di prove, così aggiorno anche il mio bl.

Mike hai provato anche con un programmatore diverso da ArduinoISP ? Potrebbe essere un bug proprio dello sketch.
Domani provo entrambe le cose.
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

pelletta


....
Mike hai provato anche con un programmatore diverso da ArduinoISP ? Potrebbe essere un bug proprio dello sketch.
Domani provo entrambe le cose.


Tra un pò dalla scatola del suo avr dragon si sentiranno i tamburi in stile jumanji....  ;)


Michele Menniti

BUD: quanto hai ragione! Quel dragon impacchettato mi fa una pena che non hai idea, d'altra parte i test di Astro dimostrano che probabilmente funzionerebbe, ma allora si perderebbe lo scopo del Topic.

Paolo e Test: concordo completamente con Test, l'ultima volta ho proprio fatto notare come "chiunque" tentasse l'operazione avesse lo stesso errore, la Rivista usa questo micro per il progetto TiDiGino, ieri mi hanno mandato il video esplicativo dell'operazione di caricamento del bootloader della MEGA, è per il loro stessi tecnici, alla fine si vede chiaramente l'errore e loro spiegano che è assolutamente normale; a me l'ha fatto in tutte le prove, quindi non c'è nulla di saltuario. E comunque la facilità con cui lo programmo poi via seriale mi mostra che tutto sta funzionando benissimo. Però aspetto con ansia i test di Test :D, ogni ulteriore elemento è utile. A Paolo chiedo, vista la sua rapidità in questo tipo di ricerche, e visto il mio attuale imbordellimento, se riesce a trovare il tempo di localizzare gli ultimi tre Topic in cui si tratta din questo problema; riletti alla luce di quanto sappiamo ora ci darebbero elementi utili (Grazie!)

Quote
Toccherebbe provare a ricompilare il bootloder con AvrStudio, senza usare il makefile fornito, e vedere se il problema scompare

Astro, a te tra qualche giorno dovrebbe costare "poco" fare questa prova; per il lavoro che sto realizzando sarebbe elegante poter far sparire questo inutile messaggio. Grazie anche a te.
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

PaoloP


A Paolo chiedo, vista la sua rapidità in questo tipo di ricerche, e visto il mio attuale imbordellimento, se riesce a trovare il tempo di localizzare gli ultimi tre Topic in cui si tratta din questo problema; riletti alla luce di quanto sappiamo ora ci darebbero elementi utili (Grazie!)


Obbedisco.  :smiley-mr-green:
--> http://forum.arduino.cc/index.php?topic=190554.msg1410643#msg1410643
--> http://forum.arduino.cc/index.php?topic=182466.0
--> http://forum.arduino.cc/index.php?topic=172938.msg1286716#msg1286716
--> http://forum.arduino.cc/index.php?topic=111561.msg839442#msg839442

astrobeed


Astro, a te tra qualche giorno dovrebbe costare "poco" fare questa prova; per il lavoro che sto realizzando sarebbe elegante poter far sparire questo inutile messaggio. Grazie anche a te.


Penso di poterlo fare durante il weekend, ritengo molto probabile che ricompilando con AvrStudio il problema scompaia.
Credo che alla base del problema ci sia una difficoltà di interpretazioni degli address del file .hex da utilizzare da parte di Avrdude, oppure da parte dello stesso software Arduino ISP, però questo significa anche possibili problemi nel software caricato sul micro.
Potrebbe essere interessante vedere un dump della flash, lo puoi fare con il dragon, dopo aver programmato il 2560 tramite ISP in modo da poter verificare se quanto scritto è realmente dove si deve trovare ed è quanto atteso.

Michele Menniti

@ Paolo: grazie! ora cerco di studiare e rileggere tutto, poi posto una valutazione globale.

@ Astro: grazie anche a te! il problema (mio) del Dragon è che non l'ho mai tolto dalla confezione, solo una volta per vedere se c'era :smiley-mr-green: e purtroppo in questo periodo davvero non avrei tempo né testa per metterlo al lavoro. Però, visto che in questa vita prima o poi dovremo incontrarci ;) si potrebbe trovare il tempo per gaurdarlo assieme, avere le prime indicazioni d'uso mi aiuterebbe  a "partire".

@ BUD: tu il Dragon l'hai fatto lavorare in un niente e so che lo usi ormai a tempo pieno; non è che per purissimo caso hai approntato una mini-guida d'uso facile facile in modo che in un paio d'ore possa riuscire a fare i primi lavori ISP? :smiley-mr-green:
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

pelletta

Premetto un pò di cose:
non ho un atmega2560 per verificare la procedura;
non uso la programmazione icsp ma high voltage;
non lo faccio da atmel studio ma direttamente con avrdude da terminale in kubuntu.

Ho dovuto installare atmel studio 6 soltanto per aggiornare il firmware del programmatore (Tools - AVR Tools firmware upgrade);  insieme al software ti installa anche il driver USB (getting started).

Dopo l'installazione dal menu Tools scegli Device Programming.
Qui puoi impostare tutti i parametri relativi al microcontrollore e al tipo di programmazione che intendi effettuare, nel tuo caso Avr Dragon, ATmega2560 e ISP.
Per verificare i collegamenti puoi far leggere il device signature con l'apposito pulsante, se corrispondono ti fa impostare la frequenza di clock per la trasmissione dei dati altrimenti ti restituisce un errore e non ti fa proseguire.



Nella finestra Memories puoi finalmente cancellare, scrivere e verificare la memoria flash del microcontrollore semplicemente impostando il percorso relativo al file hex del bootloader (o altro).



Manca soltanto di impostare i fuse e i lock bits nelle apposite sezioni.





OT: ringrazio l'engine del forum o il server che durante la pubblicazione di questo reply mi ha restituito un Bad Gateway e ho dovuto riscriverlo in fretta  :0 :smiley-zipper:

Michele Menniti

Grazie mille BUD, in verità pensavo davvero che tu avessi fatto qualcosina all'inizio dell'uso del Dragon, non ti avrei chiesto di perdere tanto tempo, comunque sia.... a buon rendere :).
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

pelletta

Non ti preoccupare, come vedi non è difficile usarlo.
Lo sbattimento più grande è stato installare atmel studio :)

Testato

Il problema e' piu' grave di quanto sembri  :)
Testato su Win7-64
IDE 1.5.4
Prog. UsbAsp

1- caricando il bootloader ricevo l'errore
Code: [Select]
first mismatch at byte 0x1e000 0xff != 0x0d
2- caricando uno sketch via ICSP esso viene caricato in flash, senza errori riportati da avrdude, ma la mega non parte, anche resettandola.

Quindi oltre all'errore di verifica c'e' un punto molto piu' grave: "La Mega non puo' essere programmata via ICSP"  :smiley-eek-blue:
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up