Go Down

Topic: Passare da 0022 a 1.0.1 per la programmazione ISP (Read 11979 times) previous topic - next topic

Michele Menniti

Marcus, la cosa bellissima è che mi sono ricordato che questo Topic è nato dopo che ho aiutato te e se apri il primo post c'è scritto tutto ciò che devi fare :smiley-sweat: :smiley-sweat: :smiley-sweat: a volte ritornano....
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

marcus barnet

Sisi, è solo che pensavo che per il componente smd magari serviva un altro settaggio dei fuses. Non serve quindi?
Tanto comunque uso la versione 1.0.1 dell'ide :)

E per la seconda soluzione con lo script come si può fare? Nella tua guida non se ne parlava se non ricordo male..

Michele Menniti


Sisi, è solo che pensavo che per il componente smd magari serviva un altro settaggio dei fuses. Non serve quindi?
Tanto comunque uso la versione 1.0.1 dell'ide :)

E per la seconda soluzione con lo script come si può fare? Nella tua guida non se ne parlava se non ricordo male..

No, ho appurato già che i fuse non cambiano nelle varie versioni del package. Con lo script dobbiamo ricorrere ad AVRDUDE via riga di comando. Ora pranzo e pennichella (stanotte ho lavorato e sono stato sul Forum fino alle 3, stamattina alle 8 a terra, ora avrei un po' di sonno :smiley-sleep: Nel pomeriggio se vuoi àrmati di ISP e giochiamo un po', ormai la mia fase di studio su questo programma è avanzata (voglio appunto scrivere una Guida specifica) e possiamo divertirci, senza rischi ma a patto che non parti di tuo. Ieri il mio compaesano crotonese ha fatto fuori un atmega8 per aver agito contro le mie indicazioni  =(, meno male che ne aveva un'altro e questa volta abbiamo programmato a meraviglia $)
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

marcus barnet

Non ti preoccure, ho almeno una decina di atmega :) anche io sono stanco quindi magari ci divertiamo a pomeriggio se ti va :) e ti ringrazio in anticipo :)

Michele Menniti


Non ti preoccure, ho almeno una decina di atmega :) anche io sono stanco quindi magari ci divertiamo a pomeriggio se ti va :) e ti ringrazio in anticipo :)

io son qui! Info:
versione IDE
modello Arduino usato come Programmatore
modello micro da programmare (specificare se è verginello o mestierante :smiley-mr-green:)
clock a cui dovrà lavorare
valori fuse da scrivere (opzionale se non hai idee chiare)
nome del file .hex se intendi flashare via avrdude.
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

marcus barnet

#95
Jul 22, 2012, 05:22 pm Last Edit: Jul 22, 2012, 05:25 pm by marcus barnet Reason: 1
Dunque:

L'ide è il 1.0.1 su windows xp
La scheda arduino è arduino UNO REV3 ma Ho a disposizione anche un arduino mega.
Il clock è 16 MHz.
Gli atmega328p versione smd sono tutti verginelli appena usciti dalla fabbrica e montati.
Purtroppo per i fuse non so dirti, ma mi piacerebbe documentarmi anche per capirne di più.
Il nome dell'hex supponiamo sia nomefile.hex tanto lo posso rinominare :)

Michele Menniti

Riguardo l'approfondimento sui fuse leggi questo mio intervento:
http://arduino.cc/forum/index.php/topic,115350.msg868386.html#msg868386

intanto prepara l'ambiente di lavoro: :)

Carica Arduino ISP sulla UNO (va benissimo questa)
Collega Arduino UNO e la tua scheda via ISP (un C da 10µF a portata di mano in caso di autoreset in agguato...)
Copia la cartella "avr" dell'IDE 1.0.1 in C:\
Copia il file nomefile.hex in C:\ (se non devi flashare nulla ma devi solo cambiare i fuse non è obbligatorio)

Dovrai creare un file batch, sempre in C:\ da eseguire manualmente dopo essere andanto in modalità di comando (DOS)

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

Michele Menniti

Pronto!
Come detto devi scrivere la riga di comando in un file batch e poi andarlo ad eseguire in modalità DOS.
Prima operazione (serve per verificare che il collegamento sia corretto ed efficace)

"C:\avr\bin\avrdude.exe" -C "C:\avr\etc\avrdude.conf" -p m328p -c arduino -P COMx -b 19200 -U lfuse:r:-:h
(ovviamente al posto della "x" devi mettere il numero della tua COM, che deve essere inferiore a 10).
Se è tutto a posto devi ottenere un messaggio che ti indica la signature del mega328P (1E 95 0F) ed il valore del Low Fuse, che nei micro vergini è 0x62.

In questo caso, e SOLO in questo caso, subito dopo puoi eseguire la riga definitiva (modificando il file batch precedente):

"C:\avr\bin\avrdude.exe" -C "C:\avr\etc\avrdude.conf" -p m328p -c arduino -P COMx -b 19200 -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -U flash:w:"C:\nomefile.hex ":i

Se invece alla prima riga ottieni errori di timeout, sync o quant'altro è INUTILE provare la seconda.
Fammi sapere.
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

marcus barnet

Questo è lo screenshot del primo comando inviato dal batch.
Mi appresto a eseguire il secondo comando.

Michele Menniti


Questo è lo screenshot del primo comando inviato dal batch.
Mi appresto a eseguire il secondo comando.

Se ti dà FF come LFuse siggnifica che quel micro è già programmato per i 16MHz, comunque questo non influisce, penso che anche il secondo comando andrà a buon fine
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

marcus barnet

Questo è lo screen del secondo comando che, però, non va a buon fine.

Ad un certo punto mi rileva un problema con i fuses: se scelgo YES si blocca e non va avanti, o meglio, sembra che tenti di fare qualcosa ma di fatto non fa nulla; se scelgo NO, il programma termina subito ma lo sketch non viene caricato.


marcus barnet

Aggiungo lo screen con la parte dell'errore:


Michele Menniti

ok rispondi N ma dimmi se questo micro lo hai mai programmato in precedenza o no, altrimenti non ci capisco nulla
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

marcus barnet

Sì, scusami, questo micro l'ho già programmato altre volte. Ho deciso di usare questo come cavia giusto per fare un tentativo.
Non ho quello vergine sotto mano, però ne ho un altro che non è mai stato programmato ma ha già il bootloader caricato.
Se necessario uso quest'ultimo..

marcus barnet

Se metto NO, lo sketch non viene caricato (su questo micro è già presente il bootloader).
Se metto YES, i led TX e RX sull'arduino UNO usato come programmatore restano accesi sempre e lo script in bash non termina mai.

(Aggiungo che comunque riesco a caricare lo sketch tramite l'IDE senza problemi e senza nemmeno il condesantore tra GND e RST).

Go Up