Errore Bootloader Atmega 1284 P

Ciao ragazz,i ho una scheda Melzi, con Atmega 1284 P , purtroppo nessun led che lampeggia durante il caricamento e non carica piu nessuno sketch , ricevo questo errore:
avrdude: stk500_getsync(): not in sync: resp=0x00

Informandomi in vari forum, ho capito che il problema è il bootloader corrotto, così ho acquistato un UsbAsp da collegare alla porta ISP, Il mio dubbio è: Su Arduino Ide devo selezionare ATMega1284P 8 Mhz o AtMega1284P 16 Mhz? Cosa cambia? Grazie!

Buona sera,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Steppdroid:
... Su Arduino Ide devo selezionare ATMega1284P 8 Mhz o AtMega1284P 16 Mhz? Cosa cambia?

... cambia che se sbagli frequenza TUTTE le temporizzazioni NON funzionano più (il valore che dai del clock è usato per impostare i prescaler de timers). DEVI guardare il quarzo collegato alla MCU e verificare a quanti MHz è.

Guglielmo

gpb01:
... cambia che se sbagli frequenza TUTTE le temporizzazioni NON funzionano più (il valore che dai del clock è usato per impostare i prescaler de timers). DEVI guardare il quarzo collegato alla MCU e verificare a quanti MHz è.

Guglielmo

Ciao grazie per la tua velocissima risposta, in passato ho aggiornato il firmware della mia scheda utilizzando 8 Mhz (avendo subito dopo problemi con la connessione al pc, ad esempio baud rate sfasato), ma grazie a te ho visto che il quarzo è di 16 Mhz... Riscrivendo il bootloader a 16 Mhz riuscirei a correggere i problemi? Grazie ancora!!

Come vedi il quarzo è a 16MHz, quindi DEVI programmare il bootloader per i 16MHz, altrimenti, come detto, TUTTI i tempi sono sballati ... inclusi quelli della seriale. :slight_smile:

Guglielmo

gpb01:
Come vedi il quarzo è a 16MHz, quindi DEVI programmare il bootloader per i 16MHz, altrimenti, come detto, TUTTI i tempi sono sballati ... inclusi quelli della seriale. :slight_smile:

Guglielmo

Ancora grazie! Appena arriva Usb asp provo a programmare il bootloader 16Mhz e ricaricare il firmware a 16 mhz! Spero vada tutto liscio e di non avere corrotto irreparabilmente la scheda!!

Steppdroid:
Spero vada tutto liscio e di non avere corrotto irreparabilmente la scheda!!

Solo la programmazione sballata dei FUSE può in qualche modo "bloccare" la MCU, ma una programmazione per un clock di diversa frequenza ... non fa danni :wink:

Guglielmo

Ciao, questo Usb Asp che ho acquistato, è sicuro compatibile con la mia scheda? nella descrizione del prodotto dice che è compatibile con AtMega1284P , ma se andiamo a leggere QUA dice che la scheda non è compatibile con USB tiny ISP ??

Nel caso non funzionasse la riscrittura del bootloader , dove posso acquistare un chip nuovo AtMega 1284P AU 1331? Grazie mille. :slight_smile:

Steppdroid:
Nel caso non funzionasse la riscrittura del bootloader , dove posso acquistare un chip nuovo AtMega 1284P AU 1331? Grazie mille. :slight_smile:

A parte che NON ci dovrebbe essere alcun problema, comunque, se ti servono chip, li trovi facilmente dai vari distributori ... Mouser, RS-Components, Farnell, ecc. ecc.

Guglielmo

gpb01:
Come vedi il quarzo è a 16MHz, quindi DEVI programmare il bootloader per i 16MHz, altrimenti, come detto, TUTTI i tempi sono sballati ... inclusi quelli della seriale. :slight_smile:

Guglielmo

Leggendo questa discussione mi è sorto un dubbio, e se posso ti chiedo un chiarimento.
Su una MCU che ha un bootloader programmato per lavorare a 16Mhz (e montato su una board con quarzo a 16MHz) tento di caricarci uno sketch scegliendo invece la stessa MCU ma ad esembio ad 8MHz...cosa avviene?
Ho un errore di sincronismo e non carica? Oppure lo carica e mi ritrovo con le "tempistiche" ovviamente sballate?
Ti ringrazio.

>LucianoArdu: buona la seconda :smiley:

Guglielmo

P.S.: Se il bootloader è coerente con il clock, la seriale lavora correttamente, quindi caricare carica, poi i problemi sono in fase di esecuzione.

Quindi il sincronismo di programmazione non è influenzato dal tipo (frequenza) di MCU scelto nell' IDE, ne risente esclusivamente il firmware.
Perfetto, grazie mille Guglielmo, gentile e tempestivo come sempre!

>LucianoArdu: ... come puoi ben immaginare, la seriale del PC funziona indipendentemente dall 'IDE, quindi, 115Kbps sono 115Kbps comunque. Il lato critico è il lato MCU, ma se il clock impostato nel bootloader corrisponde alla frequenza di clock, anche esso parlerà correttamente con la seriale, dato che le tempistiche corrisponderanno.

I problemi si potranno invece avere in fase di esecuizione, quando il valore di clock passato ed usato durante la compilazione è, in realtà, diverso da quello a cui gira la MCU.

Guglielmo

Perfetto, mi è tutto chiaro, grazie ancora.

gpb01:
>LucianoArdu: ... come puoi ben immaginare, la seriale del PC funziona indipendentemente dall 'IDE, quindi, 115Kbps sono 115Kbps comunque. Il lato critico è il lato MCU, ma se il clock impostato nel bootloader corrisponde alla frequenza di clock, anche esso parlerà correttamente con la seriale, dato che le tempistiche corrisponderanno.

I problemi si potranno invece avere in fase di esecuizione, quando il valore di clock passato ed usato durante la compilazione è, in realtà, diverso da quello a cui gira la MCU.

Guglielmo

Ciao , purtroppo a me caricando uno sketch a 8mhz invece di 16 mhz non mi fa caricare più nulla... ma lo sketch funziona ancora! quindi suppongo che il bootloader 8 Mhz funziona ancora ma non mi fa caricare perchè è fuori sincronia... Secondo te una volta che arriva usb asp riusciro a caricare il nuovo bootloader a 16 Mhz? ho mi conviene montare una nuova AtMega 1284p vergine? Grazie!

La programmazione ISP non ha nulla a che vedere con la programmazione seriale via bootloader e quindi ... :slight_smile:

Guglielmo

Si ,ma mi è stato detto che il bootloader ha una specie di protezione (che non mi ricordo come si chiama, forse watchdog) che ,se funziona correttamente impedisce la scrittura di un altro bootloader! è vero?

Steppdroid:
Si ,ma mi è stato detto che il bootloader ha una specie di protezione (che non mi ricordo come si chiama, forse watchdog) che ,se funziona correttamente impedisce la scrittura di un altro bootloader! è vero?

NO.

Si può bloccare la scrittura del bootloader o del codice o di entrambi abilitando appositi FUSE, ma la cosa NON ha nulla a che vedere con il watchdog.

Guglielmo

gpb01:
NO.

Si può bloccare la scrittura del bootloader o del codice o di entrambi abilitando appositi FUSE, ma la cosa NON ha nulla a che vedere con il watchdog.

Guglielmo

Ciao, se invecew dissaldo il quarzo da 16 Mhz ed installo uno a 8 Mhz funzionerebbe tutto?