On 13 Jun 2010 at 0:03, Eric Smith wrote:
It's not a PLL since it doesn't even try to
adjust the frequency to
maintain phase lock. It only changes the instantaneous phase.
There's no "Loop" in it, nor "Lock".
I'll agree that it takes a mental stretch, but there is a "lock". and
a "loop" is easy enough to incorporate.
Play along with me on this one. I'll use a Catweasel for my model,
since it's most familiar to people.
Suppose there is a Catweasel reading a disk at 50t (the reference
frequency), where t is the assumed "short" inerval of an MFM stream.
That means that the center points of the sampling windows are 50t,
75t and 100t. Let's also assume some finite sample window size that
allows for capture of a sample on either side of the window center,
plus or minus a fixed number of counts. Note that there is a 1-count
"jitter" in the Catweasel hardware, where a pulse arriving at 50t can
be reported as 49t, as well as 50t; let's assume that the windows are
wide enough to accomodate that.
What's lacking is "loop" or feedback term to adjust window centers to
track variations in speed. Without it, this is no better than the
average UART receiver.
However, there is also an error quantity. Just as one can take the
error signal from a traditional PLL and estimate the spindle speed of
the drive, so can one sum the intervals reported by the Catweasel and
compare it with an ideal and obtain the spindle speed of the drive.
On a per-sample basis, one can compare the value of the sample with
its corresponding window center to obtain an error value.
Thus, one can take this error value and adjust the sampling window
centers appropriately, giving a "loop" and a "lock" to the incoming
data stream.
Thus, one has a reference, a lock, and a loop based on an error
value. Maybe not a PLL in the strict sense, but something that
shares the characteristics of one.
--Chuck