Electronics » Motion Control Modules » Stepper Motor Drivers »
TB67S128FTG Stepper Motor Driver Carrier
This breakout board makes it easy to use Toshiba’s TB67S128FTG microstepping bipolar stepper motor driver, which features adjustable current limiting and microstepping down to 1/128-step. In addition, it has the ability to dynamically select an optimal decay mode by monitoring the actual motor current, and it can automatically reduce the driving current below the full amount when the motor is lightly loaded to minimize power consumption and heat generation. The driver has a wide operating voltage range of 6.5 V to 44 V and can deliver approximately 2.1 A per phase continuously without a heat sink or forced air flow (up to 5 A peak). It features built-in protection against under-voltage, over-current, and over-temperature conditions; our carrier board also adds reverse-voltage protection (up to 40 V).
Description | Specs (15) | Pictures (10) | Resources (10) | FAQs (4) | On the blog (1) |
---|
Overview
TB67S128FTG Stepper Motor Driver Carrier, bottom view with dimensions. |
---|
This product is a carrier board or breakout board for Toshiba’s TB67S128FTG stepper motor driver; we therefore recommend careful reading of the TB67S128FTG datasheet (2MB pdf) before using this product. This stepper motor driver offers microstep resolutions down to 1/128 of a step, and it lets you control one bipolar stepper motor at up to approximately 2.1 A per phase continuously (5 A peak) without a heat sink or forced air flow (see the Power Dissipation Considerations section below for more information.) The board breaks out every control pin and output of the TB67S128FTG, making all of the driver’s features available to the user.
Here are some of the board’s key features:- Two interface modes to select from:
- clock mode for simple step and direction control
- serial mode for controlling the driver’s many features through a serial interface (this mode also allows for serial control of the current limit)
- Eight different step modes: full-step, half-step, 1/4-step, 1/8-step, 1/16-step, 1/32-step, 1/64-step, and 1/128-step
- Adjustable current control lets you set the maximum current output with a potentiometer, which lets you use voltages above your stepper motor’s rated voltage to achieve higher step rates
- Four different decay modes: mixed decay (two timing ratios), fast decay, or Advanced Dynamic Mixed Decay (ADMD), which dynamically switches between slow and fast decay modes by monitoring the state of current decay (not according to fixed timing)
- Configurable Active Gain Control (AGC) automatically reduces drive current to minimize power consumption and heat generation when maximum torque is not needed
- Motor supply voltage: 6.5 V to 44 V
- Can deliver up to approximately 2.1 A per phase continuously (5 A peak) without additional cooling
- Can interface directly with 3.3 V and 5 V systems
- Protection against over-current/short-circuit and over-temperature
- Open-load detection
- Active-low error outputs indicate over-current, over-temperature, or open-load condition
- Carrier board adds reverse-voltage protection up to 40 V
- Carrier board breaks out all of the TB67S128FTG pins in a compact size (1.2″ × 1.6″)
- Exposed solderable ground pad below the driver IC on the bottom of the PCB
Included hardware
This product ships with all surface-mount components installed as shown in the product picture. However, soldering is required for assembly of the included through-hole parts. The following through-hole parts are included:
- Two 1×16-pin breakaway 0.1″ male header strips
- Three 2-pin, 3.5 mm terminal blocks (for board power and motor outputs)
- One 0.1″ shorting block (for optionally connecting IOREF to the neighboring VCC pin when using this driver in 5 V systems)
The 0.1″ male headers can be broken or cut into smaller pieces as desired and soldered into the smaller through-holes. These headers are compatible with solderless breadboards, 0.1″ female connectors, and our premium and pre-crimped jumper wires. The terminal blocks can be soldered into the larger holes to allow for convenient temporary connections of unterminated power and motor wires (see our short video on terminal block installation). You can also solder your motor leads and other connections directly to the board for the most compact installation.
Using the driver
Minimal wiring diagram for connecting a microcontroller to a TB67S128FTG stepper motor driver carrier. |
---|
Power connections
The driver requires a motor supply voltage of 6.5 V to 44 V to be connected across VIN and GND. This supply should be capable of delivering the expected stepper motor current.
A 5 V output from the TB67S128FTG’s internal regulator is made available on the VCC pin. This output can supply up to 5 mA to external loads, and it can optionally be used to supply the neighboring IOREF pin.
Motor connections
Four, six, and eight-wire stepper motors can be driven by the TB67S128FTG 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.)
Pinout
PIN | Default Value | Description |
---|---|---|
VIN | 10 V to 47 V board power supply connection (reverse-protected up to 40 V). | |
GND | Ground connection points for the motor power supply and control ground reference. The control source and the motor driver must share a common ground. | |
VM | This pin gives access to the motor power supply after the reverse-voltage protection MOSFET (see the board schematic below). It can be used to supply reverse-protected power to other components in the system. It is generally intended as an output, but it can also be used to supply board power. | |
A+ | Motor A output: “positive” end of phase A coil. | |
A− | Motor output: “negative” end of phase A coil. | |
B+ | Motor output: “positive” end of phase B coil. | |
B− | Motor output: “negative” end of phase B coil. | |
VCC | Regulated 5 V output: this pin gives access to the voltage from the internal regulator of the TB67S128FTG. The regulator can only provide a few milliamps, so the VCC output should only be used for logic inputs on the board (such as the neighboring IOREF pin), not for powering external devices. | |
IOREF | All of the board signal outputs are open-drain outputs that are pulled up to IOREF, so this pin should be supplied with the logic voltage of the controlling system (e.g. 3.3 V for use in 3.3 V systems). For convenience, it can be connected to the neighboring V5 (OUT) pin when it is being used in a 5 V system. | |
VREF | Voltage reference pin for setting the current limit. This pin is connected to the potentiometer. See the Current limiting section below for more information. | |
MODE0, MODE1, MODE2 |
LOW | Step resolution selection pins. |
CW/CCW (DIR) | LOW | Input that determines the direction of rotation. |
CLK (STEP) | LOW | A rising edge on this input causes the driver to advance the motor by one step or microstep (moving the coil currents one step up or down in the translator table). |
STANDBY | LOW | Standby mode input. By default, the driver pulls this pin low, disabling the motor outputs and internal oscillating circuit; it must be driven high to enable the driver. |
ENABLE | LOW | Enable input. By default, the driver pulls this pin low, disabling the motor outputs; it must be driven high to enable the driver. |
RESET | LOW | Reset input: driving this pin high resets the driver’s internal electrical angle (the state in the translator table that it is outputting). |
MO | This open-drain output is low when the driver’s internal electrical angle is at its initial value (the value after reset); otherwise, the board pulls it up to IOREF. | |
LO0, LO1 |
HIGH | Error outputs: these pins drive low to indicate that an error condition has occurred; otherwise, the board pulls them up to IOREF. The specific error can be determined by the state of both error pins. |
IF_SEL | LOW | Interface select pin. By default, the driver pulls this pin low, setting the driver in CLK mode, where the CLK input steps the electrical angle of the stepper motor. When driven high, the driver is in serial input mode, where settings can be configured and the motor can be controlled through a serial interface. |
RS_SEL | LOW | RS mode select pin. By default, the driver pulls this pin low, enabling internal current sensing. When driven high, current is sensed through external resistors added to the RS_x pins. |
EDG_SEL | LOW | CLK edge setting pin. By default, the driver pulls this pin low, causing the driver to take a step (advance the motor’s electrical angle) on each rising edge of the CLK signal. When driven high, the driver takes a step on both the rising and falling edges of the CLK signal. |
GAIN_SEL | LOW | VREF gain setting pin; see Current limiting below. |
AGC | HIGH | This pin determines whether Active Gain Control (AGC) is enabled. See the datasheet and the Active Gain Control section below for details about the AGC feature. |
CLIM0, CLIM1 |
HIGH, 100 kΩ pull-up |
These inputs set the bottom (minimum) current limit when AGC is active. CLIM1 is a four-state input. |
FLIM | 100 kΩ pull-up |
This four-state input sets the bottom frequency limit (minimum step rate) for AGC to be active. |
BOOST | 100 kΩ pull-up |
This four-state input determines how quickly the motor current is boosted back to the normal limit after the driver detects increased load torque with AGC active. |
LTH | 100 kΩ pull-down |
This input controls the AGC detection threshold (torque detection sensitivity). |
MDT0, MDT1 |
LOW | Decay mode selection pins; see Decay modes below. |
TORQE0, TORQE1, TORQE2 |
LOW | Digital current control pins; see Current limiting below. |
RS_A, RS_B |
Current sense resistor connection pins. Optional external current-sensing resistors can be added to these pins; see Current limiting below. |
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 TB67S128FTG 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 (MODE0, MODE1, and MODE2) enable selection from the seven step resolutions according to the table below. These three pins have internal 100 kΩ pull-down resistors, so leaving these three microstep selection pins disconnected results in full-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.
MODE2 | MODE1 | MODE0 | Microstep resolution |
---|---|---|---|
Low | Low | Low | Full step |
Low | Low | High | Half step |
Low | High | Low | 1/4 step |
Low | High | High | 1/8 step |
High | Low | Low | 1/16 step |
High | Low | High | 1/32 step |
High | High | Low | 1/64 step |
High | High | High | 1/128 step |
Decay modes
The TB67S128FTG supports four different decay modes that can be selected using the MDT0 and MDT1 pins according to the table below. Both of these pins have internal 100 kΩ pull-down resistors, so the default decay mode is 37.5% mixed decay.
MDT1 | MDT0 | Decay mode | Description |
---|---|---|---|
Low | Low | 37.5% mixed decay | Starts as slow decay; switches to fast decay for the last 37.5% of each PWM cycle |
Low | High | 50% mixed decay | Starts as slow decay; switches to fast decay for the last 50% of each PWM cycle |
High | Low | Fast decay | |
High | High | Advanced Dynamic Mixed Decay (ADMD) | Dynamically switches between slow and fast decay modes by monitoring the state of current decay (not according to fixed timing) |
See the datasheet for more details about these decay modes. We recommend tying both MDT pins high to enable Advanced Dynamic Mixed Decay for most applications.
Control inputs and status outputs
The rising edge of each pulse to the CLK (STEP) input corresponds to one microstep of the stepper motor in the direction selected by the CW/CCW (DIR) pin. These inputs are both pulled low by default through internal 100 kΩ pull-down resistors. If you just want rotation in a single direction, you can leave CW/CCW disconnected.
The chip has two different inputs for controlling its power states: STANDBY and ENABLE. (The chip’s datasheet uses the name STANDBY, but we call the pin STANDBY on our board based on the logic of how it works.) For details about these power states, see the datasheet. Please note that the driver pulls both of these pins low through internal 100 kΩ pull-down resistors. The default states of these pins prevent the driver from operating; both must be high to enable the driver (they can be connected directly to a logic high voltage between 2 V and 5.5 V, such as the driver’s own VCC output, or they can be dynamically controlled via connections to digital outputs of an MCU).
When the RESET pin is driven high, the driver resets its internal electrical angle (the state in the translator table that it is outputting) to an initial value of 45°. This corresponds to +100% of the current limit on both coils in full step mode and +71% on both coils in other microstep modes. Note that, unlike the reset pin on many other stepper drivers, the RESET pin on the TB67S128FTG does not disable the motor outputs when it is asserted: when RESET is high, the driver will continue supplying current to the motor, but it will not respond to step inputs on the CLK pin.
The MO pin drives low to indicates when the driver’s electrical angle is equal to the initial value of 45° (immediately after reset and whenever the driver has stepped a full cycle through the translator table after that); it is pulled up to IOREF otherwise.
The TB67S128FTG can detect several fault (error) states that it reports by driving one or both of the LO pins low (the datasheet describes what each combination of LO0 and LO1 means). Otherwise, these pins are pulled up to IOREF by the board. Errors are latched, so the outputs will stay off and the error flag(s) will stay asserted until the error is cleared by toggling standby mode with the STANDBY pin or disconnecting power to the driver.
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 10 V would allow higher step rates, but the current must actively be limited to under 1 A to prevent damage to the motor.
The TB67S128FTG 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 mode and to measure the current running through a single motor coil without clocking the STEP input. The measured current will be equal to the current limit (since both coils are always on and limited to 100% of the current limit setting in full-step mode).
Another way to set the current limit is to measure the VREF voltage and calculate the resulting current limit. The VREF voltage is accessible on the VREF pin. The driver’s RS_SEL and GAIN_SEL pins are pulled low by default, selecting internal current sensing. If the GAIN_SEL pin is high, the VREF gain (multiplier) is reduced by half. The current limit in Amps relate to VREF in Volts as follows:
GAIN_SEL | Formula | |
---|---|---|
L (Default) | ``text(Current Limit) = text(VREF) * 1.56`` | |
H | ``text(Current Limit) = text(VREF) * 0.78`` |
or, rearranged to solve for VREF:
GAIN_SEL | Formula | |
---|---|---|
L (Default) | ``text(VREF) = text(Current Limit) / 1.56`` | |
H | ``text(VREF) = text(Current Limit) / 0.78`` |
So, for example, if you have a stepper motor rated for 1 A and leave the GAIN_SEL pin low, you can set the current limit to 1 A by setting the reference voltage to about 0.64 V.
Alternatively, the driver can measure motor current with external sense resistors instead of using internal current sensing. To use external sensing, cut the connections between the RS_A and RS_B pins and the adjacent GND pins, connect appropriate resistors between each RS pin and GND, and drive the RS_SEL pin high. See the TB67S128FTG datasheet for information about setting the current limit in this mode.
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 mode, both coils will always be on and limited to 100% of the current limit setting (unlike some other drivers that limit it to about 70% in full-step mode). 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. If Active Gain Control is active, it will also further reduce the actual motor current. See the driver’s datasheet for more information.
The TB67S128FTG also features three inputs (TORQE0, TORQE1, and TORQE2) that can be used for digital control of the current limit, applying a multiplier between 10% and 100% (the default) to the current limit set by the VREF voltage. See the driver’s datasheet for details about these pins and their available settings.
Active Gain Control
The TB67S128FTG has a feature called Active Gain Control, or AGC, that automatically optimizes the motor current by sensing the load torque applied to the motor and dynamically reducing the current below the full amount. This allows it to minimize power consumption and heat generation when the motor is lightly loaded, but if the driver senses an increased load, it will quickly ramp the current back up to the full amount to try to prevent a stall.
AGC is configured with six pins (AGC, CLIM0, CLIM1, FLIM, BOOST, and LTH) that are brought out along the bottom edge of the board, and all of the pins except LTH are also connected to surface-mount jumpers on the back side of the board that let you reconfigure them without external components or connections. See the driver’s datasheet for details about what each pin does and what input states it accepts.
By default, AGC and CLIM0 are pulled up to IOREF through 10 kΩ pull-up resistors. Cutting the trace that goes between the pads of each jumper allows the chip’s internal 100 kΩ pull-down to pull that pin low. Alternatively, you can simply drive or tie the pin low with the corresponding through-hole.
CLIM1, FLIM, and BOOST (BST) are four-state logic inputs that can be tied high to VCC, pulled high through a 100 kΩ resistor, pulled low through a 100 kΩ resistor, or tied low to GND. Our carrier board connects each of these pins to VCC through a 100 kΩ pull-up resistor by default. As shown in the picture below, the trace between the VCC pad and the pad labeled “R” (connected to the pin through the 100 kΩ resistor) should be cut before selecting a different state by shorting across the desired two pads (although it is also possible to override the 100 kΩ pull-up by tying the pin to VCC or GND without cutting the trace).
The table below lists the AGC configuration pins’ default states on the carrier board and the resulting settings:
Pin | Default State | Effect |
---|---|---|
AGC | HIGH | AGC enabled |
CLIM0 | HIGH | Bottom current limit: 75% (AGC will not reduce the motor current to less than 75% of the full amount) |
CLIM1 | 100 kΩ pull-up |
|
FLIM | 100 kΩ pull-up |
Frequency limit: 450 Hz (stepping frequency on CLK pin must be at least 450 Hz for AGC to activate) |
BOOST | 100 kΩ pull-up |
Max steps to reach full current: 7 steps (after increased load torque is detected) |
Finally, the board pulls the LTH pin low through a 100 kΩ resistor to set a normal AGC detection threshold.
Power dissipation considerations
The TB67S128FTG driver IC has a maximum current rating of 5 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 the specified continuous current 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 and can be further reduced if Active Gain Control is active.
Schematic diagram
Schematic diagram of the TB67S128FTG Stepper Motor Driver Carrier. |
---|
This diagram is also available as a downloadable pdf: TB67S128FTG stepper motor driver carrier schematic (183k pdf)
People often buy this product together with:
TB67H420FTG Dual/Single Motor Driver Carrier |
Pololu High-Power Stepper Motor Driver 36v4 |