For quite a few projects, I need to control DC, stepper or similar motors, with moderate power, anywhere from 0.5 to 2 Amps. For smaller motors, I have a well-established circuit using ULN drivers (to be described elsewhere), and for powerful motors, I generally use the reasonably inexpensive Leadshine or Leadshine-compatible controls – but for the intermediate range, below circuit has provided great service in many applications over the years.
Mostly, it is used together with bipolar stepper motors, like, in a big engraving machine build about 10 years ago. Recently, I re-used the design to control a rather uncommon 3-phase stepper motor.
The original prototype:
The key part is a LMD18245 from National, now, Texas Instruments, about USD 10 per piece. This is a full H bridge, with 4-bit DAC current control, integrated diodes, and utilizing DMOS technology. It is working up to about 3 Amps, 50 Volts; and has overcurrent/overtemperature protection. Not bad, and it allows for very small designs, without going to the trouble of thermal engineering of power SMD components used in more recent designs (and reliability issues, if such design is not properly done).
The LMD18245 uses a remarkable current sensing technique – the main DMOS switches are made up of about 4000 elements, and only one of these is used, along with a current sense amplifier, to provide a 4000:1 scaled version (250 µA per Amp) of the coil current. This eliminates the need of heavy/expensive low-ohm low-inductance resistors.
To protect the circuit, two capacitors are used – a 1 µF film capacitor, close to the VCC input of the LMD18245, and a 470 µF electrolytic (1 for each pair of phases).
The digital interface is very simple, and has been used in assemblies of multiple motors/multiple phases with success. The data bus input is buffered by 74LS374 edge-triggered D-flip-flops. Many units can be connected to a common bus, using a ribbon cable, and solder bridges for the address (LS374 clock) lines.
Typically, these are set by a micro-processor, using a look-up table (if MCU pin number is limited, a shift register, 74LS164 or similar, can be used instead). This allows full control of magnitude of current (4-bit DAC), and direction (via H bridge).
Judging from experience, the LMD18245 is a very robust device that can be employed of all kinds of motor control, in particular, if you need a easy to implement, but still fully customizable, reliable solution.