Go Down

Topic: Arduino usato come ISP AVR (Read 4013 times) previous topic - next topic

BrainBooster

La basetta a parte che dici dovrebbe avere un minimo di componenti sù per l'atmega e un ftdi per la connessione al pc.
Praticamente un arduino con textool :)

giangi72

Si e no  :)

I componenti aggiuntivi costano veramente 2 soldi e come programmatore continuerei ad usare l'arduino.
In aggiunta userei l'ide o direttamente avrdude da linea di comando (a sapere come si fa :~)

lesto


Ho lanciato il comando segnalato ed ho avuto un errore sulla porta, non riusciva ad aprirla.
Ho lanciato quindi il comando
Quote
avrdude -p m328p -P com3 -c avrisp -b 19200

ed ho ottenuto il seguente risultato
Quote
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.

Domanda stupida: E ora?

Grazie


stai usando questa guida?
http://arduino.cc/en/Tutorial/ArduinoISP
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giangi72

Si, ho usato lo schema "Circuit (targeting an AVR on a breadboard)" sia il primo che il secondo e poi ho usato anche quello a questa pagina http://jimsmindtank.com/using-the-arduinoisp-sketch-part-1/

lesto

e che errore ti da usando il metodo del link?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giangi72

Quote
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.

Poi ho lanciato il comando
avrdude -p m328p -P com3 -c avrisp -b 19200
ed ho avuto la risposta
Quote
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.

Per questo chiedevo come continuare anche da riga di comando

lesto

avrdude -F -p m328p -P com3 -c avrisp -b 19200
ma sei sicuro del comando? è molto simile(se non lo stesso) a quello usato per programmare il bootloader usando solo il chip FTDI...

io ricontrollerei anche i collegamenti
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72

Ma quel comando mi pare che non faccia nulla, oltretutto.
Il parametro "p" imposta il microcontrollore, "P" la porta da usare, "c" il programmatore e "b" la velocità in baud.
E poi? Nel senso che ti manca il parametro "U" per programmare i fuse o il nuovo firmware.

giangi72

Il comando è quello (senza -F che in questo momento non serve perchè sta solo leggendo).

Espandendolo tramite help leggo
-p m328p =  -p <partno>                Required. Specify AVR device.
-P com3 = -P <port>                  Specify connection port.
-c avrisp = -c <programmer>            Specify programmer type.
-b 19200 = -b <baudrate>              Override RS-232 baud rate.

Quindi non ci sono scritture, solo letture ed, infatti, ottengo il risultato sperato: il device signature.
Lui dice "Expected signature for ATMEGA328P is 1E 95 0F" ed invece ottiene "Device signature = 0x1e9406"




giangi72

Leo72 mi ha preceduto di qualche secondo :)

Quel comando non mi serve per programmare, mi è stato consigliato da Fabio Varesano per controllare il chip e vedere che device signature ha e osa si aspetta

giangi72

Questo fine settimana ho fatto diverse prove.
La cosa più importante è che facendo delle prove di scrittura sul chip come
avrdude -p m328p -P com3 -c avrisp -b 19200 -F -B 3 -U lock:w:0x3f:m
ottengo errori
Quote
avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
avrdude: reading input file "0x3f"
avrdude: writing lock (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.13s

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

Reading | ################################################## | 100% 0.01s

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

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Quindi la scrittura è fallita

giangi72

Per la cronaca il chip che sto cercando di programmare è un ATMega 168P-20PU come leggo sul chip stesso

lesto

e allora per forza che non va, gli dici che è un 328p!
(con il comando -p m328p)
nella pagina del bitbang ci sono i codici per gli altri modelli come il tuo :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giangi72

Scusate ho scritto una ca...volata per la fretta.
Il chip che tento di programmare è un ATMega 328P-PU sul chip stesso è anche scritto un 1043.
L'arduino duemilanove che sto usando ha su un chip ATMega 168P-20PU con il numero 1016

lesto

ah ok, comunque a occhio c'è un'errore di comunicazione, se vedi quello che sei andato a scrivere è il bit di lock.. e comunque risulta sabgliato sul chip (0X00 anzichè 0x3f)
ricontrolla i collegamenti e vedi se per caso il 328 è stato bloccato contro le scritture... ma sicuro che non sia fritto?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up