Head Stepping

Applicability: Hard disk drives that use the ST-506/ST-412 interface (commonly referred to as MFM).


The hard disk drive controller card controls the stepping of the heads, via two of the many control lines.
Feedback from the hard disk drive to the controller is via another control line.

diagram_1.jpg

The controller will set the STEP DIRECTION line to either low or high.
    Low: heads are to go in the direction of inwards (towards the maximum cylinder number)
    High: heads are to go in the direction of outwards (towards cylinder 0)

The controller will put pulses on the STEP line, one pulse for every cylinder step that the stepper motor in the drive is to make.   (Example)

When the drive considers the head stepping operation to be complete, it then takes the SEEK COMPLETE line low.


Head stepping example

1. According to the record that the controller keeps, the drive's heads are presently on cylinder 45.
2. DOS makes a BIOS call to move the heads to cylinder 48.
3. The BIOS instructs the controller to seek to cylinder 48.
4. The controller calculates that it needs to step the drive's heads by 3 cylinders in an inwards direction. [48 - 45 = 3]
5. The controller sets the STEP DIRECTION line low ('inwards' direction).
6. The controller then puts 3 pulses onto the STEP line, one after the other.
7. The drive takes the SEEK COMPLETE line low when it expects that the heads have reached cylinder 48 (and heads have settled).


Step Pulse Rate

When sending step pulses in a group (as in the head stepping example above of 3 pulses), a controller will send those step pulses at a particular rate. That is known as the "step pulse rate" (or just "step rate") and rather than being a rate, is actually a period. For example, if a particular controller uses a step rate of 10 µs, pulses in a group are sent one per 10 µs. If a particular controller uses a step rate of 20 µs, pulses in a group are sent one per 20 µs.

Some controllers offer a choice of step pulse rates.


Stepping Problem - No verification of head position

These old drives are 'dumb', relatively speaking. The step pulses come in and the drive expects that its stepper motor (and the motor's driving circuitry) is going to step the heads accordingly. There is no mechanism within the drive to verify that the heads were actually stepped as expected.

If the stepper motor becomes intermittent, the drive is not going to know. The drive will activate the SEEK COMPLETE line in total ignorance. The controller will think that the heads are at a particular cylinder but the heads will be elsewhere.

Can that situation be detected? Yes, not by the drive, but by certain controllers, controllers that write cylinder/head information onto the track during low-level format time.
In my experience with XT class controllers, that is not common.


Stepping Problem - Incompatible controller/drive combination

Different models of hard drive have different step rate limitations. Following are some examples.

Drive Seek Mode Step Pulse Rate - Limitations    Comment
ST-506 Slow: 3 ms or greater (that is milliseconds, not microseconds) Drive predates buffered seek mode
ST-412 Slow:
Buffered:
3 ms or greater (that is milliseconds, not microseconds)
Between 5 and 500 µs    (source)
Conflict: Page 18 of the ST-412 manual at this link indicates a buffered seek range of 25 µs to 200 µS
ST-225 Slow:
Buffered:
3 ms or greater (that is milliseconds, not microseconds)
Between 5 and 200 µs    (source)
 
ST-4038 Slow:
Buffered:
3 ms or greater (that is milliseconds, not microseconds)
Between 10 and 70 µs    (source)
 

Pulses sent at a rate outside of what the drive can handle will probably be lost/ignored.
So, for example, the drive ends up at only cylinder 23 with the controller thinking that the heads are on cylinder 27.
For that reason, it is very important that the hard drive and controller that you interconnect are STEP PULSE RATE compatible.