amiga floppy disk reading experience

Chuck Guzis cclist at
Sun Jun 13 13:28:16 CDT 2010

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.


More information about the cctalk mailing list