The MAXREFDES89# provides an ideal interface for anyone developing with brushed DC motors. The design is an mbed®-compatible, Arduino® form factor shield for the rapid development of brushed DC motor applications. The shield contains four MAX14871 full-bridge DC motor drivers for driving up to 4 motors. A MAX17501 DC-DC converter allows the system to operate from a single 7 to 36VDC power supply. Four MAX4704 4:1 multiplexers permit setting the current regulation mode of the MAX14871, while two MAX5387 digital potentiometers provide the ability to set the motor current limit. A MAX7300 GPIO expander supports interfacing each motor driver circuit to the mbed-enabled microcontroller platform.
An mbed library for the shield is available at the following link, MAX14871_Shield Library. The library abstracts the details of interfacing with the supporting hardware of the reference design and allows the user to focus on their application.
The MAXREFDES89# is a tool for rapid development that offers optimal flexibility to the user during development of their application. In a final design, the MAX14871 may be the only required silicon for driving a brushed DC motor and regulating the motor’s current.
Brushed DC motors provide cost-effective, convenient motion in many applications ranging from electric toothbrushes to vending machines. The simplicity and reliability of brushed DC motors also make them ideal for prototyping and hobbyist designs. Now, the MAXREFDES89# provides developers with a rapid prototyping and development platform for driving brushed DC motors.
The MAXREFDES89# is an mbed-compatible, Arduino form factor shield for the rapid production of brushed DC motor applications. The shield contains four MAX14871 full-bridge DC motor drivers, one MAX17501 DC-DC converter, four MAX4704 4:1 multiplexers, two MAX5387 digi pots and one MAX7300. Each MAX14871 provides the necessary functions to drive a brushed DC motor, while the additional parts allow for complete testing and operation in a variety of configurations.
The MAXREFDES89# is a tool for rapid development that offers optimal flexibility to the user during development of their application. In a final design, the only required silicon for driving a brushed DC motor and regulating the motor’s current is the MAX14871.
Figure 1. MAXREFDES89# block diagram.
Please see Figure 1 for a block diagram of the MAXREFDES89#.
Please refer to the MAXREFDES89# schematic sheet 1 of 6 for the following discussion.
The supply voltage range for the MAXREFDES89# is 7V to 36V DC. The required current depends on the motors used, which can have a continuous current of up to 2A per driver. The shield contains a MAX17501 DC-DC converter which provides a 5.7V typical VIN to the mbed platform via Schottky diode D2.
The MAX17501 offers an active-low RESET output which will reset the mbed platform on an undervoltage condition of ~6.98V at VBAT if JP1 is removed. This feature can be disabled by installing JP1 on pins 1 and 2. The mbed board can be isolated from the active-low RESET output of the MAX17501 by removing R67.
The direct interfaces between the mbed platform and the shield are the following:
Please see Table 1 for configurable interface options.
Table 1. Interface Options
Refer to the MAXREFDES89# schematic sheet 2 of 6 for the following discussion.
There is an option to stack up two MAXREFDES89# shields for applications that require the control of up to eight motors. To support this feature, the mbed platform must support PWM on the required channels. The FRDM-KL25Z has been tested and supports all eight possible drivers. No more than two MAXREFDES89# shields can be stacked.
Additionally, the I2C addresses of the MAX7300 GPIO expander and the MAX5387 digi pot will need to be changed. For the optional positions, please see Table 2. For the simplest operation when stacking two boards, move all configuration resistors to their optional positions on one board, and leave the resistors in their default positions on the other board. The mbed library supports two configurations, the default configuration and the optional configuration. Other configurations can be used of course; however, this will require the user to edit the library for their configuration.
Table 2. I2C 7-Bit Slave Addresses
|Device||Default Address||Optional Address||Resistors (Default/Optional)|
Refer to the MAXREFDES89# schematic sheet 3 through 6 for the following discussion.
The MAX7300 GPIO expander provides many GPIOs in the system. The user has control of the active-low EN and DIR pins of each MAX14871 motor driver. The MAX7300 also controls the ADDA and ADDB pin of each MAX4704, a 4:1 analog multiplexer (U5, U7, U9, U11), which sets the voltage on the MODE pin of each MAX14871 (U6, U8, U10, U12). The voltage on the MODE pin of a MAX14871 sets the current regulation mode of the device. One half of each MAX5387 digital potentiometer (U3, U4), is used to set the voltage reference, VREF, on the corresponding MAX14871 for the external current regulation limit.
The MAXREFDES89# must be used with an ARM® mbed-compatible platform, for application development. To accelerate development with the MAXREFDES89#, the mbed MAX14871_Shield Library was developed along with a simple terminal demo program which demonstrates the use of the library and the features of the shield.
Figure 2 provides a high-level flow chart of the program and documentation of the MAX14871_Shield Library can be found in the design files.
Figure 2. Demo program flowchart.
The reference design is fully assembled and tested. Follow the steps below to verify board operation.
The output of motor driver 1 is P6, motor driver 2 is P7, etc.
Figure 3, Figure 4, and Figure 5 show the 25% ripple current regulation mode of the MAX14871 motor driver at startup and steady-state operation. In each measurement channel 1 is the PWM signal to the motor driver, channel M is the math function and the difference between channels 2 and 3 (M1 and M2 of the motor driver), and channel 4 is the motor current measured with a current probe. Each measurement was triggered off of the first rising edge of the PWM signal. All of the measurements used the typical internal voltage reference of 1V, current-sense amplifier gain of 10V/V, and a sense resistor of 100mΩ. This configuration results in a current limit, Ilim, of 1A.
In Figure 3, the motor armature current was 0A prior to the rising edge of the PWM signal and the motor was at rest. On the rising edge of the PWM signal, the armature current begins to rise with the motor's L/R time constant. During this time, the motor driver operates in normal PWM operation as shown on page 9 of the MAX14871 data sheet, where the duty cycle of the PWM signal directly controls the average voltage at the motor terminals.
Once the armature current reaches Ilim the motor driver begins to operate in the current regulation mode, 25% ripple. For this mode of current regulation, the motor terminal voltage is reversed, therefore reversing the change in armature current, until the armature current is reduced to Ilim - Ilim × 0.25. Once the armature current is reduced to within 25% of Ilim, the motor terminal voltage is reversed back to the original polarity. This "back and forth" process continues as long as the armature current continues to rise to Ilim, and produces a 25% ripple armature current regulated to within Ilim and (Ilim - 0.25 × Ilim).
By regulating the motor armature current during startup, or a load transient, a smaller power supply can be used to power the motor. Additionally, the 25% ripple current regulation mode can be used for a broad range of motors and the time constant of the motor does not need to be considered as with the fixed off-time modes of regulation.
In Figure 4, the motor armature current prior to the first rising edge of the PWM signal was 0A. The current regulation and Ilim are the same as Figure 3, however, the PWM signal now has a duty cycle of 50% instead of 100%. Notice, prior to the armature current reaching Ilim, at approximately 260µs, the duty cycle of the PWM signal directly controls the average voltage at the motor terminals. Once the armature current reaches Ilim, the same current regulation process, as described in Figure 3, takes place during the positive duty cycle of the PWM signal. When the PWM signal is low, the motor voltage is forced to 0V.
Figure 3. 25% current regulation mode during startup and 100% PWM duty cycle.
Figure 4. 25% current regulation mode during startup and 50% PWM duty cycle.
Figure 5 shows the same measurement as Figure 3, however the time base is 40ms, to show the steady-state motor armature current. Note how the PWM duty cycle directly controls the average voltage at the motor terminals once the motor armature current decreases below Ilim, this is normal PWM operation.
Figure 5. 25% current regulation mode during startup and steady-state continuous motor current, 100% duty cycle.
The other two modes of current regulation offered by the MAX14871 are Fixed Off-Time Regulation with Fast Decay and Slow Decay. The Fixed Off-Time with Fast Decay mode allows an external capacitor to set a fixed time that the motor terminal voltage is reversed. In this case, the motor’s time constant must be taken into consideration. When using the Fixed Off-Time with Slow Decay, the motor terminal voltage is set to 0V instead of being reversed.
Figure 6, Figure 7, Figure 8, Figure 9, Figure 10, and Figure 11 show the same measurements as Figures 3 to 5 do for Fixed Off-Time with Fast Decay and Fixed Off-Time with Slow Decay, respectively.
Figure 6. Fixed-off time with fast decay current regulation during startup with 100% duty cycle.
Figure 7. Fixed-off time with fast decay current regulation during startup with 50% duty cycle.
Figure 8. Fixed-off time with fast decay current regulation during startup with 100% duty cycle.
Figure 9. Fixed-off time with slow decay current regulation during startup with 100% duty cycle.
Figure 10. Fixed-off time with slow decay current regulation during startup with 50% duty cycle.
Figure 11. Fixed-off time with slow decay current regulation during startup with 100% duty cycle.