[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