Go Down

Topic: Cerco di programmare ATmega328 con la 2009, dove sbaglio? (Read 4 times) previous topic - next topic

Michele Menniti

Dovendo programmare dei chip vergini ed avendo la UNO (NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch), ho comprato anche la 2009, da usare per qualche altra applicazione. Ho realizzato la versione breadboard e, seguendo il tutorial (almeno mi pare…) ho fatto così:
1 - La 2009 come sorgente col proprio chip (quindi uso il pin 10)
2 - La Bread come destinazione col chip vergine (quindi uso il Reset)
3 -Ho collegato al PC l'USB della 2009
4 - Nel programma (vers. 022) ho selezionato la seriale della 2009 e la 2009 come board (Arduino Duemilanove or Nano w/ ATmega328 - You'll need to select the board and serial port from the Tools menu that correspond to your board)
5 - In Burn Bootloader ho selezionato w/Arduino as ISP (Use the Burn Bootloader > Arduino as AVRISP command)
Risultato:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Il mio dubbio è: You can do this using an Arduino board as an in-system program (ISP).
Significa che NON devo usare l'USB ma i sei pin ISP? Se la risposta è sì come li collego?
Prima di scrivere ho fatto decine di prove con la UNO, la 2009 e perfino la Luigino (compatibile alla 2009), ma sempre collegando l'USB
Infine, naturalmente vorrei usare 2 Arduino per fare questa operazione, ho capito che la Uno non può essere usata come programmatore ma come target va bene? Il dubbio mi esce sul fatto che il tutorial mostra un'immagine sulla quale è scritto espressamente che il circuito targeting è una 2009 o diecimila).
Vi prego aiutatemi, ho letto alcuni post recenti e tutti confermano tutto, ma allora cosa sbaglio?
Ho ben 10 Atmega 328, attualmente figli di NN, che aspettano una paternità….
Grazie.
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

KrashNet

#1
Mar 22, 2011, 02:06 pm Last Edit: Mar 22, 2011, 02:19 pm by KrashNet Reason: 1
Magari dico una cavolata...
mi pare che per usare arduino duemilanove come programmatore devi togliere l'atmega dalla scheda che usi come ISP... controlla nel tutorial se lo dice!
O forse si fa in questo modo solo per caricare li sketches! Boh non ho ancora provato!
.

Michele Menniti

Ciao, per scrupolo l'avevo fatta la prova, ma il tutorial dice chiaramente che questa cosa va fatta solo per caricare gli skecth, come giustamente concludi tu.
Ma tu l'hai fatta questa operazione? Hai usato l'USB? Sono veramente disperato, mi seccherebbe proprio aver speso i soldi per una 2009 senza risolvere niente, anche se potrebbe servirmi per altro; peggio ancora per avere tutti questi ATmega senza poterli utilizzare!
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

lesto

stai facendo confusione, esistono vari metodi.
Se vuoi usare la 2009 come ISP, guarda negli sketch di esempio, c'è uno sketch che se caricato trasforma l'arduino in ISP:
Quote
// this sketch turns the Arduino into a AVRISP
// using the following pins:
// 10: slave reset
// 11: MOSI
// 12: MISO
// 13: SCK

// Put an LED (with resistor) on the following pins:
// 9: Heartbeat - shows the programmer is running
// 8: Error - Lights up if something goes wrong (use red if that makes sense)
// 7: Programming - In communication with the slave


altrimenti puoi togliere l'atmega e saldare sulla scheda dei pin si MOSI MISO e SCK, e usare la voce "Burn Bootloader"
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Michele Menniti

Grazie lesto,
ho trovato lo sketch, per una prova al volo posso evitare di realizzare la circuiteria dei pint 7-8-9, tanto sono tutti in Output, e naturalmente uso la bread (o una eventuale Arduino) come destinazione, vero?
Invece vorrei un chiarimento su:
Quote
altrimenti puoi togliere l'atmega e saldare sulla scheda dei pin si MOSI MISO e SCK, e usare la voce "Burn Bootloader"

cioè tolgo l'atmega dalla 2009 e poi ? ti spiace spiegarmi esattamente cosa devo fare con questi 3 pin? ti riferisci a 11,12,13 della 2009? attualmente sono collegati alla BB sui pin dell'atmega vergine, così come nelle immagini del tutorial, inoltre il 10 è collegato al reset dell'atmega vergine.
Scusami ma non ho mai fatto né visto questa operazione.  :smiley-red:
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

lesto

Per la prima domanda, sì,, puoi evitare ma fai  attenzione che abbia finito il suo lavoro prima di staccare tutto.

per la seconda domanda:
se guardi gli schemi arduino, noti che ci sono 4 pin non collegati che arrivano dall'FTDI.
devi saldarci 4 pin e a quel punto usi il chip FTDI direttamente per programmare l'arduino.
ti sconsiglio questo sistema visto che puoi usare direttamente lo sketch, cosa molto meno invasiva.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Michele Menniti

Sì, sì, certamente, era solo per "sete di sapere", questo mondo, per me nuovissimo, avendo solo qualche esperienza di elettronica di base, mi sta affascinando (forse troppo).
Un'ultima sola domanda (poi corro a provare, ho il mio mini-lab a qualche km da casa): come faccio a scegliere, secondo necessità, il bootloader della 2009 o della UNO, mi è sufficiente selezionare la relativa board a prescindere dal fatto che sia sempre collegata la 2009?
Grazie mille!
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

KrashNet

Se riesci a fare un paio di foto dei collegamenti e postarle qui quando tutto funziona, possono tornare utili a molti! (me compreso)
.

lesto

prima di partire stampati queste pagine:
http://www.arduino.cc/playground/Code/MegaISP
e
http://arduino.cc/en/Tutorial/ArduinoISP

good luck!
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

GianfrancoPa

Purtroppo non ho esperienze con la 2009, però ho programmato un bootloader usando la UNO:

1) Seleziona dal menuTools/Board --> "Arduino UNO"
2) Dal menu Tools/Serial Board, seleziona la porta come dell'Arduino UNO.
3) Carica lo sketch ArduinoISP (0022) senza alcuna modifica
4) Segui questo tutorial: http://arduino.cc/en/Tutorial/ArduinoISP per collegare in maniera appropriata i due Arduino (oppure Arduino + breadboard)
5) Nell'Arduino che fa da programmatore metti una capacità da 10 uF (cavo lungo su
reset, corto su GND)
6) Seleziona dal menu Tools/Burn Bootloader --> w/ Arduino as ISP
Gianfranco

