Electronic – 3 Hz from a watch crystal


I have a stepper motor which step angle is 2 degrees. I want to display seconds using a needle attached to this stepper.

The watch crystal divides nicely to produce 1Hz pulses, so every second I can command the stepper to rotate CW 3 pulses (360 deg / 60 seconds = 6 degrees per second. Since the stepper goes 2deg per step, I need 3 of such pulses).

Now suppose I want to use each step to display seconds in a more smooth manner. I would need to step the motor every 1/3 of a second, or at 3Hz.

I'm trying to find out what's the best way to do that.

One obvious trick is to use a higher frequency (I'm using 64Hz) and tolerate some jitter. Is there any other way that will give me the exact 3Hz out of the 32.768kHz? (even knowing that one is not divisible by the other?)

BTW I'm using an MSP430, but this problem could be ported to any other platform.

Best Answer

You could do a 3:1 gear ratio and do the divisor at 32768.

32768 = 10,923 + 10,923 + 10,922 which indicates a state machine that first counts to 10,923 repeats and then drops a count, it would be accurate every 3 seconds. The worst absolute error you would see is 31 PPM which is about what the crystal can do (depending on your crystal).