[time-nuts] 50/60 Hz clocks
Hal Murray
hmurray at megapathdsl.net
Sun Mar 20 23:10:17 UTC 2011
> If the plan is to drive a mechanical clock, I assume long term stability is
> more important than phase noise. Many small microcontrollers (I use 8051's
> from Silabs) have a built-in PLL that can be set to run at 15 MHz from an
> external 10 MHz reference (applied to the external oscillator input), and
> use the program space to implement a divider that will give you exactly 60
> Hz. That is a one chip solution. The processor will accept the sinewave from
> the reference oscillator without extra shaping circuit.
In case your favorite chip doesn't have a PLL... You can run directly from a
10 MHz clock as long as you can tolerate a bit more phase noise and/or spurs.
The software just gets a bit more complicated. Instead of dividing by N, it
has to mix delays of N and N+1 in the right ratio.
You can also do it with a DDS in a FPGA. The trick is to use a decimal adder
rather than a binary adder. 60/10000000 in binary isn't a clean fraction so
the clock will drift slightly.
[This should be simple, but I'm not sure I've got it right.]
On the other hand, if you use a 64 bit binary adder, that's 16*2^30*2^30 or
16*1E9*1E9 or 16E18. Call it 1E19. We are clocking at 10E7 Hz, so (worst
case) the counter will be off by a full cycle every 1E12 seconds.
There are 3E9 seconds per century. So after a century, the clock would be
off by 3E-3 cycles or 50 microseconds.
--
These are my opinions, not necessarily my employer's. I hate spam.
More information about the time-nuts
mailing list