Problemi nel caricare lo sketch su mega 2560 pro

salve,
ho comprato una scheda mega 2560 pro dalle dimensioni davvero ridotte. l'oggetto in questione è questo:


il problema sta nel fatto che dopo aver caricato un qualsiasi tipo di sketch, per esempio quello per far lampeggiare il led connesso al pin 13 incluso negli esempi dell IDE di arduino, mi compaiono una serie di errori come questi:

avrdude: verification error, first mismatch at byte 0x046c
0x00 != 0x80
avrdude: verification error; content mismatch
avrdude: verification error; content mismatch

nonostante questi errori, dopo aver caricato lo sketch il led sul pin 13 lampeggia, quindi sembra che il codice caricato dentro il mega viene comunque eseguito.
girando un pò sul forum ho trovato dei problemi simili al mio che portano a pensare che questi cloni possano avere un bootloader danneggiato o addirittura inesistente.
Avendo un mega2560 funzionante, ho deciso di farlo diventare ISP seguendo alla lettera connessioni e quanto altro.
Credo di essere riuscito nel fare la procedura perchè L'ide di arduino nella apposita sezione sottostante dopo qualche secondo mi dice che il bootloader è stato caricato con successo.
Ho riprovato a caricare lo sketch del led che lampeggia ma dà lo stesso tipo di errore nonostante sembra funzionare correttamente visto che il led lampeggia.
Spero con, l'aiuto vostro, di riuscire a risolvere il problema. In attesa di un vostro riscontro porgo distinti saluti e ringrazio in anticipo chiunque possa aiutarmi.

Non rimane che provare qualche sketch più impegnativo e vedere come si comporta.
La cosa mi interessa più o meno direttamente perché volevo anch'io provare la scheda in oggetto.

ciao, grazie per avermi risposto.
Ho gia provato anche con sketch più pesanti e impegnativi.
Da sempre lo stesso errore però il codice gira e viene eseguito dal mega 2560 come nel caso del blinking led.

Ho provato con altro sketch, al solito sembra funzionare ma da sempre la stessa tipologia di errore.

Errore durante il caricamento dello sketch
avrdude: verification error, first mismatch at byte 0x0484
0x09 != 0x89
avrdude: verification error; content mismatch

è cambiato solo il byte a cui si riferisce l'errore da 0x46C a 0x0484.

Aggiungo che avevo lasciato il led lampeggiante dentro il mega. Adesso dopo aver caricato il nuovo sketch il led non lampeggia più. Ovviamente ho caricato un codice che non prevede che debba lampeggiare il led sul pin 13. Se non avesse caricato il nuovo codice, visto l'errore in fase di caricamento, non dovrebbe rimanere il codice del led lampeggiante?

L'errore è chiaramente indicato e ... cosa c'entra i bootloader?

Avrdude ti sta dicendo che ha programmato la flash e poi ha riletto ciò che ha programmato e, arrivato alla locazione di memoria 0x046c, ha letto una cosa diversa da quello che aveva scritto (0x00 != 0x80).

Molto probabilmente sono cloni ecoonomci che montano MCU fallate, un piccolo programmino come blink ti funziona (magari neanche arriva all'indirizzo 0x046c = byte 1132 o, in quella locazione, c'è qualche cosa del "core" che neanche richiama), programmi più complessi potrebbero invece presentare strani malfunzionamenti.

Oltretutto, con programmi di dimensioni maggiori ... potrebbe saltare fuori che ci sono altre celle di flash fallate.

Guglielmo

salve, piacere di poter interloquire con lei.
l'idea che poteva essere il bootloader mi è sorta girando in rete. Ovviamente da internet si possono trovare soluzioni più disparate ai vari problemi che sorgono............
bisogna essere in grado di filtrarle ovviamente. E' stato un tentativo che ho provato.
è molto probabile che si tratti di un chip che non ha in pieno passato i controlli di qualità.
In effetti, come lei mi fa riflettere, quello è un indirizzo di memoria. Ed è possibile che quella celletta o piu di esse siano danneggiate.
La ringrazio molto.

... va bene che sono avanti con l'età :roll_eyes: ... ma qui ci diamo tutti del tu :wink:

