Date: Wed, 4 Feb 2009 18:14:02 -0600
From: chrise at
pobox.com
To: cctech at
classiccmp.org
CC: cctalk at
classiccmp.org
Subject: Re: speaking of 3.5" floppies, is 720K R.I.P.?
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
Hi Chris
I was recently looking at my Teac drive's index pulse to see how it
worked relative to the drive going ready ( the problem of trying to
find a way to recreate the /Ready signal ).
One thing I noticed was that the leading edge of the index pulse
was as accurate as my scope could show but the trailing edge was
all over the place.
My thinking is that the drive is controlled by a servo loop.
The leading edge is when a crystal clock says the pulse is suppose
to start and the trailing edge is when the actual edge is detected.
If one timed the length of time between the two edges, one would
then know the corrective response of the loop.
As an example, if the pulse was long, you'd keep a similar software
wheel rotating that you apply a correction to by the amount the
pulse was long.
It would be this internal software generated wheel that you'd use
to create the index pulses from.
You need the code to watch the drive to determine the parameters
of the control system, gain, dampening and intertia.
If done this way, I suspect that one could get very close to
the right index pulse spacing.
Dwight
_________________________________________________________________
Windows Live?: Keep your life in sync.