3. Basic Stepping Motor Control Circuits

Part of Stepping Motors
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science


This section of the stepper tutorial deals with the basic final stage drive circuitry for stepping motors. This circuitry is centered on a single issue, switching the current in each motor winding on and off, and controlling its direction. The circuitry discussed in this section is connected directly to the motor windings and the motor power supply, and this circuitry is controlled by a digital system that determines when the switches are turned on or off.

This section covers all types of motors, from the elementary circuitry needed to control a variable reluctance motor, to the H-bridge circuitry needed to control a bipolar permanent magnet motor. Each class of drive circuit is illustrated with practical examples, but these examples are not intended as an exhaustive catalog of the commercially available control circuits, nor is the information given here intended to substitute for the information found on the manufacturer's component data sheets for the parts mentioned.

This section only covers the most elementary control circuitry for each class of motor. All of these circuits assume that the motor power supply provides a drive voltage no greater than the motor's rated voltage, and this significantly limits motor performance. The next section, on current limited drive circuitry, covers practical high-performance drive circuits.

Variable Reluctance Motors

Typical controllers for variable reluctance stepping motors are variations on the outline shown in Figure 3.1:

Figure 3.1 
   supply o-------o------o------------------- 
                  |      |                   |
                  _)     _)                  _)
   motor         (_     (_                  (_
   windings       _)     _)                  _)
                 (_     (_                  (_
                  _)     _)       ...        _)
                  |      |                   | 
   control o-----|_|  --|_|               --|_|
   signals o------|---   |               |   |
                  |      |               |   |
           o------|------|---------------    |
                  |      |                   |

In Figure 3.1, boxes are used to represent switches; a control unit, not shown, is responsible for providing the control signals to open and close the switches at the appropriate times in order to spin the motors. In many cases, the control unit will be a computer or programmable interface controller, with software directly generating the outputs needed to control the switches, but in other cases, additional control circuitry is introduced, sometimes gratuitously!

Motor windings, solenoids and similar devices are all inductive loads. As such, the current through the motor winding cannot be turned on or off instantaneously without involving infinite voltages! When the switch controlling a motor winding is closed, allowing current to flow, the result of this is a slow rise in current. When the switch controlling a motor winding is opened, the result of this is a voltage spike that can seriously damage the switch unless care is taken to deal with it appropriately.

There are two basic ways of dealing with this voltage spike. One is to bridge the motor winding with a diode, and the other is to bridge the motor winding with a capacitor. Figure 3.2 illustrates both approaches:

Figure 3.2 
   +supply o------o------         o------o------
                  |      |               |      |
                  |      |               |      |
                  _)     |               _)     |
   motor         (_     _|_             (_    __|__
   windings       _)    /|\              _)   _____
   windings       _)    /|\              _)   _____
                 (_      |              (_      |
                  _)     |               _)     |
                  |      |               |      |
                  o------                o------
                  |                      |
   control o-----|_|              o-----|_|
                 _|_                    _|_
                 ///                    ///

The diode shown in Figure 3.2 must be able to conduct the full current through the motor winding, but it will only conduct briefly each time the switch is turned off, as the current through the winding decays. If relatively slow diodes such as the common 1N400X family are used together with a fast switch, it may be necessary to add a small capacitor in parallel with the diode.

The capacitor shown in Figure 3.2 poses more complex design problems! When the switch is closed, the capacitor will discharge through the switch to ground, and the switch must be able to handle this brief spike of discharge current. A resistor in series with the capacitor or in series with the power supply will limit this current. When the switch is opened, the stored energy in the motor winding will charge the capacitor up to a voltage significantly above the supply voltage, and the switch must be able to tolerate this voltage. To solve for the size of the capacitor, we equate the two formulas for the stored energy in a resonant circuit:

P = C V2 / 2
P = L I2 / 2
P -- stored energy, in watt seconds or coulomb volts
C -- capacity, in farads
V -- voltage across capacitor
L -- inductance of motor winding, in henrys
I -- current through motor winding
Solving for the minimum size of capacitor required to prevent overvoltage on the switch is fairly easy:
C > L I2 / (Vb - Vs)2
Vb -- the breakdown voltage of the switch
Vs -- the supply voltage
Variable reluctance motors have variable inductance that depends on the shaft angle. Therefore, worst-case design must be used to select the capacitor. Furthermore, motor inductances are frequently poorly documented, if at all.

