[RISOLTO] Problema Bootloader Atmega328p-pu vergini

Ho seguito le istruzioni per il bootloader degli atmega328p-pu, ma sia con l'autoreset abilitato, sia con l'autoreset disabilitato, mi da errore...

per eseguire il bootloader ho caricato il programma "ArduinoISP" sull'arduino;

dopo aver caricato il programma ho collegato l'atmega vergine al quarzo da 16MHz con i 2 condensatori da 22pF che collegano questo a massa, oltre alla resistenza da 10Kohm (se mi permettete di scriverlo così), che collega il reset alla 5V;

l'ho alimentato usando l'arduino stesso, collegando i 5V ai pin 7 e 20 e "GND" ai pin 8 e 22 sempre dell'atmega vergine su breadboard, e ho collegato il pin 13 dell'Arduino al pin 19 del vergine, il pin 12 al pin 18, il pin 11 al pin 17 e il pin 10 al pin 1 (reset);

ho impostato il programma di Arduino su Tools>>Programmer>>Arduino as ISP, e infine ho fatto Tools>>Burn Bootloader

dopo un po' mi appare questa scritta:

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync

un ultimo particolare che vi posso dare è che le istruzioni dicono che il led "L" deve lampeggiare, ma lampeggia in un modo impercettibile...

Domande:
1 - quali istruzioni hai seguito?
2 - hai creato la board virtualecon i fuses corretti?
3 - sei sicuro al 100% che la sigla del micro sia proprio 328P-PU?

menniti:
Domande:
1 - quali istruzioni hai seguito?
2 - hai creato la board virtualecon i fuses corretti?
3 - sei sicuro al 100% che la sigla del micro sia proprio 328P-PU?

1 - le istruzioni le avevo prese da "logicaprogrammabile.it" e da un pdf che ho scaricato da un link in questo Forum, dicono le stesse cose che ho descritto, quindi se ho commesso degli errori dovresti trovarli nel mio post di apertura... (in "logicaprogrammabile.it" erano sbagliati gli schemi ma le istruzioni combaciano su quanto descritto da me e nel pdf)

2 - Non so cosa intendi per "creare una board virtuale" l'unica cosa che posso dire è di aver collegato l'atmega vergine come descritto nel mio post oltre al collegamento di esso con l'arduino e i collegamenti per la disabilitazione del reset di dell'arduino.

3 - Sul Microcontrollore vergine c'è scritto:
ATMEL 1136
ATMEGA328P-PU

