Go Down

Topic: Utilizzo file hex ed eep già precompilati (Read 14833 times) previous topic - next topic

leo72


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" :smiley-sweat:

Punkrazio

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".

Quote
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
Quote

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

Quote
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

Quote

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

Quote
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

testato

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  :smiley-yell:

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
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

PaoloP

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)

Punkrazio

:smiley-eek:
Quote
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!

PaoloP

#35
May 07, 2013, 06:08 pm Last Edit: May 07, 2013, 06:13 pm by PaoloP Reason: 1
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".
:smiley-mr-green:
Come già detto, segui la mitica guida di Michele. Non sbaglia un colpo.  8)

EDIT:  :smiley-roll-sweat: Ho preso un granchio! Non stai usando l'IDE ma direttamente AVRdude.
Vuol dire che hai sbagliato comando.  :smiley-zipper:

Punkrazio

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 :) Comunque adesso seguo i vostri consigli.Metto da parte l'8A, scarico e leggo tutto quello che mi avete consigliato.


testato

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
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

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

menniti

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
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

leo72

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.

Punkrazio

#42
May 08, 2013, 12:39 am Last Edit: May 08, 2013, 07:21 am by Punkrazio Reason: 1
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.

menniti

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
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

leo72


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?

Quote

Il micro é ATmega328p

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

Quote

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".

Quote

Ho anche provato a sostituire stk500v1 con avrisp.

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

Go Up