The capacitor and motor winding, in combination, form a resonant circuit. If the control system drives the motor at frequencies near the resonant frequency of this circuit, the motor current through the motor windings, and therefore, the torque exerted by the motor, will be quite different from the steady state torque at the nominal operating voltage! The resonant frequency is:

f = 1 / ( 2π (L C)0.5 )
Again, the electrical resonant frequency for a variable reluctance motor will depend on shaft angle! When a variable reluctance motors is operated with the exciting pulses near resonance, the oscillating current in the motor winding will lead to a magnetic field that goes to zero at twice the resonant frequency, and this can severely reduce the available torque!

Unipolar Permanent Magnet and Hybrid Motors

Typical controllers for unipolar stepping motors are variations on the outline shown in Figure 3.3:

Figure 3.3 
                          supply o
                       |                   |
   motor               |                   |
   windings       /\/\/ \/\/\         /\/\/ \/\/\
                  |         |         |         | 
                  |         |         |         | 
   control o-----|_|     --|_|     --|_|     --|_|
   signals o------|------   |     |   |     |   |
           o------|---------|-----    |     |   |
           o------|---------|---------|-----    |
                  |         |         |         |

In Figure 3.3, as in Figure 3.1, boxes are used to represent switches; a control unit, not shown, is responsible for providing the control signals to open and close the switches at the appropriate times in order to spin the motors. The control unit is commonly a computer or programmable interface controller, with software directly generating the outputs needed to control the switches.

As with drive circuitry for variable reluctance motors, we must deal with the inductive kick produced when each of these switches is turned off. Again, we may shunt the inductive kick using diodes, but now, 4 diodes are required, as shown in Figure 3.4:

Figure 3.4 
  + supply o-o----------o----------
             |          |          |
            _|_         |         _|_
            /|\    /\/\/ \/\/\    /|\
             |     |         |     |
             o-----o         o-----o
            _|_    |         |    _|_
            /|\    |         |    /|\
   control o-|----|_|     --|_|    | 
   signals o-|-----|------   |     |
             |     |         |     |

The extra diodes are required because the motor winding is not two independent inductors, it is a single center-tapped inductor with the center tap at a fixed voltage. This acts as an autotransformer! When one end of the motor winding is pulled down, the other end will fly up, and visa versa. When a switch opens, the inductive kickback will drive that end of the motor winding to the positive supply, where it is clamped by the diode. The opposite end will fly downward, and if it was not floating at the supply voltage at the time, it will fall below ground, reversing the voltage across the switch at that end. Some switches are immune to such reversals, but others can be seriously damaged.

A capacitor may also be used to limit the kickback voltage, as shown in Figure 3.5:

Figure 3.5 

  + supply o------------ 
                   /\/\/ \/\/\
                   |         |
                   |   | |   |
                   o---| |---o
                   |   | |   |
                   |         |
   control o------|_|     --|_|
   signals o-------|------   |
                   |         |

The rules for sizing the capacitor shown in Figure 3.5 are the same as the rules for sizing the capacitor shown in Figure 3.2, but the effect of resonance is quite different! With a permanent magnet motor, if the capacitor is driven at or near the resonant frequency, the torque will increase to as much as twice the low-speed torque! The resulting torque versus speed curve may be quite complex, as illustrated in Figure 3.6:
Figure 3.6 
   |                __
   |               / :|
   |________      /  :|Mechanical
 T |        ---__/   :|:
   |        Electrical|: 
   |                  \:/\
   |                   V  --___

Figure 3.6 shows a peak in the available torque at the electrical resonant frequency, and a valley at the mechanical resonant frequency. If the electrical resonant frequency is placed appropriately above what would have been the cutoff speed for the motor using a diode-based driver, the effect can be a considerable increase in the effective cutoff speed.

The mechanical resonant frequency depends on the torque, so if the mechanical resonant frequency is anywhere near the electrical resonance, it will be shifted by the electrical resonance! Furthermore, the width of the mechanical resonance depends on the local slope of the torque versus speed curve; if the torque drops with speed, the mechanical resonance will be sharper, while if the torque climbs with speed, it will be broader or even split into multiple resonant frequencies.

