This is a merged information page for Item #2998.
View normal product page.
Pololu item #:
Status: Active and Preferred
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).
TB67S128FTG Stepper Motor Driver Carrier.
TB67S128FTG Stepper Motor Driver Carrier (top view).
TB67S128FTG Stepper Motor Driver Carrier, bottom view with dimensions.
TB67S128FTG Stepper Motor Driver Carrier with included headers and terminal blocks.
TB67S128FTG Stepper Motor Driver Carrier with included headers and terminal blocks soldered.
TB67S128FTG Stepper Motor Driver Carrier, top view with labeled pinout.
Minimal wiring diagram for connecting a microcontroller to a TB67S128FTG stepper motor driver carrier.
TB67S128FTG Stepper Motor Driver Carrier, Active Gain Control configurable logic input pin surface mount jumpers.
Schematic diagram of the TB67S128FTG Stepper Motor Driver Carrier.
Standard packaging for the TB67S128FTG Stepper Motor Driver Carrier.
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:
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:
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.
Minimal wiring diagram for connecting a microcontroller to a TB67S128FTG stepper motor driver carrier.
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.
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.)
|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.|
|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.|
|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.|
|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.|
|These inputs set the bottom (minimum) current limit when AGC is active. CLIM1 is a four-state input.|
|This four-state input sets the bottom frequency limit (minimum step rate) for AGC to be active.|
|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.|
|This input controls the AGC detection threshold (torque detection sensitivity).|
|LOW||Decay mode selection pins; see Decay modes below.|
|LOW||Digital current control pins; see Current limiting below.|
|Current sense resistor connection pins. Optional external current-sensing resistors can be added to these pins; see Current limiting below.|
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.
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.
|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||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.
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.
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 and making the current limit relate to VREF as follows:
``text(current limit) = text(VREF) × 1.56 text(A)/text(V)`` (GAIN_SEL = L)
So, for example, if you have a stepper motor rated for 1 A you can set the current limit to 1 A by setting the reference voltage to about 0.64 V.
If the GAIN_SEL pin is high, the VREF gain (multiplier) is reduced by half, and the relationship between the current limit and VREF instead becomes:
``text(current limit) = text(VREF) × 0.78 text(A)/text(V)`` (GAIN_SEL = H)
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 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.
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:
|CLIM0||HIGH||Bottom current limit: 75%
(AGC will not reduce the motor current to less than 75% of the full amount)
|Frequency limit: 450 Hz
(stepping frequency on CLK pin must be at least 450 Hz for AGC to activate)
|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.
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.
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 of the TB67S128FTG Stepper Motor Driver Carrier.
This diagram is also available as a downloadable pdf: TB67S128FTG stepper motor driver carrier schematic (183k pdf)
No, this driver is not your only option. To avoid damaging your stepper motor, you want to avoid exceeding the rated current, which is 600 mA in this instance. All of our stepper motor drivers let you limit the maximum current, so as long as you set the limit below the rated current, you will be within spec for your motor, even if the voltage exceeds the rated voltage. (In other words, driving a 3.9 V motor with a DRV8825, and using a supply voltage higher than the DRV8825’s minimum of 8.2 V, will not damage the motor as long as the current limit is set appropriately.)
The voltage rating is just the voltage at which each coil draws the rated current, so the coils of your stepper motor will draw 600 mA at 3.9 V. By using a higher voltage along with active current limiting, the current is able to ramp up faster, which lets you achieve higher step rates than you could using the rated voltage.
However, if you still want to use a lower motor supply voltage (under 8 V) for other reasons, the DRV8834 or STSPIN220 are appropriate drivers to use.
Yes, you do! Setting the current limit on your stepper motor driver carrier before connecting your motor is essential to making sure that it runs properly. An appropriate current limit also ensures that your motor is not allowed to draw more current than it or your driver can handle, since that is likely to damage one or both of them.
Setting the current limit on our A4988, DRV8825, DRV8824, DRV8834, DRV8880, STSPINx20, and TB67SxFTG stepper motor driver carriers is done by adjusting the on-board potentiometer. We strongly recommend using a multimeter to measure the VREF voltage while setting the current limit so you can be sure you set it to an appropriate value (just turning the pot randomly until things seem to work is not a good approach). The following video has more details on setting the current limit:
The answer to this question depends on the type of stepper motor you have. When working with stepper motors, you will typically encounter two types: unipolar stepper motors and bipolar stepper motors. Unipolar motors have two windings per phase, allowing the magnetic field to be reversed without having to reverse the direction of current in a coil, which makes unipolar motors easier to control than bipolar stepper motors. The drawback is that only half of the phase is carrying current at any given time, which decreases the torque you can get out of the stepper motor. However, if you have the appropriate control circuitry, you can increase the stepper motor torque by using the unipolar stepper motor as a bipolar stepper motor (note: this is only possible with 6- or 8-lead unipolar stepper motors, not with 5-lead unipolar stepper motors). Unipolar stepper motors typically have five, six, or eight leads.
Bipolar steppers have a single coil per phase and require more complicated control circuitry (typically an H-bridge for each phase). The TB67S128FTG has the circuitry necessary to control a bipolar stepper motor. Bipolar stepper motors typically have four leads, two for each coil.
Two-phase bipolar stepper motor with four leads.
The above diagram shows a standard bipolar stepper motor. To control this with the TB67S128FTG, connect stepper leads A and C to board outputs OUT_A+ and OUT_A-, respectively, and stepper leads B and D to board outputs OUT_B+ and OUT_B-, respectively. Note that if you happen to swap which way the wires are connected for any coil, the stepper motor will turn in the opposite direction, and if you happen to pair up wires from different coils, the motor should be noticeably erratic when you try to step it, if it even moves at all. See the TB67S128FTG datasheet for more information.
If you have a six-lead unipolar stepper motor as shown in the diagram below:
Two-phase unipolar stepper motor with six leads.
you can connect it to the TB67S128FTG as a bipolar stepper motor by making the bipolar connections described in the section above and leaving stepper leads A’ and B’ disconnected. These leads are center taps to the two coils and are not used for bipolar operation.
If you have an eight-lead unipolar stepper motor as shown in the diagram below:
Two-phase unipolar stepper motor with eight leads.
you have several connection options. An eight-lead unipolar stepper motor has two coils per phase, and it gives you access to all of the coil leads (in a six-lead unipolar motor, lead A’ is internally connected to C’ and lead B’ is internally connected to D’). When operating this as a bipolar stepper, you have the option of using the two coils for each phase in parallel or in series. When using them in parallel, you decrease coil inductance, which can lead to increased performance if you have the ability to deliver more current. However, since the TB67S128FTG actively limits the output current per phase, you will only get half the phase current flowing through each of the two parallel coils. When using them in series, it’s like having a single coil per phase (like in four-lead bipolar steppers or six-lead unipolar steppers used as bipolar steppers). We recommend you use a series connection.
To connect the phase coils in parallel, connect stepper leads A and C’ to board output OUT_A+, stepper leads A’ and C to board output OUT_A-, stepper leads B and D’ to board output OUT_B+, and stepper leads B’ and D to board output OUT_B-.
To connect the phase coils in series, connect stepper lead A’ to C’ and stepper lead B’ to D’. Stepper leads A, C, B, and D should be connected to the stepper motor driver as normal for a bipolar stepper motor (see the bipolar stepper connections above).
Our wide selection of stepper motor drivers has grown once again, this time with the addition of a full breakout board for Toshiba’s TB67S128FTG....