Utilizzo file hex ed eep già precompilati

Allora, rincominciamo:
Io ho in mano un atmega8A-PU ed un atmega328P-PU

Provo a scrivere i fuses che trovo nel board.txt sotto la voce "arduino NG or older w/ ATmega8".

C:\avrdude>avrdude -C avrdude.conf -p m8 -c stk500v1 -P\.\COM3 -U lfuse:w:0xdf:
m -U hfuse:w:0xca:m -b 115200

p.s. con il baudrate a 19200 come da board.txt, la comunicazione non iniziava neanche.

questa è stata la risposta

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f
avrdude: Expected signature for ATMEGA8 is 1E 93 07
Double check chip, or use -F to override this check.

avrdude done. Thank you.

Ora provo con il 328P e i fuses dell'arduino 1

C:\avrdude>avrdude -C avrdude.conf -p m328p -c stk500v1 -P\.\COM3 -U lfuse:w:0x
ff:m -U hfuse:w:0xde:m -b 115200

...e questa è la risposta

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xff"
avrdude: writing lfuse (1 bytes):

Writing | | 0% 0.00s ***faile
d;
Writing | ################################################## | 100% 0.09s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xff:
avrdude: load data lfuse data from input file 0xff:
avrdude: input file 0xff contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: lfuse changed! Was ff, and is now 0
Would you like this fuse to be changed back? [y/n]

se alla domanda rispondo di no ottengo

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

avrdude done. Thank you.

atrimenti se dico di si mi dice che stk500cmd è fuori sync...
Intanto vi posto questo così mi dite se vedete dove è il punto. Nel frattempo continuo a fare esperimenti...
Grazie

sono due comportamenti diversi, nel primo caso avrdude riceve dall'Atmega8 la signature del 328P, come e' possibile ? Ti hanno venduto un 328P spacciandolo per Atmega8 ? Una mente geniale :stuck_out_tongue_closed_eyes:

Nel secondo caso non ti funziona e basta, sembrerebbero i problemi di sinc che sono stati risolti dall'Optiboot, hai optiboot sulla Uno ?

Hai provato a seguire la mia guida in firma ? C'e' un esempio proprio per Atmega8, e fai tutto graficamente dall'IDE senza mettere mano ad avrdude, sia la programmzione dei fuse, sia il caricamento via ISP

Punk, ti consiglio di scaricare l'ultima versione dell'IDE, la 1.0.4 (http://arduino.cc/en/Main/Software) e l'ultima versione della guida di Michele (http://michelemenniti.it/arduino_burn_bootloader.php) e seguire nuovamente passo passo la guida con predisposizione della breadboard per il 328P.
Quando sarà tutto funzionante puoi passare all'8A, ma se mischi tutto si fa solo confusione.

Per fugare tutti i dubbi puoi postare una foto del micro e dei collegamenti? 8)

:astonished:

Ti hanno venduto un 328P spacciandolo per Atmega8 ?

Pazzesco! Non capisco!? L'unica spiegazione logica è un errore di fabbrica. sopra è stampigliato chiarissimo atmel 1113 atmega8A-PU.

Aggiornamento. Ho creato l'hex dello sketch blink, e poi l'ho inviato al 328P tramite avrdude. In un primo momento credevo fosse andato a buon fine ma quando ho scollegato il cavo isp ho scoperto che l'arduino che usavo come programmatore isp è stato scritto con il blink!

mha!

Ci sono!! Stai sbagliato comando dell'IDE.
Devi usare "Carica con un programmatore", selezionando "ARDUINO as ISP" come programmatore nell'apposito menu, e non il pulsante "Upload".
:grin:
Come già detto, segui la mitica guida di Michele. Non sbaglia un colpo. 8)

EDIT: :cold_sweat: Ho preso un granchio! Non stai usando l'IDE ma direttamente AVRdude.
Vuol dire che hai sbagliato comando. :zipper_mouth_face:

Ah, adesso arriva la foto del micro. Per i collegamenti è un po più difficile visto che ho fatto una pcb ma ti assicuro che almeno una volta ha funzionato con un 8A :slight_smile: Comunque adesso seguo i vostri consigli.Metto da parte l'8A, scarico e leggo tutto quello che mi avete consigliato.

https://docs.google.com/file/d/0Bz6JDuTnO_6RNW5UcGFPOEV1dFE/edit?usp=sharing
https://docs.google.com/file/d/0Bz6JDuTnO_6RMUkySFRTdFFaMVE/edit?usp=sharing

Scusate ma non ho più un dominio dove caricare le foto.

le foto puoi cricarle direttamente qui sul forum, sotto allo spazio per scrivere trovi Additional Option.
Comunque non servono piu', ormai e' chiara la questione, almeno per il discorso 8A vs 328P, tu caricavi sul micro di arduino invece che sul micro esterno

il problema è che ancora non ho capito perchè. La riga di comando dovrebbe essere corretta

C:\avrdude>avrdude -C avrdude.conf -p m328p -c stk500v1 -P\.\COM3 -U flash:w:Blink.cpp.hex -b 115200

Finisco di leggere le guide e poi torno alla carica :stuck_out_tongue:

Scusa, ti prego di non farmi rileggere tutto; se mi fornisci le info che ti chiedo forse posso aiutarti a trovare il problema....

Versione Arduino
Versione IDE
Elenco dei collegamenti tra Arduino e il micro in stand-alone
Micro da programmare

Sono stra-convinto che tu stia lavorando con AVRDUDE sul micro di Arduino e non su quello in stand-alone

E' plausibile.
E poi non capisco come se metti la velocità a 115200 ti possa funzionare quando l'ArduinoISP lavora a 19200 e se non specifichi questa velocità la comunicazione tra avrdude e programmatore non parte.

l'arduino che uso come isp è un UNO SMD.
l'IDE è il 22 (specifico che non sto utilizzando l'ide ma il suo avrdude)
Il micro é ATmega328p
I collegamenti domani li spulcio nuovamente e te li trascrivo.

La tua idea é corretta sia per la questione del baudrate sia perche l'ho verificata direttamente con il caricamento del Blink.cpp.hex.

Perché?
Ho anche provato a sostituire stk500v1 con avrisp.

p.s. la guida non è raggiungibile. Anzi, tutto il sito michelemenniti.it non è raggiungibile.

il mio sito ora è ok, la Guida ti serve solo per verificare i collegamenti, pomeriggio rientro a casa e ti posto la riga corretta. Ciao

Punkrazio:
l'arduino che uso come isp è un UNO SMD.
l'IDE è il 22 (specifico che non sto utilizzando l'ide ma il suo avrdude)

Sì ma quale ArduinoISP hai caricato sull'Arduino?
Quello dell'IDE 0022 o di un'altra versione?

Il micro é ATmega328p

Siamo punto e a capo.... qual è il micro che vuoi programmare? Un Atmega8 oppure un Atmega328? Ad ogni post cambi... :~

La tua idea é corretta sia per la questione del baudrate sia perche l'ho verificata direttamente con il caricamento del Blink.cpp.hex.
Perché?

Sono sicuro che il baudrate deve essere a 19200 se vuoi dialogare con l'ArduinoISP. Altrimenti lo sketch "è sordo".

Ho anche provato a sostituire stk500v1 con avrisp.

Per l'ArduinoISP ci vuole "stk500" oppure "stk500v1".

Eh si, scusate mi rendo conto di aver generato molta confusione perche stavo usando entrambi nella speranza che uno dei due funzionasse.

Comunque da ieri mi concentro solo sul 328p come consigliato da PaoloP.

Sia la questione del baudrate a 115200 che la signiture sbagliata credo che siano spiegabili dal fatto che stavo comunicando con l'arduino e non con l'integrato. A sostegno di questo posso far notare che con -b 19200 la comunicazione non avveniva.

lo sketch Arduino ISP che ho usato è quello dell' IDE 0022

Grazie della pazienza. Ormai mi sto convincendo che il problema sia nei collegamenti ma ieri non avevo un quarzo nuovo. Oggi me lo procuro.

Scaricati l'ultima versione dell'IDE, la 1.0.4.
Mi pare siano state fatte delle modifiche allo sketch "Arduino ISP".

Punkrazio:
il problema è che ancora non ho capito perchè. La riga di comando dovrebbe essere corretta

C:\avrdude>avrdude -C avrdude.conf -p m328p -c stk500v1 -P\.\COM3 -U flash:w:Blink.cpp.hex -b 115200

Finisco di leggere le guide e poi torno alla carica :stuck_out_tongue:

Prova così:
C:\avrdude>avrdude -C avrdude.conf -p m328p -c stk500v1 -b 19200 -P COM3 -U flash:w:Blink.cpp.hex:i

se i collegamenti sono esatti ti assicuro che funziona all'istante (naturalmente il Blink.cpp deve trovarsi nella cartella avrdude)

questa sintassi vale se usi ArduinoISP della 0022

A parte le problematiche che stai avendo, riguardo all'argomento del topic, questo può essere interessante
--> AVRDUDESS – A GUI for AVRDUDE | Zak’s Electronics Blog ~*

Tana!

Volete sapere subito la conclusione?
I collegamenti. Ancora non so cosa di preciso ma suppongo un falso contatto o una saldatura fredda perchè, come ho già detto quella pcb ha già funzionato ad ottobre.

Ho provato la riga di comando mennitica e come al solito non ha funzionato. A questo punto ho dissaldato il quarzo (che ormai ha deipiedini ini ini ini) e ho rifatto tutto su breadboard. A quel punto tutto Ok!

Scusate dinuovo per la lunga discussione ma vi assicuro che per me non è stata inutile.

Ho imparato:
-che se il collegamento è sbagliato si programma l'arduino usato come programmatore
-che la signiture idica il tipo di processore
-dove trovo la corrispondenza tra signiture e nome dell'integrato
-che l'arduino ISP funziona solo a 19200
ma soprattutto...

...non fidarti mai di nulla, anche di quello che ha già funzionato :~

Punkrazio:
Ho imparato:
-che se il collegamento è sbagliato si programma l'arduino usato come programmatore

Su questo non sono d'accordo, se i collegamenti sono sbagliati non si programma nessun micro, ne' quello integrato sull'arduino ne quello esterno. Quello sull'arduino si rpogramma se sbagli a scegliere il comando da menu' dell'ide