[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Stepper Acceleration in RWTS
Sheldon Simms wrote:
Hi everyone. I was looking at RWTS and I'm wondering where the values in the phase-on/phase-off tables used to accelerate the stepper motor come from. Clearly, the idea is to start stepping slowly and then accelerate. But why were these particular values chosen and why is the minimum value $1C (2.8 ms)?
I figured it must be related to some characteristics of the stepper motor used, but upon opening various floppy drives I have found that quite different stepper motors were used in different drives. The stepper motor in my oldest Disk II is a North American Philips A82709-M2, for which I have not been able to find any official documentation, but it's pretty clear from various sources, that it is a 7.5 degree per step, 12 V, 4-phase motor similar to this one: http://www.hurst-motors.com/sasdirectdrive.html
The stepper motor winding has a certain inductance, L, and its
resistance, plus the driver impedance, forms a series resistance R.
The time constant for current changes in such a circuit is L/R, and
any driving pulse must be one or two time constants for the drive
current to attain near maximum values--which corresponds to near-maximum
torque.
Therefore, for any given L and R, there is a minimum pulse width that
ensures developing maximum torque. Woz may have determined the minimum
pulse width based on this.
Still, nothing about that motor enlightens me as to why the phase-on/phase-off table values were chosen as they were. Was it just trial and error for a particular motor? If so, why was it ok for other motors?
I suspect that the code was verified for the gutted Shugart SA390, and
that subsequent stepper motors were enough better that the constants
became more and more conservative.
When split-band actuators became common (typically in half-height
drives), it was common to POKE a much smaller value into the basic
time delay unit in RWTS so that all the stepping times were cut in
half (or more). Seeking became very fast, and the newer drives
could easily follow the faster pulses. (I used to remember the
POKE, but now I'd have to find it again. For a while, some drive
sellers published it in their ads!)
Another question that comes to mind is why is the motor driven by alternating between one phase energized and two phases energized? Why not have two phases energized all the time until you've arrived at your track?
The state of two phases energized corresponds to a "phantom" pole
between the two actual poles. Thus A-AB-B-BC-C is a higher-torque
way of getting from A to C. The "real" poles are geometrically
determined, and the stepper angles they represent are more stable
than the "virtual" poles, which are based on current and field
balance between the two actual pole windings. Therefore, it is
reasonable to base the track positions on real poles only, so
any stepping sequence must begin and end with single windings
energized.
FWIW, it is posible to "microstep" virtual poles by using high
frequency pulses, pulse-width-modulated to produce an effective
current balance anywhere between all one real pole and all the
other.
As a practical matter, energizing two windings requires twice the
current and generates twice the heat, so you don't want to hold the
windings on for an extended period.
-michael
NadaNet 3.1 for Apple II parallel computing!
Home page: http://home.comcast.net/~mjmahon/
"The wastebasket is our most important design
tool--and it's seriously underused."