Go Down

Topic: problemi nel programmare ATtiny84 (Read 5487 times) previous topic - next topic

ƎR

eh non lo so di preciso perchè non l'ho fatto io... Leo72 mi pareva l'esperto qui, per questo chiedo...
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Michele Menniti


eh non lo so di preciso perchè non l'ho fatto io... Leo72 mi pareva l'esperto qui, per questo chiedo...

Leo E' l'esperto, su questo non ci piove.
Ti sto chiedendo, poiché il micro, come scritto nella Guida di Leo, nasce di fabbrica a 1MHz, cosa hai fatto perché tu ora sei sicuro di averlo impostato a 8MHz?
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

ƎR

ho scelto come broad attiny84 a 8MHz e ho caricato il blink... Non ho capito cosa sono i fuse, dovevo modificare ache quelli?
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

ratto93


ho scelto come broad attiny84 a 8MHz e ho caricato il blink... Non ho capito cosa sono i fuse, dovevo modificare ache quelli?

Facendo come hai fatto, hai solo detto al compilatore che il micro va ad 8Mhz quando va in realtà 8 volte più lentamente, in questo modo i valori dei timer sono x8 da qui i tempi moltiplicati....
devi modificare i fuse per portarlo alla freq di 8Mhz , se guardi nel topic giocando con gli attiny 85 cè un mio post nelle ultime pagine in cui ho riassunto come fare... in windows...
Se corri veloce come un fulmine, ti schianterai come un tuono.

Michele Menniti

Confermo quanto ha scritto ratto, se leggi attentamente la Guida di Leo questa cosa dei fuse è spiegata, sono le impostazioni del micro affinché svolga le funzioni che tu vuoi, tra queste anche il clock esterno o interno e quanto deve essere (se interno), se non li cambi il micro lavora sempre a 1MHz, usando la board col valore 8000000 hai solo variato il coefficiente per le funzioni temporali, ecco perché ora sembra 8 volte più lento.
La programmazione dei fuse la puoi fare con un programmatore AVR o da riga di comando, se hai linux segui le istruzioni di Leo, se hai Windows trova il Topic, che deve essera ancora in prima pagina, nelle ultime pagine c'è l'intervento a cui si riferisce ratto, con le "sue" istruzioni.
Attenzione con i fuse: se fai qualche fesseria rischi di brickare il micro e poi ti serve per forza un programmatore per recuperarlo.
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

ƎR

così mi metti paura :) comunque grazie domani se ho tempo provo e vi so dire ;)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Michele Menniti


così mi metti paura :) comunque grazie domani se ho tempo provo e vi so dire ;)

No, è solo per farti capire che non è una cosa "tanto per provare", lo stesso Leo (e anche io...) può dirtene qualcosa. In bocca al lupo! :)
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

leo72

Dai, non ti preoccupare. Se metti i valori giusti, non puoi rovinare nulla  ;)
Cmq ti avevo già segnalato che dovevi riprogrammare i fuse del micro per avere gli 8 MHz. Puoi farlo con l'Arduino, se non hai altri programmatori. Basta seguire le istruzioni.

ƎR

si si ma non avevo capito bene... potete mettermi il link perfavore? grazie :)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Michele Menniti


si si ma non avevo capito bene... potete mettermi il link perfavore? grazie :)

la guida da cui hai tratto le info dovrebbe essere sufficiente, se cerchi il post di ratto cerca "giocando con gli attiny" e parti dall'ultima pagina a ritroso
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

leo72

http://www.gioblu.com/tutorials/programmazione/214

ƎR

ok ok il link  della guida ce l'avevo già :) non trovavo le istruzioni per portarlo a 8MHz nel topic che mi avevate suggerito... ma adesso l'ho trovato, grazie :)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

ƎR

scusate ma non ho mai usato il terminale :smiley-red:
qualcuno può gentilmente spiegarmi passo-passo come fare per portarlo a 8MHz usando un arduino come programmatore...
dovrei fare questo, giusto?
Quote
Se invece volete utilizzare l'Arduino UNO, dovete utilizzare avrdude distribuito insieme all'IDE di Arduino, che è una versione patchata di avrdude per riconoscere l'Arduino come programmatore ISP. Aprite quindi un terminale in /arduino-0022/hardware/tools e digitate il seguente comando:

./avrdude -P /dev/ttyACM0 -C ./avrdude.conf -U lfuse:w:0xe2:m -p t85 -c stk500v1 -b 19200

Che va interpreta nel seguente modo:
parametro "-P": specifica l'indirizzo del programmatore. Nel mio caso ho messo /dev/ttyACM0 ma dipende da sistema a sistema, potrebbe anche essere ad esempio /dev/ttyS0.
  Parametro "-U": indica su quale memoria del microcontrollore operare e che operazione deve essere eseguita. Nel nostro esempio "lfuse" indica il fuse basso ("low fuse"), "w" sta per scrittura ("write"), 0xe2 è il valore esadecimale da programmare, che disabilita il divisore x8 senza toccare le altre impostazioni di default del microcontrollore e "m" indica ad avrdude di usare direttamente il parametro ("m" per "immediate"). Se volete giocare con gli altri parametri dei fuse, potete usare l'utile Calcolatore online di fuse.
Parametro "-p": indica il tipo di microcontrollore, nel nostro esempio "t85" sta per ATtiny 85.
Parametro "-c": indica il programmatore da usare, in questo caso "usbtiny" sta per USBtinyISP.
Parametro "-C": indica un file di configurazione dei micro da usare per la programmazione
Parametro: "-b": indica la velocità di comunicazione in baud

//preso dalla guida http://www.gioblu.com/tutorials/programmazione/214-guida-alluso-dellattiny85

[font=Verdana]grazie[/font] ;)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

leo72

E cosa vuoi sapere di più? Ci sono già tutti i passaggi lì  ;)
Devi solo mettere (come già detto......) t84 al posto di t85 per scegliere il Tiny84.

ƎR

si la spiegazione è molto chiara:)
il mio problema è che non sono pratico del terminale :smiley-red: e non ho capito cosa si intende con "Aprite quindi un terminale in /arduino-0022/hardware/tools"
grazie
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Go Up