Guglielmo

Certo,
ma per buona educazione aspetto sempre che me lo si conceda. ho imparato a non dare mai nulla per scontato.
la mia centrale DCC dovrà aspettare ancora un pò.
oppure ormai che ho comprato provo ugualmente a vedere se funziona.
ma come succede per il blinking led, che pare funzionare, codici più estesi e che occupano più memoria potrebbero essere si scritti, ma poi non funzionare regolarmente.
cosa ne pensi?

Purtroppo se una cella cambia il suo contenuto rispetto al previsto ... cosa accadrà e quando è del tutto imprevedibile. Potrebbe essere la cella che indica un OPcode, un registro, ecc. ecc. e non sai quando ci passerai (magari è in una funzione che viene richiamata occasionalmente, magari in un'altra del "core" che non richiami mai, magari in un punto dove passi sempre) quindi ... una cosa può sembrare funzionare, poi nel tempo bloccarsi senza un'apparente motivo e così via ...

... se è per una prova senza conseguenze particolari si può anche usare, ma se è per un'applicazione reale, magari per controllare o monitorare qualche cosa ... ne starei alla larga.

Guglielmo

infatti non voglio che nessuno dei miei trenini deragli o si scontri a causa di una cella di memoria.

QUESTA ricordo di averla usata e non era male ... purtroppo, al momento, è out-of-stock, ma ... registrando la propria eMail, appena è di nuovo disponibile ti avvisano. C'è anche la CONFEZIONE da 5 pezzi :grin:

Guglielmo

Altrimenti, da un produttore serio (ed anche il prezzo lo è) c'è QUESTA che ha delle belle caratteristiche ed è pronta consegna.

Guglielmo

Grazie infinite Guglielmo.
Adesso che le guardo meglio dal punto di vista elettronico, entrambe differiscono da quella in discussione solo per il chip usato per la conversione da seriale a ttl. Presupponendo per un attimo che il 2560 montato sulla scheda in discussione sia di ottima fattura.
E' possibile che con il CH340G si verificano dei problemi?
volendo anche di sincronismo visto che il CH340G richiede il quarzo per funzionare. Del resto l'economicità del prodotto in questione è dovuta anche al fatto che sfutta questo chip molto più economico rispetto al ATmega o FT232, CP2102 etc. etc.
lo dico perchè ne ho di 2560 che montano questi ultimi chip citati che attuano la conversione UART-TTL. Funzionano tutti alla perfezione.

Mai avuto problemi con i CH34x ... salvo inizialmente quando non c'erano i "kext" (equivalenti dei driver di Win) per macOS (io lavoro su iMac) :wink:

Guglielmo

L'unica sarebbe procurarsi un programmatore ICSP, tipo il Pololu USB AVR Programmer v2.1, molto facile da usare anche con l'ide di Arduino e "sperare"!

Scusa ... per fare cosa? ... :open_mouth:

Guglielmo

a questo punto non saprei dal momento che stiamo parlando di chip scadente con locazioni di memoria possibilmente danneggiati. Guglielmo mi suggerisce che non è questione di bootloader. Noto però che hai qualche dubbio.
In ogni caso è una cura che già gli avevo fatto.
1- Ho preso un 2560 tradizionale che gia avevo e gli ho caricato dentro ArduinoISP.
2- Ho fatto le dovute connessioni ( +5V,GND,50,51,52,10 )
3- Sull'IDE di Arduino ho settato la voce "Arduino as ISP"
4- Scrivi bootloader
la procedura è partita ed è finita con successo.
Sospetti che non sia andato a buon fine il caricamento del bootloader, ammesso che sia lui il problema?

la dimostrazione sta nel fatto che c'è piu di una locazione compromessa.
col semplice blinking led trovava la prima al byte 0x46C=byte1132 appena ho caricato altra tipologia di codice il byte si è spostato al 0x0484 che dovrebbe corispondere al 1152

Io direi di usare la Mega "tradizionale" per caricare gli sketch senza il bootloader su quella "incriminata".

Anche se sono convinto che il problema si ripresenti.
Se così fosse io direi "isola ecologica" o quanto meno non farci affidamento.