Midlevel Control of Stepping Motors


All of the low-level motor control interfaces described in the previous sections are quite similar, at an abstract level. Each interface has some number of logic inputs. Some of these inputs may be used to directly control which switches are open or closed,


others may be encoded, while others may control subsystems such as the analog to digital converter in a microstepping interface.

The states of each of these logic inputs is referred to as the control vector for the motor, and a sequence of states used to rotate the motor is referred to as a control trajectory for the motor.

For example, the control vector for controlling a permanent magnet or hybrid stepping motor using any of the control circuits shown in Figures .4, 3.5, 3.13, 3.14, 3.15, 4.7, 4.8, 4.10, 4.11 or 4.12 will contain 4 bits, 2 bits to control each motor winding. In each case, the control vector can be expressed as , where and control the current through motor winding 1 and and control the current through motor winding 2. For any interface with this control vector, the following trajectory will step the motor through one full electrical cycle, using full stepping:

Similarly, the following trajectory will half-step motor through the same electrical cycle:

Other controllers have different control vectors. For example, the control vector for a permanent magnet or hybrid motor controlled by a pair of Allegro 3952 chips (see Figure 4.9) will be , where B, E, P and M are the ┬ČBRAKE, ┬ČENABLE, PHASE and MODE control inputs for each chip. In this case, the following control trajectory will full-step the motor through 1 electrical cycle:

The following control trajectory will half-step the same motor through one electrical cycle, using dynamic braking to control resonance whenever a motor winding is turned off:

It is worth noting that, while dynamic braking on disconnected motor windings is an excellent way to control resonance during low speed operation, this will reduce the available torque at higher motor speeds.

The control vectors required for microstepped motors are more complex, but the basic idea remains the same. The problem we face here is to develop higher level control systems that will generate appropriate control trajectories, moving the motor one step, half-step or microstep each time the higher level control system requires a move.

Hardware Solutions

Early solutions to the problem of generating appropriate control trajectories for stepping motors were almost always based on direct synthesis of the control trajectory in hardware. Such solutions are still appropriate for some applications, but these days, when programmable interface controller chips are commonly used to replace random low-speed logic and when most stepping motor applications are ultimately controlled by computer systems of one kind or another, it is common to use software to generate the control trajectory.


All hardware solutions to generating the control trajectory are subsumed by the general model illustrated in Figure 6.1:

Figure 6.1