Pages: 1 2 3 [4] 5   Go Down
Author Topic: ATtiny85 a 16mhz con High Frequency PLL Clock  (Read 4937 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Basta programmare un fuse del microcontrollore. Ti riquoto questo mio vecchio post:
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:
./avrdude -P /dev/ttyACM0 -C ./avrdude.conf -U lfuse:w:0xf1:m -p t85 -c stk500v1 -b 19200

che dovete dare 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à.

Ovviamente si usa ora la cartella arduino-1.0.1
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok quella risposta è ancora valida  smiley
Quindi non devo caricare il bootloader a 8Mhz come spiegato qui "Configuring the ATtiny to run at 8 MHz (for SoftwareSerial support)"

Ma lanciare quel comando.
Non dovrei farmi una board virtuale per i 16MHz
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

1) Per modificare i fuse basta agire da terminale usando avrdude. L'uso del bootloader è inutile se sai muoverti sul terminale. Tieni poi a mente che il bootloader per i Tiny è "finto" nel senso che è un file vuoto, serve solo per poter modificare i fuse ma, almeno con con la 0022, non funzionava neanche come procedura. Non so se con la 1.x adesso va. Io però cambio i fuse da terminale per abitudine, quindi non so dirti.

2) è ovvio che poi devi crearti una board virtuale con Attiny85 a 16 MHz per poter compilare del codice con le giuste tempistiche, altrimenti hai tempi di esecuzione sfalsati. Basta che prendi quella per il Tiny a 1 o a 8 MHz e poi cambi la voce relativa al clock.
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho eseguito il comando e sembra essere andato tutto bene:

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

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e930b
avrdude: reading input file "0xf1"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xf1:
avrdude: load data lfuse data from input file 0xf1:
avrdude: input file 0xf1 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Poi ho creato la board virtuale:

Code:
attiny85-16.name=ATtiny85 (internal 16 MHz clock)
attiny85-16.bootloader.low_fuses=0xf1
attiny85-16.bootloader.high_fuses=0xdf
attiny85-16.bootloader.extended_fuses=0xff
attiny85-16.upload.maximum_size=8192
attiny85-16.build.mcu=attiny85
attiny85-16.build.f_cpu=16000000L
attiny85-16.build.core=arduino:arduino
attiny85-16.build.variant=tiny8

Ho fatto bene?
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non mi torna quel "variant:tiny8" che hai messo in fondo.

Ma lo hai scaricato il core Tiny? La nuova voce la devi ovviamente mettere nel file boards.txt che trovi in /hardware/tiny, non in /hardware/arduino.

EDIT:
ho controllato ora il file boards.txt che è fornito con il core Tiny. Esso contiene già la voce per poter compilare per un Attiny85 a 16 MHz col PLL interno. Non me ne ero accorto perché normalmente tolgo le voci che non mi servono per ridurre il numero di board presenti nel menu a tendina  smiley-sweat

Quindi, ricapitolando. Ti scarichi il core Tiny e con quello sei già pronto a compilare a 16 MHz.
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il variant:tiny8 l'ho trovato nella definizione per l'attiny85 a 8Mhz scaricata da qui: http://hlt.media.mit.edu/?p=1695

...
ho controllato ora il file boards.txt che è fornito con il core Tiny. Esso contiene già la voce per poter compilare per un Attiny85 a 16 MHz col PLL interno. Non me ne ero accorto perché normalmente tolgo le voci che non mi servono per ridurre il numero di board presenti nel menu a tendina  smiley-sweat

Io la voce non l'avevo mi dici dive scaricare questo core?
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il core Tiny è il core di riferimento quando si parla di programmazione di Attiny25/45/85, Attiny24/44/84 e Attiny2313/4313.
Lo puoi scaricare da qui:
http://code.google.com/p/arduino-tiny/

Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scaricato.
Appena posso provo.
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa Leo non mi hai risposto niente sulla programmazione a 16Mhz.
http://arduino.cc/forum/index.php/topic,73754.msg954729.html#msg954729
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa Leo non mi hai risposto niente sulla programmazione a 16Mhz.
http://arduino.cc/forum/index.php/topic,73754.msg954729.html#msg954729
Che ti dovevo rispondere?  smiley-sweat
L'hai programmato? Ci sei riuscito? Funziona tutto con i tempi giusti?
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bè potevi rispondermi si o no dopo aver letto il log che ho postato.
Per il resto il blibk sembra blinkare correttamente ricompilato a 16Mhz
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bè potevi rispondermi si o no dopo aver letto il log che ho postato.
Uh... pignolo...
Facciamo così, quando mi ringrazi per tutti gli aiuti che ti ho dato, allora ti rispondo anch'io....
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-red ops chiedo venia non l'ho fatto a posta,e sicuramente, non rientra nel mio modo di fare il non ringraziare chi mi aiuta.

Come puoi vedere dai miei diversi post:
http://arduino.cc/forum/index.php/topic,126882.msg954739.html#msg954739
http://arduino.cc/forum/index.php/topic,126172.msg948602.html#msg948602
http://arduino.cc/forum/index.php/topic,126172.msg949582.html#msg949582
http://arduino.cc/forum/index.php/topic,126172.msg949552.html#msg949552
http://arduino.cc/forum/index.php/topic,126172.msg950138.html#msg950138
http://arduino.cc/forum/index.php/topic,126172.msg952608.html#msg952608

l'ho sempre fatto.

Quindi vedo di rimediare mandanti un enorme GRAZIE MILLE per tutto.

Scusa smiley-sad-blue
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22966
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda che la mia era una battuta  smiley-razz

Tornando alla domanda, era implicito che avessi fatto bene, d'altronde te lo aveva confermato anche avrdude che tutto era andato per il verso giusto  smiley-grin
Ti avevo però posto una domanda a cui non mi hai risposto (variant:tiny8) ma poi ho capito che quella voce doveva essere dovuta all'uso del core di David Mellis al posto del core Tiny.
Logged


Pages: 1 2 3 [4] 5   Go Up
Jump to: