Go Down

Topic: ATtiny85 a 16mhz con High Frequency PLL Clock (Read 13654 times) previous topic - next topic

gioscarab

Ciao ragazzi. Con questo topic vorrei cercare di chiarire un punto... programmare un ATtiny85 a 166Mhz usando il High Frequency PLL Clock. Come potete vedere a pagina 26 e nel diagramma a pagina 24 (6.1.5) è possibile avere un systemclock di 16mhz al massimo con il comando CKSEL  0001.

Se volessi provare a fare un core per Pico85 smd a 16mhz, partendo da arduinotiny o saporetti cosa dovrei modificare?
Non riesco a trovare il punto nel core dove viene definito il clock e dove viene selezionato il clock interno a 1mhz (come uscito di fabbrica), trovo solo la definizione in boards.txt
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

menniti

Personalmente li ho usati sempre a 1MHz, ma anche i 328 escono ad 1MHz e, una volta settati correttamente i fuse, lavorano bene a qualsiasi frequenza, con o senza bootloader.
Penso sia sufficiente aggiungere il quarzo e i due C, cambiare i fuse, usare la board virtuale necessaria e tutto ti funzionerà a dovere.
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

gioscarab

Ciao Menniti. Stavo descrivendo come utilizzare il High frequency PPL clock interno al micro per andare a 16  :smiley-mr-green:, in internet inglese sembra una realtà accettata tra i nerd. Ne avevamo parlato tempo fa con Astrobeed ma la cosa era rimasta "da chiarire".
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

menniti

Pardon, hai ragione, ho letto 16MHz e mi sono tuffato a capofitto, senza calcolare gli scogli... :smiley-eek-blue:
Come non detto, su questo argomento sono chiavica :smiley-red:
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

lestofante

Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

gioscarab

#5
Sep 28, 2011, 09:56 pm Last Edit: Sep 28, 2011, 10:17 pm by gbm Reason: 1
hahaa sono pirla, mi è partito un 6. Cmq il passo dopo il PPL è l'overclock e non mi fermo finchè non piglia fuoco, promesso  :smiley-mr-green:
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

menniti



programmare un ATtiny85 a 166Mhz


se ce la fai ti bacio  :P


hahaa sono pirla, mi è partito un 6. Cmq il passo dopo il PPL è l'overclock e non mi fermo finchè non piglia fuoco, promesso  :smiley-mr-green:

Cioè, farai di tutto per vincere il bacio di lesto? Confermo, sei un p :P  :smiley-yell:
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

gioscarab

ok facciamo cosi' se arrivo a 166mhz lesto da un bacio a menniti  :smiley-mr-green: ahahah
Cmq a parte gli scherzi mi spiegate come programmare tramite un arduino i fuse di un tiny??
Almeno faccio i test e vi so dire subito, unica cosa io sono su linux
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

leo72


menniti


ok facciamo cosi' se arrivo a 166mhz lesto da un bacio a menniti  :smiley-mr-green: ahahah
Cmq a parte gli scherzi mi spiegate come programmare tramite un arduino i fuse di un tiny??
Almeno faccio i test e vi so dire subito, unica cosa io sono su linux

Puah! un cerchio che non mi piace per niente.
L'unico modo è da riga di comando AVRDUDE, con la programmazione ISP non ci siamo ancora riusciti :(
In alternativa serve un programmatore per micro ATMEL, ma il primo metodo è semplice ed economico, credo che Leo l'abbia riportato nel suo Tutorial sui Tiny85, proprio sul tuo sito  :smiley-mr-green:

@ Leo: 166MHz o programmazione ISP? :)
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.html
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html

leo72

Mettere il Tiny85 a 16 MHz usando solo il suo oscillatore interno  ]:D
Ora ho il blink compilato per 8 MHz che viaggia il doppio  XD

gioscarab

#11
Sep 28, 2011, 10:57 pm Last Edit: Sep 28, 2011, 10:59 pm by gbm Reason: 1
ce l'hai fatta?  :smiley-mr-green: grande.
Caxxo mi era sfuggito, pensavo servisse il tiny isp
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

leo72

No, ho usato l'Arduino come programmatore ISP secondo le impostazioni del mio articolo su Gioblu sulla programmazione dei Tiny85.

Adesso faccio una piccola prova, poi vi dico come fare.

gioscarab

Uhm... nel datasheet dice anche che cosi' un timer perde il suo clock? O qualcosa del genere?
Vedo di farlo pure io e capire se la funzione millis resiste oppure no  :smiley-mr-green: o se il pwm funziona.
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

leo72

Secondo il datasheet bisogna programmare il fuse CKSEL su $0001 e poi impostare il bit PLLE del registro PLLCSR ad 1. Ma a me va senza quest'ultima impostazione. Boh... comunque basta programmare il fuse basso dell'Attiny con questo comando:

Code: [Select]
./avrdude -P /dev/ttyACM0 -C ./avrdude.conf -U lfuse:w:0xf1:m -p t85 -c stk500v1 -b 19200

che dovete date dalla cartella /arduino-0022/hardware/tools in modo da usare avrdude distribuito con l'IDE, che può vedere l'Arduino come programmatore ISP.

Il fuse basso così settato ($F1) imposta il PLL interno e disattiva il divisore 8x sul clock dell'oscillatore, per cui: 8 MHz * 8 = 64 MHz / 4 (il divisore 1/4 interno) = 16 MHz finali

Se caricate il Blink usando il profilo modificato per un Attiny85@8 MHz vedrete il led lampeggiare al doppio della velocità.

Go Up