Utilizzo file hex ed eep già precompilati

I micro ATMEL escono già settati per operare con oscillatore interno a 1MHz; se devi impostare il micro per continuare a farlo lavorare con oscillatore interno non c'è bisogno che usi quarzo e C, che invece diventa indispensabile se vuoi programmare un micro già impostato per lavorare con l'oscillatore esterno. In pratica il Programmatore ISP non ce'ntra niente con la questione quarzo&C, è lo status pre-programmazione del micro che ne richiede la presenza o meno, per poter lavorare e rispondere alla programmazione ISP, ok? Nella Guida tu vedi usare il quarzo anche alla prima programmazione, se il chip è vergine non servirebbe, ma non sono stato a specificare questa cosa per la semplice ragione che non fa male usare un quarzo&C e: 1 - se il micro è impostato per l'oscillatore esterno è indispensabile che ci siano 2 - se il micro è impostato per l'oscillatore interno semplicemente vengono ignorati ;)

Grazie del chiarimento. Ho fatto una piccola pcb shield (il mio primo lavoro con eagle, cloruro ferrico &co XD )e a questo punto posso considerarla a tutti gli effetti abile ed arruolata.

Punkrazio: Grazie del chiarimento. Ho fatto una piccola pcb shield (il mio primo lavoro con eagle, cloruro ferrico &co XD )e a questo punto posso considerarla a tutti gli effetti abile ed arruolata.

SSS! (Signorsì Signor Sergente) XD

Purtroppo eccomi nuovamente qui a chiedere aiuto. Ho pensato di riesumare questo topic perchè in fin dei conti devo continuare il discorso iniziato qui. In sostanza a distanza di 6 mesi, memore della conquista dell'atmega8 stand alone, ho azzardato con un atmega328P vergine. Ho utilizato la stessa board che avevo utilizato con successo per l'atmega8 il che mi da una buona garanzia circa i collegamenti. Ovviamente ho avuto dei problemi. Sia tramite ide che tramite avrdude ho continuato a ricevere errori. Allora ho cercato di replicare quanto fatto in precedenza montando nuovamente un atmega8. Misteriosamente non riesco ad eseguire nessuna operazione. Nemmeno utilizando il codice che avevo già postato e che funzionava. Nemmeno la scrittura dei fuses.

Questo è uno dei vari codici che ho scritto:

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

e questo è il risultato:

avrdude.exe: successfully opened stk500v1 device -- please use -c stk500v1

avrdude.exe: stk500_program_enable(): protocol error, expect=0x14, resp=0x50 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.

avrdude.exe done. Thank you.

allora ho provato a cambiare il baudrate:

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

e il risultato è questo:

avrdude.exe: successfully opened stk500v1 device -- please use -c stk500v1

avrdude.exe: AVR device initialized and ready to accept instructions

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

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

avrdude.exe done. Thank you.

Niente di meglio passando tramite l'ide. Se provo a caricare il bootloader dell'Arduino NG or older w/ ATmega8 nell'atmega8 ottengo:

avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.

Se passo direttamente ad uno sketch ottengo:

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

Ho provato tutto questo con e senza condensatore. Collegandolo al 3,3v e al 5v. Ho riavviato il pc. Ho offerto in sacrificio il gatto.

Non riesco proprio a capire cosa non va più....

AIUTOOOOOO

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 328*P*. Datasheet pagina 289, cap. 28.3:

firme.jpg|950x429

interessante :) 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 http://translate.google.com/translate?prev=hp&hl=en&js=y&u=http%3A%2F%2Fwww.mikrocontroller.net%2Farticles%2FAVR-Transistortester&sl=de&tl=en&history_state0=

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:

firma.jpg|693x259

Ho provato a rispondere prima ma nei boschi di Montegabbione la connessione dati è scarsa. Dovrò segnalare la cosa :P 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 :) cmq credo questa discussione sia stata utile a punk :)

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 :)

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: