Pages: 1 2 [3] 4 5 ... 9   Go Down
Author Topic: MEGA 2560: affrontiamo l'errore "first mismatch at byte 0x1e000 0xff != 0x0d"  (Read 5411 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9873
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi oltre all'errore di verifica c'e' un punto molto piu' grave: "La Mega non puo' essere programmata via ICSP"  smiley-eek-blue

Affermazione un pochino avventata visto che io la MEGA2560 la programmo da ISP senza problemi smiley
Pure le prove fatte da Michele, e da tanti altri, confermano che dopo la programmazione tramite Arduino ISP indipendentemente dall'errore poi la MEGA funzione.
Logged

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le prove di Michele e di tutti gli altri affermano che dopo il caricamento del bootloader e' possibile programmare la mega MA VIA USB
Se voglio programmare la mega con l'apposito comando via ICSP (in modo da avere solo lo sketch a bordo senza BL) non funziona, questo affermo nel mio punto 2. Cioe' anche il TDGino che michele porta ad esempio lo fanno funzionare sempre con BL a bordo
Ho rieseguito tutti i test anche su IDE 1.0.5 stessi risultati.

(parlo del comando Carica Tramite Un Programmatore, spiegato nella mia guida)
a te funziona ma via avrstudio+dragon giusto ?
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9873
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

(parlo del comando Carica Tramite Un Programmatore, spiegato nella mia guida)
a te funziona ma via avrstudio+dragon giusto ?

Dato che non uso lo sketch Arduino ISP, e non voglio usarlo smiley , non ho provato a caricare un programma in questo modo, sicuramente il test lo farà Michele e vediamo se conferma il problema.
Io posso solo confermare che caricando il file .hex del bootloader tramite AvrStudio e l'AVRISP MKII non ho nessun errore in verifica e il programma va ad occupare correttamente il segmento di flash previsto.
Logged

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

certo, aspettiamo michele, pero' guarda che il caricamento di uno sketch senza bootloader e' una cosa ufficiale che fai con il tuo programmatore ed usando l'IDE al posto di AtmelStudio, arduinoISP non c'entra nulla.
Quindi a limite devi sostenere di non voler usare l'IDE, non di non voler usare ArduinoISP  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

