On 4 Feb 2009 at 18:14, Chris Elmquist wrote:
I'm finding it much more difficult than I
expected. It seems that the
speed of these drives is not very constant. So, when I trigger off the
real index pulse from the drive and then generate very accurately timed
pulses simulating the 10 other holes, it appears that they are not lining
up with the data some number of rotations later.
I can't say much about any experience with 3.5" drives in this; I've
been using 5.25" units and measuring the speed with every rotation.
Given the low mass of 3.5" direct-drive motors and media, I can well
imagine that speed variations are all over the place. I wonder if
one can tap into the PLL used to control the motor--there should
certainly be enough information there to determine short-term speed.
However, after 5.25', I'm going to an all-electronic solution;
basically a sampling plug-in replacement for a drive. I figure that
rusty goo smeared on plastic cookies is not only going to be harder
to find, but show a pronounced decline in quality as remaining
production gets shoved out to the margins of the commercial world.
I have customers who would probably kill to replace the floppy drives
in their equipment.
Cheers,
Chuck
The result is a high number of soft errors during read back.
My simple plan was to just watch for the real index hole from the selected
drive and then generate the synthetic ones back to the controller until
the drive was deselected. I could see I had a timing problem which I
initially blamed on the microcontroller's RC clock (I am using an ATMEL
AVR instead of a PIC). So, I improved this in various increments,
ending up with a +/- 50ppm osc can and at each increment of improving
the stability of the clock, my soft errors INCREASED!
I'm now reworking the whole design and I'm going to keep the soft sectored
drive always selected, always motor on and continually watch the real
index pulses and compute the instantaneous RPM. From that, I'll generate
the pseudo index pulses which will hopefully better match the current
speed of the drive. The pseudo pulses and all the other drive signals
will be externally gated onto the floppy bus since I need to keep the
emulating drive always active-- and I want to emulate two drives at the
same time. Kind of a pain but I don't see how else to get there now.
Any suggestions on what I am missing?
Chris