ATtiny85 a 16mhz con High Frequency PLL Clock

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.

Mmm, come è possibile che un PICO con i fuse settati a 1mhz funziona con un core in cui in boards c'è scritto 16mhz programmando correttamente? :astonished: :astonished:

Ci puoi anche scrivere di compilarlo a 100 MHz. QUello che cambia sono solo i tempi su alcune funzioni, ad esempio i delay. Puoi verificarlo caricando il Blink compilato a 16 MHz e caricato su un micro cloccato a 1 MHz e viceversa per capire cosa cambia dai lampeggi del led.

Oh oooooh? Sono Calimero :disappointed_relieved: se mi avessi dato ascolto già da ieri sera a quest'ora lo misureresti il clock, facendo prove elettroniche e NON visive, senza offesa per Leo che, giustamente, vedendoti restìo, ti dice tra le righe: almeno carica il blink invece di "giocare" con i motori :grin:
Giovà, sei troppo ariete, con le cornate non si aprono tutte le porte, ogni tanto bisogna provare a dare ascolto a coloro i quali chiedi pareri, altrimenti che si parla a fare?
Ma io sono un caso a parte, a me non mi ascolta nessuno, solo pe :(rché sono piccolo e nero....

Ehi Menniti io ieri sera ho provato a calcolare il clock con un Arduino usando una semplice funzione con micros() (perchè ho rotto l'oscilloscopio :()
Niente per qualche motivo non funzionava, ma era tardi. Quindi mi sono spostato sul servo :grin:
Oggi appena finito di lavorare faro' il test che entrambi consigliate.

Quello che mi sembra strano è che il servo funzioni correttamente a questo punto :grin:

Non so come funzioni un servo né come si comanda ma se non è gestito da tempi, allora va a prescindere dal clock.

Ragazzi.... non ricordate che anche io avevo problemi con i servi ???
Se usi la libreria SoftwareServo sei apposto... ho provato per una settimana chn la Servo.h a modificarla anche provando con gli altri timer ma senza risultato :zipper_mouth_face:
con la Sservo va senza problemi....

rattuccio, ma sta dicendo che NON ha problemi con i servi :smiley:

Appunto per quello sono :zipper_mouth_face:

Prompt dei comandi -> avrdude e poi procedi da riga di comando..

gozilla:
Dovrei fare la stessa cosa ma con windows 7 , purtroppo su linux non riesco a programmare il tiny, ho la versione ubuntu 11.10 e non va proprio.

Potresti provare con queste 2 modifiche:

Io non le ho ancora testate perché ho messo Kubuntu 11.04 e per ora non aggiorno.

Nella cartella dell'ide 0022 per windows non trovo avrdude (hardaware tools c'è ma non avrdude come comando)
COme faccio grazie.

Strano, deve esserci per forza altrimenti come fai a fare l'upload degli sketch, non trovi? :wink:
Mi sono scaricato più di 80 MB di roba per vedere dov'era... E' in hardware/tools/avr/bin :stuck_out_tongue:

Ciao a tutti.
Riprendo questo topic perchè vorrei mandare l'attiny85 a 16Mhz.
Da quello che leggo non c'è bisogno del quarzo esterno? O non ci ho capito nulla?

Se invece per pure caso avessi capito potreste spiegarmi come farlo con il software arduino?

Grazie

Basta programmare un fuse del microcontrollore. Ti riquoto questo mio vecchio post:

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:

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