Practical Unipolar and Variable Reluctance Drivers

In the above circuits, the details of the necessary switches have been deliberately ignored. Any switching technology, from toggle switches to power MOSFETS will work! Figure 3.7 contains some suggestions for implementing each switch, with a motor winding and protection diode included for orientation purposes:

Figure 3.7 
                      \                               \
            +5v       /  motor                        /
             |        \  winding                      \
             |        /                               /
             |        |  \|                           |  \|
             R 470    o---|---                        o---|---
       |\    | ohm    |  /|                   100     |  /|
       | \   |      |/                        ohm  ||-
     o-|  ---o------|  RCA SK 3180       o--o--R---|| IRC IRL540
       | /          |\                     _|_     ||-
       |/ 7407        |             5.1 VZ /|\        |
                     _|_                   _|_       _|_
                     ///                   ///       ///

Each of the switches shown in Figure 3.7 is compatible with a TTL input. The 5 volt supply used for the logic, including the 7407 open-collector driver used in the figure, should be well regulated. The motor power, typically between 5 and 24 volts, needs only minimal regulation. It is worth noting that these power switching circuits are appropriate for driving solenoids, DC motors and other inductive loads as well as for driving stepping motors.

The SK3180 transistor shown in Figure 3.7 is a power darlington with a current gain over 1000; thus, the 10 milliamps flowing through the 470 ohm bias resistor is more than enough to allow the transistor to switch a few amps current through the motor winding. The 7407 buffer used to drive the darlington may be replaced with any high-voltage open collector chip that can sink at least 10 milliamps. In the event that the transistor fails, the high-voltage open collector driver serves to protects the rest of the logic circuitry from the motor power supply.

The IRC IRL540 shown in Figure 3.7 is a power field effect transistor. This can handle currents of up to about 20 amps, and it breaks down nondestructively at 100 volts; as a result, this chip can absorb inductive spikes without protection diodes if it is attached to a large enough heat sink. This transistor has a very fast switching time, so the protection diodes must be comparably fast or bypassed by small capacitors. This is particularly essential with the diodes used to protect the transistor against reverse bias! In the event that the transistor fails, the zener diode and 100 ohm resistor protect the TTL circuitry. The 100 ohm resistor also acts to somewhat slow the switching times on the transistor.

For applications where each motor winding draws under 500 milliamps, the ULN200x family of darlington arrays from Allegro Microsystems, also available as the DS200x from National Semiconductor and as the Motorola MC1413 darlington array will drive multiple motor windings or other inductive loads directly from logic inputs. Figure 3.8 shows the pinout of the widely available ULN2003 chip, an array of 7 darlington transistors with TTL compatible inputs:

Figure 3.8 
            _______   _______
           |       \_/       |
     /  1 |_|-R  /--------o-|_| 16 \
     |     |  R-T         |  |     |
     |     |     \-   -|<-   |     |
     |  2 |_|-R  /-|-|----o-|_| 15 |
     |     |  R-T  | |    |  |     |
     |     |     \-o o-|<-   |     |
     |  3 |_|-R  /-|-|----o-|_| 14 |
     |     |  R-T  | |    |  |     |
     |     |     \-o o-|<-   |     |
  IN |  4 |_|-R  /-|-|----o-|_| 13 | OUT
     |     |  R-T  | |    |  |     |
     |     |     \-o o-|<-   |     |
     |  5 |_|-R  /-|-|----o-|_| 12 |
     |     |  R-T  | |    |  |     |
     |     |     \-o o-|<-   |     |
     |  6 |_|-R  /-|-|----o-|_| 11 |
     |     |  R-T  | |    |  |     |
     |     |     \-o o-|<-   |     |
     \  7 |_|-R  /-|-|----o-|_| 10 /
           |  R-T  | |   _V_ |
           |     \-o |    |  |
  GND   8 |_|------' `----o-|_| 9   PWR

The base resistor on each darlington transistor is matched to standard bipolar TTL outputs. Each NPN darlington is wired with its emitter connected to pin 8, intended as a ground pin, Each transistor in this package is protected by two diodes, one shorting the emitter to the collector, protecting against reverse voltages across the transistor, and one connecting the collector to pin 9; if pin 9 is wired to the positive motor supply, this diode will protect the transistor against inductive spikes.

