In this video I show how you can use a 32KHz watch crystal on an ATtiny85 for precise timing.
We use the timers overflow to indicate when 1 second has passed which wakes up the ATtiny85 and turns an LED on or off and then goes back to sleep (which when in sleep mode with the LED off, it consumes about 60-70uA of current).
This can be used for applications such as clocks, data loggers, etc. If you are looking to minimise the current consumption when sleeping you’ll need to find a AVR with an independent timer clock like the ATmega328 so you can put the AVR on power-down whilst the timer is still running.
Fuse Calculator – http://www.engbedded.com/fusecalc
AVR Timing Calculator – http://frank.circleofcurrent.com/cache/avrtimercalc.htm
Download source: ATtiny25-45-85_Blink_32KHz_v1.0
I’ve been trying to duplicate your success, but it’s not working out so well. If I use a scope, I can see 32 kHz on the two crystal lines of my Tiny85, so I rather suspect the clock is running, but I can’t talk to it after setting the fuses as you did. I knew that I’d be needing to use -B with my usbtiny. As you, I tried using 250, but no dice. I’ve also tried about 6 different versions of the AVR-as-ISP-sketch-slowed-down with an uno, but none of them work.
What’s the magic?
Hi Nick,
It sounds like you are doing things right, can you try a bit of a higher bitclock -B, say 1000?
Also try bypassing the usbtiny’s reset pin and pull it low yourself.
I had the same issue as Nick above. The problem is that entering any delay > 250 into avrdude’s -B switch gets converted back down to 250:
>avrdude -p attiny45 -c usbtiny -B 500
avrdude: Setting SCK period to 250 usec
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Perfect.
I’m using a parallel programmer, STK200, and had to use -i 100 as an avrdude switch.
I’m using this to test xtals before soldering them into clocks. Probing the xtal directly can alter the rate slightly and is also difficult after assembly, in my case. This will help me weed out the bad ones.
NB: Not arduino just AVR-GCC + make on linux.