Method and apparatus for controlling a brushless dc motor, such as the
type used in a data storage device to rotate data storage media. A
sequence of drive pulses is applied to rotate the motor. The sequence is
switched from first to second motor commutation states at a time
determined in relation to changes in elapsed time between successive
pulses in the sequence. Each drive pulse has a duration established in
relation to an inductance of the motor, and is separated from adjacent
pulses by an intermediate delay of predetermined value. A peak elapsed
time interval between successive pulses is identified, and the next
commutation state is switched in at a selected time after the peak time
interval. The sequence preferably accelerates the motor from rest to an
intermediate velocity, after which back electromotive force (bemf)
commutation is used to accelerate the motor to a final operational
velocity.