The ULN2803 chip is essentially the same as the ULN2003 chip described above, except that it is in an 18-pin package, and contains 8 darlingtons, allowing one chip to be used to drive a pair of common unipolar permanent-magnet or variable-reluctance motors.

For motors drawing under 600 milliamps per winding, the UDN2547B quad power driver made by Allegro Microsystems will handle all 4 windings of common unipolar stepping motors. For motors drawing under 300 milliamps per winding, Texas Instruments SN7541, 7542 and 7543 dual power drivers are a good choice; both of these alternatives include some logic with the power drivers.

Bipolar Motors and H-Bridges

Things are more complex for bipolar permanent magnet stepping motors because these have no center taps on their windings. Therefore, to reverse the direction of the field produced by a motor winding, we need to reverse the current through the winding. We could use a double-pole double throw switch to do this electromechanically; the electronic equivalent of such a switch is called an H-bridge and is outlined in Figure 3.9:

Figure 3.9 
                 o + supply
      |   _|_         _|_   |
A o--|_|  /|\         /|\  |_|--o C
      |    |           |    |
      |   _|_         _|_   |
B o--|_|  /|\         /|\  |_|--o D
      |    |           |    |

As with the unipolar drive circuits discussed previously, the switches used in the H-bridge must be protected from the voltage spikes caused by turning the power off in a motor winding. This is usually done with diodes, as shown in Figure 3.9.

It is worth noting that H-bridges are applicable not only to the control of bipolar stepping motors, but also to the control of DC motors, push-pull solenoids (those with permanent magnet plungers) and many other applications.

With 4 switches, the basic H-bridge offers 16 possible operating modes, 7 of which short out the power supply! The following operating modes are of interest:

Forward mode, switches A and D closed.
Reverse mode, switches B and C closed.
These are the usual operating modes, allowing current to flow from the supply, through the motor winding and onward to ground. Figure 3.10 illustrates forward mode:
Figure 3.10 
                 o + supply
    ..|.. _|_ ....:   _|_   |
A o--|_|  /|\         /|\  |X|--o C
      o----o--/\/\/\/--o----o :
      |   _|_         _|_   | :
B o--|X|  /|\         /|\  |_|--o D
      |    |           |    | :
       ----o-----o-----o----  :
                _|_ ..........:

Fast decay mode or coasting mode, all switches open.
Any current flowing through the motor winding will be working against the full supply voltage, plus two diode drops, so current will decay quickly. This mode provides little or no dynamic braking effect on the motor rotor, so the rotor will coast freely if all motor windings are powered in this mode. Figure 3.11 illustrates the current flow immediately after switching from forward running mode to fast decay mode.
Figure 3.11 
                 o + supply
      |   _|_     :.. _|_   |
A o--|_|  /|\       : /|\  |X|--o C
      |    |  ......:  |    |  
      |   _|_ :       _|_   |  
B o--|X|  /|\ :       /|\  |_|--o D
      |    |  :.       |    |  

Slow decay modes or dynamic braking modes.
In these modes, current may recirculate through the motor winding with minimum resistance. As a result, if current is flowing in a motor winding when one of these modes is entered, the current will decay slowly, and if the motor rotor is turning, it will induce a current that will act as a brake on the rotor. Figure 3.12 illustrates one of the many useful slow-decay modes, with switch D closed; if the motor winding has recently been in forward running mode, the state of switch B may be either open or closed:
Figure 3.12 
                 o + supply
      |   _|_         _|_   |
A o--|X|  /|\         /|\  |X|--o C
      |    |  .........|....|..
      o----o--/\/\/\/--o----o :
      |   _|_ :       _|_   | :
B o--|X|  /|\ :       /|\  |_|--o D
      |    |  :........|....|.:

