On 31 Oct 2008 at 21:16, Tony Duell wrote:
The obvious thing to do is to sample the data stream
(either from the
controller wehn writing/formatting, or from a good drive if you want
to copy it) at about 10 times the data rate (that's where the 'high
speed' requirement comes from) and record it in flash memory or
something. Then replay it back to the cotnroller for reading. It's
doable, but getting it all working at 50MHz is not going to be
trivial.
I suspect that 8x oversampling may do the trick; i.e. 40MHz for plain-
Jane MFM. Assume that this will work--will timings really be faster
than is practicable?
Let's see if the math works. Back-of-the-envelope, so you're advised
to double-check my numbers. Assume a brute-force, one-bit-per-sample
implementation.
An ST412 spins at 3600 RPM, giving a rotational period of 16.667
milliseconds. The datarate is 5MHz, so a track can hold about 83335
transitions (less than a 1.44MB floppy track, BTW). We want to
oversample by 8, so we need to sample 666680 times per revolution.
If we use a 16-bit-wide RAM to hold sample data, that's about 42K 16-
bit words, so a 16x65K memory will be more than sufficient and
perhaps allow for a bit faster sampling rate (Tony's 50 MHz) if we
need it.
So, while the bit shifting (or its equivalent) is performed at a 40
MHz clock rate, access to the RAM occurs at 40/16 = 2.5 MHz or 400
nsec--or perhaps 200 nsec while writing (a read is necessary to
"splice" the bit stream). Not bad at all--and a 40MHz shift register
(or its equivalent) is certainly doable using some of the faster TTL-
compatible logic families (e.g. 74AS). And note that you're only
sampling a bit stream whose maximum frequency is 5MHz.
Who wants to build one?
Cheers,
Chuck