Jules Richardson wrote:
Yeah, that all makes sense, I think. I just have vague
memories about
discussions as to how much over-sampling of the signal was beneficial so
as to perhaps recover marginal data that would be garbage on the
'native' hardware.
My amiga disk reader doesn't sample at all. I look for falling edges of
the pulses, clear a timer, look for the next edge, and calculate the
time difference between two pulses. The time between pulses define the
data, and I write out the associated data pattern to memory.
I've played with PLL's and a few other methods, and I have yet to find
one that works better. Differences in frequency and phase really don't
have any marked effect on my results --- no need for up/down counters
and all that crap.
In the amiga world, anyways, the time differences between different data
patterns are pretty big. I use an 8-bit timer prescaled 1:2 at 50mhz.
So I end up w/ a 40ns timer tick with a 0-~10us count ability. For
500kbps raw MFM datarate, this allows roughly 1us guard band in between
the 1us data windows. I could probably optimize this a little better,
but in practice it works very well.
I've recently bought another inexpensive pc-based logic analyzer (the
Saleae Logic), and am getting fantastic statistical information out of
exported data dumps. I can process the (also 40ns) raw samples in some
very simple programs I've written and I'd like to establish some much
more detailed information.
Keith