Most H-bridges are designed so that the logic necessary to prevent a short circuit is included at a very low level in the design. Figure 3.13 illustrates what is probably the best arrangement:
Figure 3.13 
                           o + supply
       | .------|----|----'`-----|----|------. |
       | `-| \  |   _|_         _|_   |  / |-' |
       |   |  )|_|A /|\         /|\ C|_|(  |   | 
       o--o|_/  |    |           |    |  \_|o--o
       |        o----o--/\/\/\/--o----o        |
       |        |   _|_         _|_   |        |
  X o--o-------|_|B /|\         /|\ D|_|-------o--o Y
                |    |           |    | 

Here, the following operating modes are available:
000000fast decay
110101slow decay
The advantage of this arrangement is that all of the useful operating modes are preserved, and they are encoded with a minimum number of bits; the latter is important when using a microcontroller or computer system to drive the H-bridge because many such systems have only limited numbers of bits available for parallel output. Sadly, few of the integrated H-bridge chips on the market have such a simple control scheme.

Practical Bipolar Drive Circuits

There are a number of integrated H-bridge drivers on the market, but it is still useful to look at discrete component implementations for an understanding of how an H-bridge works. Antonio Raposo (ajr@cybill.inesc.pt) suggested the H-bridge circuit shown in Figure 3.14;

Figure 3.14 
                           o + supply
          |      |  |             |  |      |
       2K R      | _|_           _|_ |      R
          |    |/  /|\           /|\  \|    |
          o----|    | 1N4007      |    |----o
          |    |\E  |             |  E/|    |
          | BD679|  |             |  |      |
   +5     |  |/  |  |   -------   |  |  \|  |   +5
    |     o--|---o--o--|Winding|--o--o---|--o    |
 2K R     |  |\     |   -------   |     /|  |    R
    |     | 1N5408 _|_           _|_        |    |
    |   |/         /|\           /|\         \|  |
 X o-o--|  BD679    | 1N4007      |           |--o-o Y
        |\E         |             |         E/|
          |         |             |         | 
        -----     -----         -----     -----
         ///       ///           ///       ///

The X and Y inputs to this circuit can be driven by open collector TTL outputs as in the darlington-based unipolar drive circuit in Figure 3.7. The motor winding will be energised if exactly one of the X and Y inputs is high and exactly one of them is low. If both are low, both pull-down transistors will be off. If both are high, both pull-up transistors will be off. As a result, this simple circuit puts the motor in dynamic braking mode in both the 11 and 00 states, and does not offer a coasting mode.

The circuit in Figure 3.14 consists of two identical halves, each of which may be properly described as a push-pull driver. The term half H-bridge is sometimes applied to these circuits! It is also worth noting that a half H-bridge has a circuit quite similar to the output drive circuit used in TTL logic. In fact, TTL tri-state line drivers such as the 74LS125A and the 74LS244 can be used as half H-bridges for small loads, as illustrated in Figure 3.15:

Figure 3.15 
                            o +5
          8 |\  12        |  _|_
         -o-| >-o-        |  /|\
        |   |o    |       |   |
   X o--o    |    o---o-------o
        | 6 |\  14|   |   |  _|_
         -o-| >-o-    /   |  /|\
            |o        \   |   |
             |        /   |   |
          4 |\  16    \  _|_  |
         -o-| >-o-    /  /|\  |
        |   |o    |   |   |   |
   Y o--o    |    o---o---o   |
        | 2 |\  18|      _|_  |
         -o-| >-o-       /|\  |
            |o            |   |
          1  |             -o-
   E o----o--              _|_
         1/2 LS244         ///

This circuit is effective for driving motors with up to about 50 ohms per winding at voltages up to about 4.5 volts using a 5 volt supply. Each tri-state buffer in the LS244 can sink about twice the current it can source, and the internal resistance of the buffers is sufficient, when sourcing current, to evenly divide the current between the drivers that are run in parallel. This motor drive allows for all of the useful states achieved by the driver in Figure 3.13, but these states are not encoded as efficiently:
--1fast decay
000slower decay
110slow decay
The second dynamic braking mode, XYE=110, provides a slightly weaker braking effect than the first because of the fact that the LS244 drivers can sink more current than they can source.

The Microchip (formerly Telcom Semiconductor) TC4467 Quad CMOS driver is another example of a general purpose driver that can be used as 4 independent half H-bridges. Unlike earlier drivers, the data sheet for this driver even suggests using it for motor control applicatons, with supply voltages up to 18 volts and up to 250 milliamps per motor winding.

One of the problems with commercially available stepping motor control chips is that many of them have relatively short market lifetimes. For example, the Seagate IPxMxx series of dual H-bridge chips (IP1M10 through IP3M12) were very well thought out, but unfortunately, it appears that Seagate only made these when they used stepping motors for head positioning in Seagate disk drives. The Toshiba TA7279 dual H-bridge driver would be another another excellent choice for motors under 1 amp, but again, it appears to have been made for internal use only.

The SGS-Thompson (and others) L293 dual H-bridge is a close competitor for the above chips, but unlike them, it does not include protection diodes. The L293D chip, introduced later, is pin compatible and includes these diodes. If the earlier L293 is used, each motor winding must be set across a bridge rectifier (1N4001 equivalent). The use of external diodes allows a series resistor to be put in the current recirculation path to speed the decay of the current in a motor winding when it is turned off; this may be desirable in some applications. The L293 family offers excellent choices for driving small bipolar steppers drawing up to one amp per motor winding at up to 36 volts. Figure 3.16 shows the pinout common to the L293B and L293D chips:

Figure 3.16 
            _______   _______
           |       \_/       |      LOGIC
  ENAB  1 |_|-------        |_| 16  POWER
           |        |        | 
           |        |        |
  IN 1  2 |_|-----  |  -----|_| 15  IN 4
           |      | | |      |
           |   /| | | | |\   |
 OUT 1  3 |_|-< |-  |  -| >-|_| 14  OUT 4
           |   \|   |   |/   |
           |   |    |    |   |
   GND  4 |_|  o----     |  |_| 13  GND
           ||  |         |  ||
           ||  |         |  ||
   GND  5 |_|  |     ----o  |_| 12  GND
           |   |    |    |   |
           |   /|   |   |\   |
 OUT 2  6 |_|-< |-  |  -| >-|_| 11  OUT 3
           |   \| | | | |/   |
           |      | | |      |
  IN 2  7 |_|-----  |  -----|_| 10  IN 3
           |        |        |
 MOTOR     |        |        |
 POWER  8 |_|        -------|_| 9   ENAB

This chip may be viewed as 4 independent half H-bridges, enabled in pairs, or as two full H-bridges. This is a power DIP package, with pins 4, 5, 12 and 13 designed to conduct heat to the PC board or to an external heat sink.

The SGS-Thompson (and others) L298 dual H-bridge is quite similar to the above, but is able to handle up to 2-amps per channel and is packaged as a power component; as with the LS244, it is safe to wire the two H-bridges in the L298 package into one 4-amp H-bridge (the data sheet for this chip provides specific advice on how to do this). One warning is appropriate concerning the L298; this chip very fast switches, fast enough that commonplace protection diodes (1N400X equivalent) don't work. Instead, use a diode such as the BYV27. The National Semiconductor LMD18200 H-bridge is another good example; this handles up to 3 amps and has integral protection diodes.

While integrated H-bridges are not available for very high currents or very high voltages, there are well designed components on the market to simplify the construction of H-bridges from discrete switches. For example, International Rectifier sells a line of half H-bridge drivers; two of these chips plus 4 MOSFET switching transistors suffice to build an H-bridge. The IR2101, IR2102 and IR2103 are basic half H-bridge drivers. Each of these chips has 2 logic inputs to directly control the two switching transistors on one leg of an H-bridge. The IR2104 and IR2111 have similar output-side logic for controlling the switches of an H-bridge, but they also include input-side logic that, in some applications, may reduce the need for external logic. In particular, the 2104 includes an enable input, so that 4 2104 chips plus 8 switching transistors can replace an L293 with no need for additional logic.

The data sheet for the Microchip (formerly Telcom Semiconductor) TC4467 family of quad CMOS drivers includes information on how to use drivers in this family to drive the power MOSFETs of H-bridges running at up to 15 volts.

A number of manufacturers make complex H-bridge chips that include current limiting circuitry; these are the subject of the next section. It is also worth noting that there are a number of 3-phase bridge drivers on the market, appropriate for driving Y or delta configured 3-phase permanent magnet steppers. Few such motors are available, and these chips were not developed with steppers in mind. Nonetheless, the Toshiba TA7288P, the GL7438, the TA8400 and TA8405 are clean designs, and 2 such chips, with one of the 6 half-bridges ignored, will cleanly control a 5-winding 10 step per revolution motor.