Sul microcontrollore non vergine (che si trova sull'arduino)
ATMEL 1112
ATMEGA328P-PU

A parte il 1136 e 1112 (che penso non indichino un modello completamente diverso) direi sì, sono sicuro che è un ATMEGA328P-PU

Una cosa che mi ero dimenticato di scrivere, uso l'"Arduino UNO"

Non conosco le istruzioni che hai preso su logica....., forse conosco quelle che hai trovato qui sul forum, quindi ti dico che sei stato preciso nello spiegare i collegamenti, che sono esatti, ma non ha detto praticamente nulla di cosa hai fatto dal punto di vista software, a parte l'aver caricato ArduinoISP su Arduino, leggendo meglio il post vedo che cerchi di caricare il bootloader e non uno sketch (il motivo per cui parlavo di board virtuale).
Magari se metti i link di queste istruzioni che hai letto forse possiamo riuscire a trovare altri errori oltre a quelli di cui parli...

Questo è il link dove ho preso le istruzioni

l'unica errore è lo scambio tra i pin 11 e 12 dell'arduino negli schemi, nelle tabelle i collegamenti sono riportati correttamente
Un'altra differenza è che io devo prima impostare e poi lanciare il bootloader, mentre qui si lancia automaticamente dopo averlo impostato.

Se stai usando l'IDE 1.0 purtroppo devo dirti che ArduinoISP non funziona bene; scaricati la 002 o 0023 e vedrai che risolvi.
In alternativa, se vuoi proprio usare l'IDE 1.0 cercati sul Forum il Topic aperto da Testato, in merito a questa cosa, chiunque l'ha provato è riuscito, riuscirai anche tu. Però con la 0022 ci metti un paio di minuti e ti levi il pensiero, senza troppi sbattimenti.

menniti:
Se stai usando l'IDE 1.0 purtroppo devo dirti che ArduinoISP non funziona bene; scaricati la 002 o 0023 e vedrai che risolvi.
In alternativa, se vuoi proprio usare l'IDE 1.0 cercati sul Forum il Topic aperto da Testato, in merito a questa cosa, chiunque l'ha provato è riuscito, riuscirai anche tu. Però con la 0022 ci metti un paio di minuti e ti levi il pensiero, senza troppi sbattimenti.

Sì, a quanto pare è la versione 1.0 a non funzionare, quindi ho riprovato con la 0022, e sono riuscito a farla funzionare. Grazie per aver risolto il problema.

Figurati, alla prossima, ciao. :slight_smile:

Scusate, ma ho cantanto vittoria troppo presto!!!

Dopo aver fatto il Bootloader, ho provato a programmarlo con un esempietto semplice... e sembrava funzionasse.

Fino a che non gli ho tolto l'alimentazione, per poi rialimentarlo, NON funziona come si deve, o almeno funziona solo se si ricarica il programma...

Più che non funzionare fa un programma tutto suo, (il led "L" fa uno strano lampeggìo (un segnale periodico simile questo (1-0-1-0-0-0-1-0-1-0-0-0))

Che sketch gli hai mandato? qualcosa che ha ache fare con la seriale?

menniti:
Che sketch gli hai mandato? qualcosa che ha ache fare con la seriale?

Dopo aver fatto il Bootloader ho semplicemente sostituito l'atmega dell'arduino con l'atmega vergine con il bootloader, e ho caricato uno dei programmi di esempio.

Prima quello dove accende e spegne il led "L" ogni secondo;

Poi quello dove L si accende quando il pin 2 è HIGH.

In ambo i casi se si disalimenta fa andare lo stesso programma descritto nel post precedente (1-0-1-0-0-0-1-0-1-0-0-0)

Quello non è un programma, probabilmente è un problema di comunicazione. Fai questa prova: invece del bootloader della UNO caricaci dentro quello della Duemilanove. Poi quando metti il chip su Arduino setta la board come se fosse una Duemilanove e non una UNO, rimanda il blink e poi prova a spegnere e riaccendere.

è lo stesso problema che ho riscontrato io! l'atmega che perdeva la memoria...ti ricordi?

ho risolto semplicemente caricando l'Optifix...probabilmente con la 022 c'è ancora l'Optiboot con i bug...

menniti:
Quello non è un programma, probabilmente è un problema di comunicazione. Fai questa prova: invece del bootloader della UNO caricaci dentro quello della Duemilanove. Poi quando metti il chip su Arduino setta la board come se fosse una Duemilanove e non una UNO, rimanda il blink e poi prova a spegnere e riaccendere.

Con questo metodo sembra funzionare, almeno il programma va senza problemi, rimane scritto, nonostante la disalimentazione di arduino...

Grazie 1000...

Ps: Stavolta eviterò di dire Risolto troppo presto... metterò risolto appena avrò piena certezza che il problema sia superato...
Qual ora riscontrerò nuovi problemi entro domani (01/03/12) li posterò; qual ora non venissero riscontrati allora il problema si potrà definire RISOLTO.

alexdb:
è lo stesso problema che ho riscontrato io! l'atmega che perdeva la memoria...ti ricordi?

ho risolto semplicemente caricando l'Optifix...probabilmente con la 022 c'è ancora l'Optiboot con i bug...

Ciao, come stai? :slight_smile:
Sì, penso proprio a quello, se è così con il bl della 2009 gli funziona tutto, vuol dire che scaricherà la 0023 che ha incorporato l'optifix.

@ vedo che confermi quanto pensavo, allora scova la versione 0023, che ha l'optiboot corretto (è un problema sporadico, a me lo fa solo in stand-alone) e riprova con il bl dell'UNO; comunque tranquillo, hai risolto sicuro :wink:

menniti:

alexdb:
è lo stesso problema che ho riscontrato io! l'atmega che perdeva la memoria...ti ricordi?

ho risolto semplicemente caricando l'Optifix...probabilmente con la 022 c'è ancora l'Optiboot con i bug...

Ciao, come stai? :slight_smile:

Bene grazie!:slight_smile: e te?

alexdb:

menniti:

alexdb:
è lo stesso problema che ho riscontrato io! l'atmega che perdeva la memoria...ti ricordi?

ho risolto semplicemente caricando l'Optifix...probabilmente con la 022 c'è ancora l'Optiboot con i bug...

Ciao, come stai? :slight_smile:

Bene grazie!:slight_smile: e te?

tutto ok :wink:

@davider:
ma che Arduino stai usando?

E comunque l'Optiboot 4.0 nulla c'entra con la comunicazione con il chip montato sull'Arduino, interferisce solo quando si va ad usare l'Arduino come ISP.

Leo, hai letto cos'ha scritto Alexdb e l'esto della prova col bl 2009 che gli ho fatto fare? Che altri dubbi vuoi farti venire, è di sicuro l'optiboot

menniti:
Leo, hai letto cos'ha scritto Alexdb e l'esto della prova col bl 2009 che gli ho fatto fare? Che altri dubbi vuoi farti venire, è di sicuro l'optiboot

Da quando c'è l'Optiboot 4.4 siete tutti contro l'Optiboot originale. Peccato che ci siano migliaia di Arduino UNO con quell'Optiboot in circolazione che non hanno mai avuto problemi di sorta :stuck_out_tongue:
E non parlo per sentito dire perché la mia UNO è una R1 e mi arrivò con l'Optiboot 4.0: finché ci salvavo sopra gli sketch non avevo nessun problema, i problemi sorsero solo quando andai ad usarla come ISP.

Casomai i suoi problemi potrebbero derivare dal firmware dell'Atmega8U2 se usasse Linux, ad esempio. Però non so che scheda ha e che SO usa quindi mi cheto prima di prendermi un'altra bacchettata :sweat_smile: