Utilizzo file hex ed eep già precompilati

Qursta è facile
Hai comprato dei 328 invece arduino lavora con i 328P
Controlla bene la sigla stampata sopra a componente per conferma.

Se ho ragione controlla sul sito del Menniti che ha creato una guida anche per gedtire i vecchi 328 senza P (picopower)

Purtroppo no, è un 328p . Quello che non capisco è perché non riesco più ad utilizzare l'atmega8 con le stesse modalità che avevo già usato.

È un falso ? Dove lo hai comprato ?
La mia non è semplice ipotesi ma è corroborata dai fatti, la signature che tu hai postato è quella del 328 no p.

Segui la guida sul 328 del menny, la trovi sul suo sito, e vedi se ti funziona

Atmega 8 (oppure 8A?) Che signature ha ?

I messaggi che ho postato però si riferiscono all' atmega8 (non ricordo se con A o senza). Comunque a questo punto la pulce nell'orecchio me l'hai messa. appena torno a casa provo nuovamente con il 328 e vedo che esce.

Stai programmando degli Atmega8 o degli Atmega328P? Ha ragione testato, ci sono discordanze nella firma digitale:
Atmega8: 1E 93 07
ATmega328P: 1E 95 0F

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

avrdude ha trovato un Atmega328P mentre tu gli stai dicendo di programmare un Atmega8.

PS:
se stai cercando di flashare il micro via ISP stai usando una velocità eccessiva. Con l'ArduinoISP caricato su un Arduino UNO, devi mettere "-b 19200".

Oh mamma! A furia di cambiare comandi e integrati mi sono incartato!
OK, azzero tutto, faccio una nuova breadboard con nuovi collegamenti e riprovò un mega per volta.

Leo la signature non e' del 328P ma del 328

avrdude.exe: Device signature = 0x1e950f

quidi la questione e' diversa,

per favore ci dici esattamente cosa e' scritto sul device ?
non e' che e' scritto 328-PU ?
se e' cosi' la P dopo il trattino non significa picopower, forse questo ti ha ingannato

Testato, la signatura 1E 95 0F è del 328P.
Datasheet pagina 289, cap. 28.3:

interessante :slight_smile:
non sono andato a vedere il datascheet ma mi sono fidato si quest'articolo che posta il risultato di avrdude:

avrdude: Expected signature for ATMEGA328P is 1E 95 14

Si vede che e' un copia incolla, non un errore di battitura, quindi avrdude sbaglia ?
l'articolo e' recentissimo, marzo2013
come si spiega ?
http://www.mycontraption.com/atmega328p-pu-and-1e950f-device-signature/

Punkrazio:
Sto provando a costruire il transistor tester che vi linko qui AVR-Transistortester – Mikrocontroller.net

E' stato fatto un porting del progetto che stai seguendo --> http://arduino.cc/forum/index.php/topic,163227.0.html

Non so che distribuzione usi quel tipo ma sicuramente una molto vecchia se non è aggiornato per il 328P, perché nel file /etc/avrdude.conf allegato alla versione di avrdude che uso sul mio sistema (5.11) la signatura per l'Atmega328P è quella corretta, 1E 95 0F.

Inoltre quel tipo mi pare un pò inesperto se scrive:

Upon further research, I now realize that there are actually a couple different types of Atmega328. The Atmega328P-PU and the Atmega328-PU.

Dopo un pò di ricerche, ho scoperto che ci sono al momento un paio di tipi differenti di Atmega328. L'Atmega328P-PU e l'Atmega328-PU.
:stuck_out_tongue_closed_eyes:

Ho provato a rispondere prima ma nei boschi di Montegabbione la connessione dati è scarsa. Dovrò segnalare la cosa :stuck_out_tongue:
Comunque grazie dell'aiuto e non appena torno a casa ci faccio un report completo e dettagliato. In tanto ho capito diverse cose che mi saranno utili.

@PaoloP grazie della segnalazione. In realtà il transistor tester l'ho completato ad ottobre ma sono comunque interessato alle evoluzioni

capisco, quindi vecchissima versione, mi sembra strano pero' che quelli di avrdude abbiano fatto un errore del genere nell'inserire un nuovo micro quando e' uscita la versione P
forse e' un avrdude pasticciato in precedenza e poi lo ha dimenticato :slight_smile:
cmq credo questa discussione sia stata utile a punk :slight_smile:

cmq credo questa discussione sia stata utile a punk

indubbiamente si e al proposito un chiarimento

Dopo un pò di ricerche, ho scoperto che ci sono al momento un paio di tipi differenti di Atmega328. L'Atmega328P-PU e l'Atmega328-PU.

perché è un affermazione sbagliata? In fin dei conti uno è picopower e l'altro no.

Testato:
capisco, quindi vecchissima versione, mi sembra strano pero' che quelli di avrdude abbiano fatto un errore del genere nell'inserire un nuovo micro quando e' uscita la versione P
forse e' un avrdude pasticciato in precedenza e poi lo ha dimenticato :slight_smile:

Se ha installato avrdude da un repo, può darsi che si sia ritrovato una versione vecchia, pubblicata quando ancora il 328P non era stato rilasciato.
Può anche darsi che abbia manomesso lui quel file ed il tipo non se lo ricorda neanche più :stuck_out_tongue_closed_eyes:

Punkrazio:
perché è un affermazione sbagliata? In fin dei conti uno è picopower e l'altro no.

E' un'affermazione non sbagliata ma da ignorante, ossia di uno che ignora le cose.
A marzo del 2013 non puoi affermare che non sapevi che esistesse l'Atmega328P quando io ho comprato la scheda Arduino nell'ottobre del 2010 e già montava quel chip. Quindi era per lo meno già in commercio da un pò di tempo (non so esattamente da quando). E nel 2013 uno che tiene un sito su Arduino, robotica ed altri microcontrollori non conosce il 328P? Mi suona di "strano" :sweat_smile:

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!