On Monday (02/02/2009 at 06:40PM -0800), Chuck Guzis wrote:
The nice thing is that the same PIC setup can also simulate hard-
sectored diskettes. The PICs are rated to sink/source 25 ma on any
I/O pin, not to excees 125 ma for all pins. A little dodgy for 150
ohm pullups (33 ma at 5v), but I've had no problems thus far.
I have been trying to do this exact thing... simulate 10-hole hard
sectored floppies with the 3.5" drive.
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.
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