Go Down

Topic: [Arduino as ISP]Programmare ATMEGA168 SMD (Read 2 times) previous topic - next topic

DarkIaspis

Ciao a tutti!
Ormai è da un po' che bazzico il mondo arduino, ma mai come adesso ho sentito il bisogno di rivolgermi specificamente a forum per risolvere un piccolo ma grande problema.
Non molto tempo fa mi è stato regalato una scheda per la gestione di segnali analogici che monta un ATMEGA168 (tipo SMD), senza però badare al fatto che per essere usato è chiesto il programmatore AVR.
Non ho resistito a cercare soluzioni con arduino. Infatti, manco a farlo apposta, c'è anche nell'IDE il programmino da installare che fa proprio al caso mio.
Fino ad oggi non si contano il numero di guide che ho seguito. La faccio molto sintetica:
1) ho collegato i pin D11 al MOSI, D12 al MISO D13 al SCK, D10 al Reset ed infine le alimentazioni.
2) ho programmato la mia arduino (uno rev2) come ISP
3) ho digitato il comando avrdude -P COM4 -b 19200 -c avrisp -p m168 -v -e -U flash:w:prova.hex
4) ottengo l'errore "avrdude: Device signature = 0x000000"

Ho provato di tutto: scaricato un altro programmino (ArduinoISP2), montato resistenza e/o capacità sul pin di reset della mia arduino, collegato resistenze al pin di reset della scheda con l'atmega168 smd. Insomma... non so più che devo inventare! Avete suggerimenti? Grazie per il supporto!


P.s. sulla scheda in questione è disponibile un bottone di reset. Mi sono accorto che se lo tengo premuto l'avrdude prosegue e risponde " stk500_program_enable(): protocol error, expect=0x14, resp=0x50
initialization failed, rc=-1" e poi " stk500_program_enable(): protocol error, expect=0x14, resp=0x51"

PaoloP

#1
Oct 10, 2012, 03:49 pm Last Edit: Mar 06, 2013, 07:04 pm by PaoloP Reason: 1
La guida definitiva!!  :smiley-mr-green: :smiley-mr-green: :smiley-mr-green: --> http://www.michelemenniti.it/arduino_burn_bootloader.php

Edit: Durante la programmazione potresti avere dei problemi a causa di altri circuiti presenti sulla scheda.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

DarkIaspis

Ho seguito la guida alla lettera, ma purtroppo continua a darmi quell'errore. A bordo del dispositivo non c'è nient'altro se non molti transistor discreti, led e capacità.

PaoloP

Puoi indicarci il modello della scheda o farci una foto oppure postare lo schema.
Dovresti controllare cosa c'è collegato ai pin MISO, MOSI e SCK del micro.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Michele Menniti

Quoto Paolo, usare AVRDUDE (peraltro ad occhio quella riga mi sembra sbagliata...) o l'DE direttamente non modifica la situazione; il condensatore (la R non serve più, v. ultimo aggiornamento della Guida) lo devi usare solo per l'errore dell'autoreset; i pin miso, mosi, sck del micro target DEVONO essere liberi, se c'è collegato qualcosa (basta una R di pull-down) è facile che la programmazione non vada a buon fine; se possiamo vedere lo schema elettrico del tuo circuito diventa facile capire se c'è un problema del genere. Nel caso puoi sempre ricorrere alla programmazione seriale, sempre che almeno i pin 2 e 3 del micro target siano liberi. Se così non fosse avrebbero creato una scheda NON programmabile, visto che il micro è smd e non puoi smontarlo.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up