circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

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.)