[time-nuts] ANFSCD - Synchronizing time in home video recorders

Robert LaJeunesse rlajeunesse at sbcglobal.net
Thu Feb 2 19:07:02 UTC 2012

One can do many things with a small micro having programmable logic cells, such 
as the Cypress PSOC. For grins I worked out (via spreadsheet) how to use the 
PSOC digital divider blocks and the built-in clock PLL to get from 10MHz to 
2.048MHz in a fairly precise manner. The scheme uses a divider switched between 
adjacent moduli (ala the TVB method?) to produce a low frequency that, upon 
multiplication by the clock PLL, gives an integer multiple of 2.048MHz. Not 
having actually done it there are 2 questions: 1) Can the 24MHz VCO be pulled to 
24.576MHz? and 2) Can the PLL track periodic jitter of about 0.7%. Since there 
are trimming bits for the VCO I suspect yes to #1, and some sort of passive low 
pass filter (PI or ladder network?) would reduce the jitter if #2 is a problem.

Here's the approach:

Feed 10.000000 MHz to an 8 bit digital divider block  
divide by 149 for 237 of 256 times
divide by 148 for  19 of 256 times
net divide of 148.92578125 to 1 results
divide result by 2 in an 8 bit digital divider block
(in order to get a good square wave)
net divide of 297.85156250 to 1 results at output pin
get 33573.77049 Hz, feed over to Ext Osc Input pin
PLL of 732x is part of PSOC
thus sysclk  24.576000 MHz results
and sysclkx2 49.152000 MHz results
divide sysclkx2 by 12 in an 8 bit digital divider block
divide result by    2 in an 8 bit digital divider block
(in order to get a good square wave)
Final frequency of 2.0480000 MHz results to output pin

FWIW the result is spot on, at least to the limits of my calculation tools.

Bob L.

From: Azelio Boriani <azelio.boriani at screen.it>
To: Tom Van Baak <tvb at leapsecond.com>; Discussion of precise time and frequency 
measurement <time-nuts at febo.com>
Sent: Thu, February 2, 2012 12:22:44 PM
Subject: Re: [time-nuts] ANFSCD - Synchronizing time in home video recorders

Yes, shortly after having sent out the message I realized that I was, as
usual, too fast. I'm aware that a simple microprocessor can't be used but a
Spartan3 can be involved. Then another problem: the 2.048MHz is about 1/5
of the 10MHz so it is not possible. Sofar the way out is: dividing the
10MHz by 625 and then multiplying by 128 using the DCM in the Spartan3...
but nothing clever in this method. Sorry, not a valid contribution.

More information about the time-nuts mailing list