Mi pareva di averlo scritto nel post di apertura che ho programmato via ISP sia il bootloader che il solo sketch (carica con un programmatore, non c'è altro modo....), e poi ho detto che una volta installato il bl, nonostante l'errore, posso programmare via seriale.
EDIT: sì, l'avevo scritto smiley
Quote
Allora ho provato a caricare direttamente degli sketch con l'opzione tipica ISP e tutto funziona regolarmente; quindi il problema non sembra dipendere dalla tecnica ISP e certamente non dipende dal micro.
Però a dire il vero ho notato che in qualche caso (considerate che domenica sono stato dalle 15 alle 24 ininterrottamente su questa cosa, senza prendere appunti smiley-sad-blue) per vedere il blink partire dovevo premere e tenere premuto il reset di Arduino, ed in qualche caso effettivamente non partiva; mi pare di aver notato anche delle differenze di comportamento su questa cosa in base al fatto che alimentavo la scheda via seriale o via ISP, eppure le piste sono identiche e le due tecniche le commuto tramite un deviatore agisce proprio sul reset e sui 5V, per evitare casini. Però le ultime 4-5 prove non mi hanno dato problemi quindi devo per forza replicare ed approfondire.
Ho notato anche un'altra cosa: quel giorno ho avurto grandi difficoltà a programmare la MEGA ADK che ho, usando IDE 1.0.1 mentre non ho avuto alcuna difficoltà con la 0022, riesumata per l'occasione, ma essensomi concentrato sulla questione BL/ISP onestamente non ho approfondito nessuno di questi piccoli problemi.
Posso però affermare con certezza una cosa, quando io e Astro abbiamo pubblicato l'articolo sulla toolchain aggiornata, non disponendo della MEGA facemmo le prove su un TiDiGino, basato su un 2560, ed in quel caso non sapevamo nemmeno che avesse un bootloader a bordo, per cui tutti i test li facemmo caricando via ISP una specie di blink sofisticato (scritto da Astro) che, per lampeggiare, si fregava una marea di flash (la cosa era ovviamente voluta) ma ha sempre funzionato, quindi temo che Test si sia scontrato con uno dei miei problemi
Quindi ora, appurato che l'errore non dovrebbe essere più un errore, nell'attesa della prova di compilazione di Astro e della verifica della flash da parte mia, la prossima volta mi concentrerò sui problemi che ho avuto, ma stavolta lo farò in modo serio, descrivendo ogni singola prova e vedremo cosa ne esce; aggiungerò alle prove la versione 1.0.5 come da suggerimento di Paolo, visto che certamente ha meno bug della 1.0.1 ma non intendo usare per il momento la 1.5.x.

Una sola considerazione finale x Test: tu non usi ArduinoISP perché usi un programmatore esterno, non perché puoi farne piacevolmente a meno, è così o mi sfugge qualcosa? (ti ricordo che io usco esclusivamente Arduini come programmatori....)
« Last Edit: November 20, 2013, 03:03:27 am by Michele Menniti » Logged


0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho usato un UsbAsp proprio per differenziarmi da te e verificare se l'errore di verifica si confermava, e si e' confermato.
Sul discorso Carica via Programmatore a me il problema e' fisso, non parte la mega, nemmeno resettanto piu' volte. Astro se vuole puo' fare anche lui la prova, usando il uo rpogrammatore (che e' supportato dall'ide) e avere altra verifica, se fosse un problema tra l'IDE ed il comando Carica Via Programmatore verrebbe fuori anche a lui.
A questo punto stasera se ho un attimo faccio le prove anche con una UNO+ArduinoISP visto che a te funziona, o almeno ti ha saltuariamente funzionato.
Nessun rpoblema invece ad usare normalmente l'USB dopo il caricamento del bootloader.
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

I vecchi firmware dell'USBasp (ante 2009) avevno un limite per il quale non potevano scrivere oltre la soglia dei 64KWord (128Kbyte). Tale limite è stato risolto nel 2011:
Code:
usbasp.2011-05-28 (v1.4)
......
- added support for controllers with flash >128kb

E' probabile quindi che non riesca a scrivere il bootloader perché materialmente il tuo programmatore non riesce ad arrivare così in alto. Il micro resta bloccato perciò perché i fuse li hai impostati per andare a saltare in fondo alla Flash ma lì non c'è nessun bootloader.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9873
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Astro se vuole puo' fare anche lui la prova, usando il uo rpogrammatore (che e' supportato dall'ide) e avere altra verifica, se fosse un problema tra l'IDE ed il comando Carica Via Programmatore verrebbe fuori anche a lui.

Non mi chiedete di fare questa prova per un semplicissimo motivo, per poter utilizzare l'AVRISP MKII da IDE di Arduino è indispensabile installare gli appositi driver per Avrdude, driver che non hanno il certificato valido per W7 64 bit e che vanno a sovrascrivere quelli di AvrStudio.
Non ho alcuna intenzione di combattere con W7 per l'installazione e "sporcare" l'installazione di AvrStudio smiley
Comunque penso di aver trovato il bandolo della matassa, se è come penso io (devo verificarlo) sarà l'ennesima conferma che non c'è nessun controllo qualità, o comunque è meno che minimale, sul software ufficiale di Arduino  smiley-mr-green
Logged

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, non sapevo sta cosa dei driver, che casino, quindi due sw che usano lo stesso programmatore abbisognano di due driver diversi ? assurdo, ma mica anche sotto linux e' cosi' ?

x leo, giu' dalle brande.... il bootloader viene scritto bene con UsBAsp  smiley
E' lo sketch che, caricato con l'apposita funzione presente dalla 1.0 in poi Carica Tramite Programatore, a me fallisce sempre ed a Michele e' fallita saltuariamente
« Last Edit: November 20, 2013, 08:37:15 am by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

Se il tuo USBasp ha il firmware vecchio "sembra" che scriva correttamente ma non lo fa. Tu stesso dici che hai dei problemi, se lavorasse correttamente problemi non ne dovrebbe avere...  smiley-wink
Potresti provare installandogli sopra il nuovo firmware datato 2011 e riprovare. Che ti costa?
Logged


0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

leo non ti seguo, il discorso che fai riguarda la scrittura del bootloader perche' appunto il BL viene scritto in fondo alla memoria, ed il bootloader viene caricato correttamente, dopo aver caricato il BL via USB tutto funziona.
Mentre invece gli sketch vengono caricati ad inizio flash, quindi qualsiasi sia il firmware non c'entra con il problema del "Carica Tramite Un Programmatore"
Inoltre il mio UsbAsp e' nuovo e quindi avra' gia' il fw nuovo, non so se c'e' un sistema per controllare, lo faro', ma ripeto non c'entra nulla ne' con il problema dell'errore in verifica, ne' con il problema mio
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Rifatte tutte le prove usando "ArduinoUno+ArduinoISP" come programmatore, confermati entrambi i problemi:
1- Pur andando a buon fine l'upload del bootloader, e quindi permettendo il caricamento di sketch via USB, la verifica fallisce.
2- Nel 100% dei casi il Blink caricato tramite l'opzione dell'IDE "Carica Tramite un Programmatore" pur andando a buon fine senza riportare errori nell'IDE, crea una Mega che non parte anche resettando piu' volte (ho provato 5 volte il blink)
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

Testato, se il firmware dell'USBasp non riesce a scrivere oltre i 128K di flash, come fa a scrivere il bootloader sull'Atmega2560, la cui area riservata sta in fondo alla Flash? Per "in fondo alla Flash" intendo a 256KB di address-4K (che è lo spazio che si riserva il bootloader). A me il fatto che:
1) la scheda non riparte più dopo un reset è normale che lo faccia, perché la tabella dei jump scritta sulle prima locazione di memoria rimanda ad una cella di memoria dove non c'è nulla;
2) puoi caricare solo con "carica con un programmatore" è normale che lo faccia, dato che in questa modalità scrivi con il programmatore, quindi via ISP, e non usando il bootloader com'è invece quando clicchi sull'icona di upload.

