Pololu 2973 Stepper Motor Driver Carrier TB67S249FTG
This product is a carrier board or breakout board for Toshiba’s TB67S2x9FTG family of stepper motor drivers; we therefore recommend careful reading of the corresponding driver’s datasheet before using this product. This stepper motor driver lets you control one bipolar stepper motor and is available in two different versions: the TB67S249FTG can deliver about 1.7 A per phase continuously (4.5 A peak), and the TB67S279FTG can deliver about 1.2 A per phase continuously (2 A peak). (See the Power Dissipation Considerations section below for more information.)
The two versions of this stepper driver carrier look very similar, so you should consider adding your own distinguishing marks or labels if you will be working simultaneously with multiple versions. A white box is provided on the bottom silkscreen of the board to make labeling easier. This product page applies to both versions of the TB67S2x9FTG carrier.
This version uses a TB67S249FTG driver and can deliver approximately 1.7 A per phase continuously without a heat sink or forced air flow (up to 4.5 A peak). It can be distinguished by the marking “S249FTG” on the driver IC.
For more information about this driver, please read the TB67S249FTG datasheet (533k pdf).
This product ships with all surface-mount components—including the TB67S2x9FTG driver IC—installed as shown in the product picture. However, soldering is required for assembly of the included through-hole parts: two 1×15-pin breakaway 0.1″ male headers and three 2-pin, 3.5 mm terminal blocks (for board power and motor outputs).
The 0.1″ male header 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 stepper motor wires. 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 TB67S2x9FTG stepper motor driver carrier.
The driver requires a motor supply voltage of 10 V to 47 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 TB67S2x9FTG’s internal regulator is made available on the VCC pin. This output can supply up to 5 mA to external loads.
Four, six, and eight-wire stepper motors can be driven by the TB67S2x9FTG if they are properly connected
TB67S2x9FTG Stepper Motor Driver Carrier, top view with labeled pinout.
|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 TB67S2x9FTG. 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 DMODE pins), not for powering external devices.|
|Voltage reference pins for setting the current limit. By default, these pins are connected to the potentiometer and to each other so that the current limit is the same on both channels, but you can cut the trace between them to set the current limit for each motor channel separately.|
|LOW||Step resolution selection pins. These pins are all pulled low by default, putting the driver into a low-power standby mode and disabling the outputs; at least one DMODE pin must be driven high to set the step resolution and and allow the driver to operate.|
|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).|
|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 VCC.|
|HIGH||Error outputs: these pins drive low to indicate that an error condition has occurred; otherwise, the board pulls them up to VCC. The specific error can be determined by the state of both error pins.|
|HIGH||These inputs determine 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).|
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 TB67S2x9FTG 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 (DMODE0, DMODE1, and DMODE2) enable selection from the seven step resolutions according to the table below. These three pins have internal 100 kΩ pull-down resistors, so the driver defaults to standby mode when these inputs are left disconnected; at least one DMODE pin must be driven high to select a step resolution and allow the driver to operate. 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.
|Low||Low||Low||Standby mode (outputs disabled)|
|Low||High||Low||Non-circular half step (“a”)|
|High||Low||Low||Circular half step (“b”)|
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.
In addition to the DMODE pins putting the driver in standby mode by default, the chip also has an ENABLE pin that is pulled low through an internal 100 kΩ pull-down resistor. Both of these default states prevent the driver from operating, so at least one DMODE pin and ENABLE 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 and non-circular half step modes, 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 TB67S2x9FTG 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 VCC (5 V) otherwise.
The TB67S2x9FTG 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 LO1 and LO2 means). Otherwise, these pins are pulled up to VCC 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 DMODE pins 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 TB67S2x9FTG 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 VREFA and VREFB pins, which are tied together by default. The current limit relates to VREF as follows:
|TB67S249FTG||current limit = VREF x 1.25 (A/V)|
|TB67S279FTG||current limit= VREF x 1.25 (A/V)|
So, the current limit in amps (A) is equal to the VREF voltage in volts (V) times the corresponding multiplier, and if you have a TB67S279FTG and 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.8 V.
If you want to configure different current limits for each stepper motor coil, you can cut the trace connecting the VREFA and VREFB pins and supply your own reference voltage to VREFB (e.g. with an external potentiometer). In this case, VREFA remains connected to the on-board potentiometer.
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.
Active Gain Control:
The TB67S2x9FTG 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 seven pins (AGC0, AGC1, 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 drivers’ datasheets and application note (1MB pdf) for details about what each pin does and what input states it accepts.
By default, AGC0 (AG0), AGC1 (AG1), and CLIM0 (CL0) are pulled up to VCC 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 (CL1), 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, but a lower-value resistance can be connected to increase the torque detection sensitivity, as discussed in the application note.
Power dissipation considerations
The driver ICs have maximum current ratings higher than the continuous currents we specify for these carrier boards, 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.
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 TB67S249FTG/TB67S279FTG Stepper Motor Driver Carrier.
This schematic is also available as a downloadable pdf (228k pdf).