On 18 Apr 2009 at 22:54, Chris Elmquist wrote:
I use an ATMEL ATTiny2313 microcontroller and make
heavy use of
one
> of the timer/counter units. I have the counter
running at 8 MHz/64
> = 8uS period.
Chris, I did the same thing with a Microchip 12F629 (another 8 pin
uC) but applied to 5.25" drives, passing sector marks through when
present, but otherwise generating 10 sector simulation. I kept my
sampling to 16 bits using roughly that precision for a 167 msec rev
and even timed each rev for the next one as I generated pulses for
the current one to keep track of any long-term speed variations.
Sector pulses were exactly 4 msec in length.
My finding (with the help of Andrew Lynch) was that the rev-to-rev
speed variation on old 5.25" 100 tpi drives was nowhere near stable
enough; if the speed error from rev to rev varied by more than a few
msec., you were dead. With the old open-loop DC tach circuit found
on old 5.25" drives, this was more than likely.
I don't have any systems using HS diskettes here; if someone wants my
code, they're welcome to it; it's PIC assembly and will do both 300
and 360 RPM drives with the ability to generate 32, 16 or 10 sector
marks. The same chip also generates a READY signal for drives that
don't have them.
It was a work in progress and I'm happy that you found a solution
using modern 3.5" drives. My evaluation of 5.25" drives indicates to
me that it would be a far better idea to physically mark sectors on
the hub flywheel, use a sensor to grab them and then use a PIC to
delay them to conform with the positon of the index hole.
--Chuck