Poi, io non ho una Mega, quindi mi spiace ma non posso fare ulteriori verifiche.

PS:
L'ultimo firmware lo trovi qui:
http://www.fischl.de/usbasp/
Logged


0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6017
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e' incredibile come non si riesce a comunicare via forum, a volte mi meraviglio veramente  smiley
sara' colpa mia

rispiego
1- il bootloader viene normalmente caricato e funziona con usbasp e con arduinoIsp (per normalmente funzionante intendo che io lo cancello, e ne ho conferma perche' non mi funziona piu' l'upload via seriale, e poi lo ricarico via icsp e posso ricaricare dopo via seriale) se non sei convinto io posso spiegarlo anche mille volte  smiley

2-il caricamento di uno sketch via icsp invece, che non c'entra nulla con il bootloader tant'e' che viene anche cancellato il bootloader di default quando si fa questa operazione, non va a buon fine, cioe' se anche l'ide non da errori la scheda non parte, resta tutto spento. Non si puo' fare nulla, nessun controllo, posso solo ricaricare il bootloader (che ripeto funziona fortunatamente, altrimenti avrei perso la mega).

Quindi ritornando alla tua ipotesi risulta non essere avverata, perche' sia ArduinoISP che UsbAsp mi scrivono correttamente il bootloader.

Sono due problemi diversi, il rpimo e' che la verifica della scrittura del bootloader fallisce, ma fortunatamente solo la verifica, la scrittura in se e' corretta.
Il secondo problema e' quello descritto, cioe' caricare uno sketch direttamente via ICSP, ma tramite l'IDE, crea una mega vuota, o cmq se non vuota (visto che non ci sono errori) una Mega che non parte, come se fosse sbagliato il punto di scrittura dello Sketch

questo ti manda in crisi, questo e' il punto dove non ci capiamo, il rpoblema di errata collocazione dei dati, se e' questo cio' che accade, non rigiarda fortunatamente il Bootloader, ma solo lo sketch, e lo sketch viene scritto ad inizio flash quindi il limite da 128k (che cmq non ho perche' il bootloader viene scritto bene) non c'entra niente
« Last Edit: November 20, 2013, 04:54:30 pm by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

Intanto sono stra-curioso di capire/sapere cosa sta pensando Astro, visto che probabilmente ha trovato davvero la soluzione, quindi si aspetta con ansia.

@ Leo: se non ricordo male in questo stesso Topic Astro ha detto che il bootloader non si posiziona sugli ultimi 4k dei 256k ma sugli ultimi 4k dei primi 128k, per il noto problema della toolchain, i fuse probabilmente proteggono l'area e quindi uno sketch di 150k occuperebbe i primi 124k e poi da 128k (esclusi) in su; da verificare se l'ho letto davvero o me lo sono inventato per stanchezza.....

@ Test: il tuo discorso è chiaro, ma Leo ha il ruolo di leggere tutti i Topic, interviene quasi sempre, non è facile cogliere delle sottigliezze in mezzo a tante certezze, state dicendo due cose diverse ed avete entrambi ragione, perché siete in due situazioni diverse, evidentemente.

Tornando ai miei "problemi" fai la prova a tenere premuto il reset di Arduino programmatore dopo aver programmato il solo sketch via ISP, se lo sketch (basta il classico blink, ma attenzione alla pinature!) parte allora è la mia stessa situazione. Altra cosa che mi viene in mente è che forse dovremmo provare a programmare lo sketch via ISP usando una board specifica per il 2560 stand-alone, eliminando quindi lo start all'indirizzo 1F000, non vorrei che fosse questo il problema. Se ti va proviamo a calcolare assieme i fuse  smiley-wink
Logged


Pages: 1 2 [3] 4 5 ... 9   Go Up
Jump to: