DRV8434A Stepper Motor Driver Carrier

by Pololu

This breakout board for TI’s DRV8434A microstepping bipolar stepper motor driver offers microstepping down to 1/256-step and operates from 4.5 V to 48 V.

It can deliver up to approximately 1.2 A continuous per phase without a heat sink or forced air flow (2 A peak). The driver has integrated stall detection and uses a ripple control algorithm that allows tight regulation of current level and increased motor efficiency. The module has a pinout and interface that are very similar to that of the popular A4988 carriers, so it can be used as a drop-in replacement for those boards in many applications. It features built-in protection against under-voltage, over-current, and over-temperature conditions.

This product is a carrier board or breakout board for the DRV8434A stepper motor driver from Texas Instruments (TI); we therefore recommend careful reading of the DRV8434A datasheet before using this product. This stepper motor driver lets you control one bipolar stepper motor at up to approximately 1.2 A continuous per phase without a heat sink or forced air flow (see the Power dissipation considerations section below for more information).

There are several different versions of DRV8434x carriers, and the following comparison table shows their key differences:

DRV8434A DRV8434S
(Potentiometer for Max. Current Limit)
DRV8434S
(2A Max. Current Limit)
Configuration: I/O pins SPI
Control interface: STEP and DIR pins STEP and DIR pins or SPI
Stall detection: Yes Yes
Current limit: Potentiometer setting (0–2 A) Potentiometer setting for max. (0–2 A), scaled with SPI setting (%) 2 A fixed max., scaled with SPI setting (%)
Decay modes available: 1 8

Features

  • 4.5 V to 48 V supply voltage range
  • Can deliver up to 1.2 A continuous per phase without additional cooling (2 A peak)
  • Built-in regulator (no external logic voltage supply needed)
  • Can interface directly with 1.8 V, 3.3 V and 5 V systems
  • Simple step and direction control interface
  • Eleven different step resolutions: full-step with 100% current, full-step with 70% current, non-circular 1/2-step, 1/2-step, 1/4-step, 1/8-step, 1/16-step, 1/32-step, 1/64-step, 1/128-step, 1/256-step
  • Adjustable current control lets you set the maximum current output, which lets you use voltages above your stepper motor’s rated voltage to achieve higher step rates
  • Integrated stall detection with three GPIO pins
  • Ripple control algorithm (decay mode) that allows tight regulation of current level and increased motor efficiency
  • Over-temperature thermal shutdown, over-current protection, open load detection, under-voltage lockout, and charge pump over-voltage protection
  • Driver IC integrates spread spectrum clocking of its internal oscillator and charge pump for reduced EMI
  • 4-layer, 2 oz copper PCB for improved heat dissipation
  • Exposed solderable ground pad below the driver IC on the bottom of the PCB
  • Module size, pinout, and interface match those of our A4988 stepper motor driver carriers in most respects

This product ships with all surface-mount components—including the DRV8434A driver IC—installed as shown in the product picture.

Some unipolar stepper motors (e.g. those with six or eight leads) can be controlled by this driver as bipolar stepper motors. For more information, please see the frequently asked questions. Unipolar motors with five leads cannot be used with this driver.

Included hardware

The DRV8434A stepper motor driver carrier ships with one 1×16-pin breakaway 0.1″ male header. The headers can be soldered in for use with solderless breadboards or 0.1″ female connectors. You can also solder your motor leads and other connections directly to the board.

Power connections

The driver requires a motor supply voltage of 4.5 V to 48 V to be connected across VIN and GND. This supply should be capable of delivering the expected stepper motor current. Note that supply voltages below 6 V limit the maximum settable current limit; see the Current limiting section for more details.

Motor connections

Four, six, and eight-wire stepper motors can be driven by the DRV8434A if they are properly connected; a FAQ answer explains the proper wirings in detail.

Warning: Connecting or disconnecting a stepper motor while the driver is powered can destroy the driver. (More generally, rewiring anything while it is powered is asking for trouble.)

Step (and microstep) size

Stepper motors typically have a step size specification (e.g. 1.8° or 200 steps per revolution), which applies to full steps. A microstepping driver such as the DRV8434A allows higher resolutions by allowing intermediate step locations, which are achieved by energizing the coils with intermediate current levels. For instance, driving a motor in quarter-step mode will give the 200-step-per-revolution motor 800 microsteps per revolution by using four different current levels.

The resolution (step size) selector inputs (M0 and M1) enable selection from the eleven step resolutions according to the table below. M0 is a tri-level pin and M1 is a quad-level pin; note that the voltage on these pins must be greater than 2.7 V for them to register as logic high. The driver defaults to 1/128 step mode. For the microstep modes to function correctly, the current limit must be set low enough (see below) so that current limiting gets engaged. Otherwise, the intermediate current levels will not be correctly maintained, and the motor will skip microsteps.

M0 M1 Microstep Resolution
Low Low Full step with 100% current
Low 330kΩ to GND Full step with 71% current
High Low Non-circular 1/2 step
Hi-Z Low 1/2 step
Low High 1/4 step
High High 1/8 step
Hi-Z High 1/16 step
Low Hi-Z 1/32 step
Hi-Z 330kΩ to GND 1/64 step
Hi-Z Hi-Z 1/128 step
High Hi-Z 1/256 step

Control inputs and status outputs

The rising edge of each pulse to the STEP input corresponds to one microstep of the stepper motor in the direction selected by the DIR pin. These inputs are both pulled low by default. If you just want rotation in a single direction, you can leave DIR disconnected.

The chip has two different inputs for controlling its power states: SLEEP and ENABLE. For details about these power states, see the datasheet. SLEEP (SLP) is internally pulled-low which by default prevents the driver from operating; this pin must be high to enable the driver (it can be connected directly to a logic “high” voltage between 1.8 V and 5 V, or it can be dynamically controlled by connecting it to a digital output of an MCU). A 20 μs pulse on the SLEEP pin clears latched faults without putting the driver to sleep. The default state of the ENABLE (EN) pin is to enable the driver. ENABLE is also used to select the scaling for the torque count and stall threshold. See the datasheet for more details

The DRV8434A also features an open-drain FAULT output that drives low whenever the driver detects an under-voltage, over-current, open load, stall detection, or thermal shutdown fault. The carrier board connects this pin to the SLEEP pin through a 10 kΩ resistor that acts as a FAULT pull-up whenever SLEEP is externally held high, so no external pull-up is necessary on the FAULT pin. Note that the carrier includes a 1.5 kΩ protection resistor in series with the FAULT pin that makes it is safe to connect this pin directly to a logic voltage supply, as might happen if you use this board in a system designed for the pin-compatible A4988 carrier. In such a system, the 10 kΩ resistor between SLEEP and FAULT would then act as a pull-up for SLEEP, making the DRV8434A carrier more of a direct replacement for the A4988 in such systems (the A4988 has an internal pull-up on its SLEEP pin).

Note: Table 7-7. Fault Condition Summary in the DRV8434A datasheet incorrectly states that the thermal shutdown and over-current faults will automatically recover. These two faults are actually latching and a SLEEP reset pulse or power cycle must be performed to clear them.

Current limiting

To achieve high step rates, the motor supply is typically higher than would be permissible without active current limiting. For instance, a typical stepper motor might have a maximum current rating of 1 A with a 5 Ω coil resistance, which would indicate a maximum motor supply of 5 V. Using such a motor with 9 V would allow higher step rates, but the current must actively be limited to under 1 A to prevent damage to the motor.

The DRV8434A supports such active current limiting, and the trimmer potentiometer on the board can be used to set the current limit. You will typically want to set the driver’s current limit to be at or below the current rating of your stepper motor. One way to set the current limit is to put the driver into full-step 100% current mode and to measure the current running through a single motor coil without clocking the STEP input.

Another way to set the current limit is to measure the VREF voltage and calculate the resulting current limit. The VREF pin voltage is accessible via a small hole that is circled on the bottom silkscreen of the circuit board. The current limit in amps relates to the reference voltage in volts as follows:

Current Limit=VREF / 1.32

or, rearranged to solve for VREF:

VREF=Current Limit⋅1.32

So, the current limit in amps (A) is equal to VREF voltage in volts (V) divided by 1.32, and if you have a stepper motor rated for 1 A, for example, you can set the current limit to about 1 A by setting the reference voltage to about 1.32 V.

For input voltages below 6 V the DRV8434A’s internally regulated logic voltage VDVDD linearly drops from 5 V with a 6 V input to around 4.35 V with a 4.5 V input. VDVDD supplies the potentiometer circuit used to set the driver’s current limit, so using supply voltages below 6 V reduces the maximum current limit setting possible with the onboard potentiometer. With an input of 4.5 V the maximum settable current limit is 1.75 A.

Note: The coil current can be very different from the power supply current, so you should not use the current measured at the power supply to set the current limit. The appropriate place to put your current meter is in series with one of your stepper motor coils. If the driver is in full-step 100% current or full-step 71% current modes, both coils will always be on and limited to 100% or 71% of the current limit setting, respectively. If your driver is in one of the microstepping modes, the current through the coils will change with each step, ranging from 0% to 100% of the set limit. See the DRV8434A datasheet for more information.

Power dissipation considerations

The DRV8434A carrier has a maximum current rating of 2 A per coil, but the actual current you can deliver depends on how well you can keep the IC cool. The carrier’s printed circuit board is designed to draw heat out of the IC, but to supply more than approximately 1.2 A per coil, a heat sink or other cooling method is required.

This product can get hot enough to burn you long before the chip overheats. Take care when handling this product and other components connected to it.

Please note that measuring the current draw at the power supply will generally not provide an accurate measure of the coil current. Since the input voltage to the driver can be significantly higher than the coil voltage, the measured current on the power supply can be quite a bit lower than the coil current (the driver and coil basically act like a switching step-down power supply). Also, if the supply voltage is very high compared to what the motor needs to achieve the set current, the duty cycle will be very low, which also leads to significant differences between average and RMS currents. Additionally, please note that the coil current is a function of the set current limit, but it does not necessarily equal the current limit setting as the actual current through each coil changes with each microstep.

Stall detection

The DRV8434A driver can detect motor stall conditions or an end of travel by detecting back-EMF phase shift. An internal algorithm generates a measure of the phase shift called torque count which is independent of motor current, ambient temperature, and supply voltage. For a lightly loaded motor, the torque count will be a non-zero value. As the motor approaches a stall condition, torque count will approach zero. If the torque count falls below the stall threshold, the device will detect a stall. For details on using stall detection, please see the DRV8434A datasheet.

This carrier board for the DRV8434A was designed to also work with the DRV8434 from the same chip family. The DRV8434 features decay mode setting options that use these same three pins instead of stall detection. The silkscreen on the carrier board lists both names for each pin, but only the SMD, STH, and SREP labels are relevant for the DRV8434A driver. These labels correspond to STL_MODE, TRQ_CNT/STL_TH, and STL_REP, respectively.

Please note that the DRV8434A’s stall detection has limitations, and how well it works will depend on the specifics of the application, including the choice of motor. In tests, Pololu have found it works better when the step signal is steady (e.g. provided by a microcontroller’s PWM timer output rather than software delays) and the speed is moderate. Here are some other considerations to be aware of:

  • The ideal stall threshold is a function of the speed, which can make it difficult to use this feature in applications with widely varying speeds. For applications with small speed changes, we recommend characterizing the stall threshold or doing the learning mode process at the lowest speed.
  • Stall detection might not work well at very low or very high speeds.
  • Stall detection might not work well for motors with high coil resistance.

Schematic diagram

The schematic is available as a downloadable pdf (94k pdf).

Key differences between the DRV8434A and A4988

The DRV8434A carrier was designed to be as similar to the Pololu A4988 stepper motor driver carriers as possible, and it can be used as a drop-in replacement for the A4988 carrier in many applications because it shares the same size, pinout, and general control interface. There are a few differences between the two modules that should be noted, however:

  • The pin used to supply logic voltage to the A4988 is used as the DRV8434A FAULT output, since the DRV8434A does not require a logic supply (and the A4988 does not have a fault output). Note that it is safe to connect the FAULT pin directly to a logic supply (there is a 1.5k resistor between the IC output and the pin to protect it), so the DRV8434A module can be used in systems designed for the A4988 that route logic power to this pin.
  • The SLEEP pin on the DRV8434A is not pulled up by default like it is on the A4988, but the carrier board does connect it to the FAULT pin through a 10k resistor. Therefore, systems intended for the A4988 that route logic power to the FAULT pin will effectively have a 10k pull-up on the SLEEP pin.
  • The DRV8434A has one extra pin (STL_REP) located on the bottom edge of the board. Installing a header pin in this location could prevent the carrier from fitting into sockets or boards designed for the A4988.
  • The current limit potentiometer is in a different location.
  • The relationship between the current limit setting and the reference pin voltage is different.
  • The DRV8434A offers several microstep modes that the A4988 does not.
  • The DRV8434A only has two pins for setting its microstep mode; the A4988 has three, and the step selection table differs between the DRV8434A and A4988. On the DRV8434A, the M0 and M1 pins must be left in a floating (high-impedance) state or connected through a 330kΩ to ground to select some of the microstepping modes. The default microstepping mode on the DRV8434A carrier is 1/128-step while the default microstepping mode on the A4988 carrier is full-step.
  • The DRV8434A has no RESET input, but a pulse on its FAULT pin can be used to reset latched faults.
  • The ENABLE pin on the DRV8434A enables the driver when floating or high and the driver is enabled by default. On the A4988 the ENABLE pin enables the driver when low and is pulled down by the carrier.
  • The DRV8434A has a smart tune ripple control decay mode rather than mixed decay like on our A4988 carriers. This feature allows tighter current regulation and thus increased motor efficiency.
  • The DRV8434A has a lower minimum supply voltage than the A4988 (4.5 V vs 8.2 V) and a higher maximum supply voltage (48 V vs 35 V), which means the DRV8434A can be used in a wider range of systems, is safer for using higher voltages, and is less susceptible to damage from LC voltage spikes.
  • The DRV8434A uses a different naming convention for the stepper motor outputs. On both boards, the first part of the label identifies the coil (so you have coils “A” and “B” on the DRV8434A and coils “1” and “2” on the A4988). Additionally, the two pairs of motor output pins are swapped, so if a motor is connected to both drivers with its wires in the same order top to bottom, it will turn one way for the DRV8434A and the other for the A4988.

In summary, the DRV8434A carrier is similar enough to our A4988 carriers that the minimum connection diagram for the A4988 is a valid alternate way to connect the DRV8434A to a microcontroller as well: