ATtiny85 a 16mhz con High Frequency PLL Clock

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 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à.

Applaaaaausiii, mi metto a fare il core, senti ma se partissi da sapo?

gbm:
Applaaaaausiii, mi metto a fare il core, senti ma se partissi da sapo?

cheeee?

@ Leo: quindi mi basta mandare LFuse=f1 col mio HV?

Non capisco come mezzo non lo usi :grin:.
Ho dovuto cercare in avrfreaks e vari altri siti peta nerd per trovare un parere positivo e la "prova" che fosse possibile :grin:

@Michele:
basta mandare quel fuse lì...

@gbm:
io uso il core Tiny da un po' e non mi trovo malaccio, anche perché come ti dissi tempo addietro, il core di Saporetti è fermo a 2 anni fa.

Ok parto da quello che consigli.
La dichiarazione del clock avviene solo ed esclusivamente in boards o è sparsa anche nei vari files?

leo72:
@Michele:
basta mandare quel fuse lì...

Di conseguenza, se invece di f1 mando b1 mi trovo 16MHz sul pin PB4 XD $) $)

direi, ma per cosa puo' esserti utile?

gbm:
Ok parto da quello che consigli.
La dichiarazione del clock avviene solo ed esclusivamente in boards o è sparsa anche nei vari files?

Solo in quel file.

@Mike:
sì, con una tolleranza del 10% aumentata di tutti i passaggi che il clock fa internamente :wink:

gbm:
direi, ma per cosa puo' esserti utile?

per esempio a fare da base dei tempi ad un circuito esterno, come una batteria di shift register

leo72:
sì, con una tolleranza del 10% aumentata di tutti i passaggi che il clock fa internamente :wink:

Certo, ormai si è detto in tutte le forme della elevata tolleranza dei timer interni :slight_smile:

Leo funziona, ti devo fare una statua :grin:

:*

gbm:
Leo funziona, ti devo fare una statua :grin:

Leo for ever XD XD XD
gbm, a questo punto fai anche la mia prova, in fondo ti basta cambiare una lettera e misurare con frequenzimetro o oscilloscopio l'uscita del pin PB4 :smiley:

Ciao! Si volentieri, adesso stavo testando i servo:

Nessun problema a 16mhz con softwareservo

Ho notato una cosa, se lancio la programmazione su un Pico85smd nuovo (quindi a 1mhz) dopo aver modificato opportunamente boards con i 16mhz questo si programma e funziona correttamente. O_o Dite che vengono settati automaticamente anche i fuses?

Se per "programmazione" intendi l'invio di uno sketch e se l'invio lo fai dall'IDE di Arduino, allora NON cambi i fuse.
L'IDE modifica i fuse solo se scegli l'opzione per flashare il bootloader... ma: per i Tiny85 non c'è un bootloader vero e proprio, c'è nel core Tiny un bootloader vuoto che servirebbe solo appunto per ingannare l'IDE e fargli modificare i fuse. Io però non sono riuscito nell'impresa.
Per cui modifico i fuse da terminale con avrdude.

Però da quanto dice sembra esserci riuscito :slight_smile:

gbm, fai la prova che ti ho detto, così vedi subito se sei riuscito a cambiare i fuse, in questo caso il micro lavora a 16MHz circa e sul pin li vedi.

Ma io ho messo diversi paletti.
Sappiamo per certo che l'IDE di Arduino NON modifica i fuse semplicemente inviando uno sketch. Non ha specificato se sta usando l'ArduOPEN e non so come lavora l'ArduOPEN.

leo72:
Ma io ho messo diversi paletti.
Sappiamo per certo che l'IDE di Arduino NON modifica i fuse semplicemente inviando uno sketch. Non ha specificato se sta usando l'ArduOPEN e non so come lavora l'ArduOPEN.

Hai ragione, io pensavo allo sketch ISP in dotazione al pico, NON ad ArduOpen, dovrebbe chiarire questa cosa.

Mmm utilizzando ArduOpen...
La cosa che mi stupisce è che sia riuscito a programmare un Pico85 SMD a 1mhz appena appena tirato fuori dal packaging, con ArduOpen e il core ArduinoTiny modificato per girare a 16mhz (in boards)... dite che in realtà lo programma a 1mhz?? mi sembra strano!

Se ArduOPEN è basato sull'IDE di Arduino e se non avete toccato nulla a riguardo di come l'IDE interagisce con avrdude, sono sicuro al 100% di quello che ho scritto. L'IDE cambia i fuse solo quando gli viene detto di flashare il bootloader. Nell'upload di uno sketch NON vengono programmati.