From: Martin Riddle on


"Tim Wescott" <tim(a)seemywebsite.com> wrote in message
news:r6ydnaZqRLr2aOjWnZ2dnUVZ_rZi4p2d(a)web-ster.com...
> On Fri, 12 Feb 2010 19:01:46 -0500, Martin Riddle wrote:
>
>> "Vladimir Vassilevsky" <nospam(a)nowhere.com> wrote in message
>> news:UqOdnWHSjYZDQOjWnZ2dnUVZ_gGdnZ2d(a)giganews.com...
>>>
>>>
>>> Chris wrote:
>>>
>>>> I need to make a PLL that slaves to a 24Hz square wave. The output
>>>> of
>>>> the loop would be a 60Hz square wave. Any CMOS level chips that
>>>> would
>>>> be good for this? I understand that I would need to divide by a
>>>> decimal value of 2.5 for the loop.
>>>
>>> Use a PIC.
>>>
>>> Lock on 24 Hz by input capture, generate 60 Hz by output compare. Do
>>> all PLL logic in software. There will be a jitter of +/-1 timer
>>> clock,
>>> however this will be much better then suggested analog solutions.
>>>
>>>
>>> Vladimir Vassilevsky
>>> DSP and Mixed Signal Design Consultant http://www.abvolt.com
>>
>> Hi Vladimir, Is there good reading references for doing a software
>> PLL
>> anywhere.
>> So far in my casual searches, I've found very little on a software
>> implementation.
>
> No, but here you go. This will be a complete document, with
> introduction, discussion, analysis, and a conclusion:
>
> Making digital PLLs in software is fun and easy (introduction).
>
> They're just like hardware PLL's (discussion)
>
> except where they're different (analysis).
>
> But they're easy, if you think hard. So go do it! (conclusion).
>
> Was that too terse?
>
> --
> www.wescottdesign.com

Sort of. Thanks

Cheers


From: MooseFET on
On Feb 12, 2:14 pm, Chris <christopher.man...(a)gmail.com> wrote:
> I need to make a PLL that slaves to a 24Hz square wave.  The output of
> the loop would be a 60Hz square wave.  Any CMOS level chips that would
> be good for this?  I understand that I would need to divide by a
> decimal value of 2.5 for the loop.

How accurate is the 24Hz?
How good does the 60Hz need to be?

You can take a crystal and divide it down to make the 60Hz and
then make the counters get reset at a 12Hz rate to force it to
be in step.

An HC4046 will lock in just a couple of cycles if you use the
edge operated phase comparator. You can multiply up to several
hundred Hz to make the component values for the oscillator more
reasonable.







From: MooseFET on
On Feb 12, 2:48 pm, "tm" <no...(a)msc.com> wrote:
> "Spehro Pefhany" <speffS...(a)interlogDOTyou.knowwhat> wrote in message
>
> news:eilbn5pphbtca65k6aqjge9ddtenoumf1l(a)4ax.com...
>
> > On Fri, 12 Feb 2010 14:14:04 -0800 (PST), Chris
> > <christopher.man...(a)gmail.com> wrote:
>
> >>I need to make a PLL that slaves to a 24Hz square wave.  The output of
> >>the loop would be a 60Hz square wave.  Any CMOS level chips that would
> >>be good for this?  I understand that I would need to divide by a
> >>decimal value of 2.5 for the loop.
>
> >>Thanks,
> >>Chris Maness
>
> > You could phase lock the 24Hz (movie frame rate?) to a 120Hz VCO
> > divided by 5, and divide the 120Hz by 2 to get 60Hz.
>
> Or divide the 24 Hz by 2 and lock a 60 Hz PLL to the 12 Hz by a divide by 5.
>
> Same thing but your soln. has higher frequencies so smaller caps.

In PLLs it is better to multiply up first then down.
From: MooseFET on
On Feb 12, 3:01 pm, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote:
> Chris wrote:
> > I need to make a PLL that slaves to a 24Hz square wave.  The output of
> > the loop would be a 60Hz square wave.  Any CMOS level chips that would
> > be good for this?  I understand that I would need to divide by a
> > decimal value of 2.5 for the loop.
>
> Use a PIC.
>
No, the 8051 is the right processor for this.

[ducks]

From: Jon Slaughter on
Martin Riddle wrote:
> "Vladimir Vassilevsky" <nospam(a)nowhere.com> wrote in message
> news:UqOdnWHSjYZDQOjWnZ2dnUVZ_gGdnZ2d(a)giganews.com...
>>
>>
>> Chris wrote:
>>
>>> I need to make a PLL that slaves to a 24Hz square wave. The output
>>> of
>>> the loop would be a 60Hz square wave. Any CMOS level chips that
>>> would
>>> be good for this? I understand that I would need to divide by a
>>> decimal value of 2.5 for the loop.
>>
>> Use a PIC.
>>
>> Lock on 24 Hz by input capture, generate 60 Hz by output compare. Do
>> all PLL logic in software. There will be a jitter of +/-1 timer
>> clock, however this will be much better then suggested analog
>> solutions. Vladimir Vassilevsky
>> DSP and Mixed Signal Design Consultant
>> http://www.abvolt.com
>
> Hi Vladimir, Is there good reading references for doing a software
> PLL anywhere.
> So far in my casual searches, I've found very little on a software
> implementation.


A simple and straightforward method:

for(i = 0; i < N; i++)
if ((i + k) % M == 0) recompute k, toggle clock;

Choose N, k, M appropriately. The loop is synched to the first clock. This
method only works when increasing the clock speed but has a similar method
for the opposite case. If N can be appropriately chosen then k can be set to
0.