Issue
153 April 2003
Muscle
for High-Torque Robotics
SOFTWARE
VS. HARDWARE
The
latest generation of microcontrollers makes closed-loop
servo control an easy task, especially when the micro’s
brains are teamed with the nerves and muscle of power
ASIC’s (e.g., the MC33887, MC33886, MC33486, MC33186,
and MC33880). Using the MCU’s A/D inputs to read the
position sensors and its PWM or parallel/serial output
to communicate with the power ASIC makes servo control
more of a programming exercise than a hardware design
exercise.
THE
ROBOT WARRIOR
Toward
the end of keeping this a totally hardware-oriented
article, this design example takes a sans-micro approach
to tackle the task of converting a standard radio control
(RC) pulse-width-coded signal into a high-speed, high-torque
servo response. Referring to the schematic in Figure
1, note that there are five functional areas to the
design. From this point on, I’ll focus on the function
and operation of each area delineated in the schematic,
beginning with the servo amp.
|

(Click
here to enlarge)
|
Figure
1—This servo motion controller module is a fully
analog implementation (i.e., no micro or coding
is required). An on-board test-signal generator
is included and may be selected as the stimulus
input via jumper JP2. |
SERVO
AMP
The
upper right-hand area of the schematic—labeled “servo
amp”—represents the control and power functions that
I’ve already described. Note that it contains only two
ICs: the MC33030 servo IC is the brain, and the MC33887DH
acts as the nerves and muscle. The MC33887DH is the
large IC in the center of the PCB shown in Photo 1.
|

(Click
here to enlarge)
|
Photo
1—The entire module has the same dimensions as a
standard business card, yet it’s capable of controlling
5-A, 12-V motors without additional heatsinking.
Surface-mount technology was used for the majority
of the components. |
As
you can see in Figure 1, the MC33030’s two outputs,
which would ordinarily go to a small motor, are interfaced
to the two inputs of the MC33887 via two small diodes.
Any small signal diodes will do in this case, because
their only function is to prevent the MC33030 outputs
from overdriving the MC33887’s inputs. (Note that the
MC33887 has CMOS/TTL-compatible 5-V logic inputs with
internal 80-µA current source pull-ups.)
Utilizing
the current feedback output of the MC33887 has preserved
the stall-detect and over-current shutdown feature of
the MC33030. The MC33887 uses the loss-less technique
of current mirroring to sense the motor load current.
This technique provides a ratioed sample of the load
current (1/375 in this case), which is easily converted
into any desired voltage via a single resistor. Applying
this resistor to the CDLY input of the MC33030 enables
the IC to detect a motor stall or over-current condition
and shut off the drive signals. The drive signals will
remain off until a direction reversal is commanded via
the error amp or reference input.
The
particular stall current threshold is set by the value
of the feedback resistor (i.e., R10 in Figure 1). Capacitor
C8 is added to filter out current spikes, which may
be present because of capacitance in the load. (Don’t
forget that it’s often necessary to place small capacitors
across the motor brushes to reduce EMI/RFI.)