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.
- 7V to 36V supply voltage range
- On-board DC-DC for supplying VIN to mbed board
- mbed library available
- 2A (max) current regulation limit per motor driver
- Four motor drivers available
- Arduino shield form factor
- Safe with 25% ripple current regulation flexible with wide supply voltage range
- Saves power with Low RON
- Robust with short-circuit protection to GND/VCC
Designed, Built, Tested
Board pictured here has been fully assembled and tested.
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.
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.
Detailed Description of Hardware
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:
- I2C bus on D14 and D15 (SDA and SCL, respectively)
- PWM channels on D4, D5, D9, and D10 default locations (configurable to D3, D6, D8, and D11 via 0Ω resistors. If D11 is used, the use of the SPI bus that typically is available on mbed platforms becomes unavailable).
- Interrupt in from the MAX7300 GPIO expander on D2 (configurable to D7 via 220Ω resistor).
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.
Detailed Description of Firmware
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.
- Windows® PC with a USB port
- Compatible Arduino form factor mbed platform
- One to four brushed DC motors
- Suitable power supply for motors, 7V to 36V
The reference design is fully assembled and tested. Follow the steps below to verify board operation.
- Connect MAXREFDES89# to mbed platform.
- Connect the power supply to MAXREFDES89# P1. Observe polarity.
- Connect motor to one of the four available motor driver outputs (P6-P9, P6 corresponds to MD1).
- Connect USB cable from the PC to the mbed platform SDA USB port.
- Import the demo from the following link, demo program, to your mbed compiler.
- Compile and download the resulting binary to your mbed platform.
- Open Hyperterminal, or your favorite terminal emulator, find the appropriate COM port for your mbed platform, and configure the connection for 9600bps, 8-N-1 with no flow control.
- Press the reset button on the MAXREFDES89# and exercise the demo.
The output of motor driver 1 is P6, motor driver 2 is P7, etc.
- Tektronix TDS3014 Oscilloscope
- Tektronix TCP202 Current Probe
- PMDC Motor
- Windows PC with a USB port to exercise demo for measurements.
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.
|Input Type||Vin(Min)||Vin(Max)||Iout(Max)||Single/Multiple Output||Vout(V)||Pout(W)||Isolated/Non-Isolated||Topology|
Order NowMAXREFDES89#: MAX14871 Full-Bridge DC Motor Driver mbed Shield
|Part Number||Buy from Maxim or Third Party|
Maxim Devices (5)
|Part Number||Name||Product Family||Order||Design kits and evaluation modules|
|MAX14871||4.5V to 36V Full-Bridge DC Motor Driver||Motor Driver ICs||Buy Now||Design Kits|
|MAX17501||60V, 500mA, Ultra-Small, High-Efficiency, Synchronous Step-Down DC-DC Converter||Switching Regulator - Switching Regulators||Buy Now||Design Kits|
|MAX7300||2-Wire-Interfaced, 2.5V to 5.5V, 20-Port or 28-Port I/O Expander||Controllers/Expanders||Buy Now||Not Available|
|MAX5387||Dual, 256-Tap, Volatile, Low-Voltage Linear Taper Digital Potentiometer||Digital Potentiometers||Buy Now||Design Kits|
|MAX4704||Low-Voltage, 60Ω, 4:1 Analog Multiplexer in QFN||Switches and Multiplexers||Buy Now||Not Available|
Maxim Devices (5)
Design Files (5)
|MAXREFDES89#: MAX14871 Full-Bridge DC Motor Driver mbed Shield||25KB||2021-01-15|
|No Title ; No Title,MAXREFDES89#: MAX14871 Full-Bridge DC Motor Driver mbed Shield||1MB||2021-01-15|
|No Title ; MAXREFDES89#: MAX14871 Full-Bridge DC Motor Driver mbed Shield layout||1MB||2021-01-15|