lesto

GianfrancoPa il punto 1 è errato, devi selezionare il modelllo di board da programmare con arduino ISP. Dopo, al punto "5,5", selezioni la board UNO
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

GianfrancoPa

Questa è la procedura che ho usato per programmare un Arduino UNO con un altro UNO, sinceramente non ho provato con altre schede anche perchè non ne ho...
Gianfranco

Michele Menniti

AAAAARGH!
Ma perché allora tutti, dico tutti, tutorial compreso  ]:) dicono che con la UNO non si può fare? Era tutto un problema di ritardare l'autoreset con un condensatore? E lo dici così, come se niente fosse?  ;) c'è pieno di post che affermano l'impossibilità di questa operazione!
E comunque, rileggendo come si deve (e non con la fretta degli stolti  :smiley-roll-sweat:) ho visto che come prima cosa bisognava caricare lo sketch ArduinoISP, e non lo facevo, hai voglia di aspettare che funzionasse.
Va bene, stasera farò mille prove, poi scriverò un tutorial con tutte le possibili soluzioni, con tanto di foto (in questo sono molto bravo, non come ad usare Arduino!) e lo posterò in un topic dedicato a tutti i principianti come me, con tanto di ringraziamenti a tutti coloro che, come te e lesto, hanno contribuito a farmi risolvere questa cosa.
Grazie ad entrambi!!!!
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

lesto

non fare un topic, crea una pagina nel playground (che in pratica è la wiki)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

xelendilx


GianfrancoPa il punto 1 è errato, devi selezionare il modelllo di board da programmare con arduino ISP. Dopo, al punto "5,5", selezioni la board UNO

Nel caso si voglia programmare un atmega su breadboard con il bootloader di arduino uno, cosa bisogna selezionare come board? Sempre arduino uno?

Go Up