Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #45 on: October 12, 2012, 01:55:34 am » |
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: ./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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #46 on: October 12, 2012, 02:12:39 am » |
Ok quella risposta è ancora valida  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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #47 on: October 12, 2012, 02:58:07 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #48 on: October 12, 2012, 02:59:49 am » |
Ottimo
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #49 on: October 12, 2012, 11:17:24 pm » |
Ho eseguito il comando e sembra essere andato tutto bene: ./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: 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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #50 on: October 13, 2012, 02:48:40 am » |
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  Quindi, ricapitolando. Ti scarichi il core Tiny e con quello sei già pronto a compilare a 16 MHz.
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #51 on: October 13, 2012, 04:15:48 am » |
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  Io la voce non l'avevo mi dici dive scaricare questo core?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #52 on: October 13, 2012, 04:23:53 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #53 on: October 13, 2012, 04:30:08 am » |
Scaricato. Appena posso provo.
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #54 on: October 13, 2012, 06:03:49 am » |
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #55 on: October 13, 2012, 08:11:11 am » |
Che ti dovevo rispondere?  L'hai programmato? Ci sei riuscito? Funziona tutto con i tempi giusti?
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #56 on: October 13, 2012, 08:56:06 am » |
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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #57 on: October 13, 2012, 09:08:05 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #58 on: October 13, 2012, 01:22:43 pm » |
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16547
Don't know what I do
|
 |
« Reply #59 on: October 14, 2012, 12:03:57 am » |
Guarda che la mia era una battuta  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  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
|
|
|
|
|
|