TMC2226-SA [TRINAMIC]

POWER DRIVER FOR STEPPER MOTORS INTEGRATED CIRCUITS;
TMC2226-SA
型号: TMC2226-SA
厂家: TRINAMIC MOTION CONTROL GMBH & CO. KG.    TRINAMIC MOTION CONTROL GMBH & CO. KG.
描述:

POWER DRIVER FOR STEPPER MOTORS INTEGRATED CIRCUITS

驱动
文件: 总83页 (文件大小:1919K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
POWER DRIVER FOR STEPPER MOTORS  
INTEGRATED CIRCUITS  
TMC2226 Datasheet  
Step/Dir Drivers for Two-Phase Bipolar Stepper Motors up to 2.8A peak StealthChop™ for Quiet  
Movement UART Interface Option Sensorless Stall Detection StallGuard4.  
APPLICATIONS  
Compatible Design Upgrade  
3D Printers  
Printers, POS  
Office and home automation  
Textile, Sewing Machines  
CCTV, Security  
ATM, Cash recycler  
HVAC  
Battery Operated Equipment  
4
FEATURES AND BENEFITS  
DESCRIPTION  
The TMC2226 is an ultra-silent motor driver  
IC for two phase stepper motors. TRINAMICs  
sophisticated StealthChop2 chopper ensures  
noiseless operation, maximum efficiency  
and best motor torque. Its fast current  
regulation and optional combination with  
SpreadCycle allow highly dynamic motion  
while adding. StallGuard for sensorless  
homing. The integrated power MOSFETs  
handle motor currents up to 2A RMS with  
protection and diagnostic features for robust  
and reliable operation. A simple to use UART  
interface opens up tuning and control  
options. Store application tuning to OTP  
2-phase stepper motors up to 2.8A coil current (peak), 2A RMS  
STEP/DIR Interface with 8, 16, 32 or 64 microstep pin setting  
Smooth Running 256 microsteps by MicroPlyerinterpolation  
StealthChop2™ silent motor operation  
SpreadCycle™ highly dynamic motor control chopper  
StallGuard4load and stall detection for StealthChop  
CoolStepcurrent control for energy savings up to 75%  
Low RDSon, Low Heat-Up LS 170mΩ & HS 170mΩ (typ. at 25°C)  
Voltage Range 4.75… 29V DC  
Low Power Standby to fit standby energy regulations  
Internal Sense Resistor option (no sense resistors required)  
Passive Braking, Freewheeling, and automatic power down  
Single Wire UART & OTP for advanced configuration options  
Integrated Pulse Generator for standalone motion  
Full Protection & Diagnostics  
memory.  
Industries’  
most  
advanced  
STEP/DIR stepper motor driver family  
upgrades designs to noiseless and most  
precise operation for cost-effective and  
highly competitive solutions.  
Thermally optimized HTSSOP package for optical inspection  
BLOCK DIAGRAM  
 ꢀꢁꢂꢃꢄꢅꢆꢇꢈꢉꢆꢊꢋꢌꢌꢍꢎꢏꢆꢐꢏꢑꢎꢒꢓꢔ  
ꢀꢙꢗꢚꢚꢚꢛ  
 ꢏꢑꢇꢇꢕꢋꢑꢌꢒꢖ  
ꢗꢈꢈꢇ   
TRINAMIC Motion Control GmbH & Co. KG  
Hamburg, Germany  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
2
APPLICATION EXAMPLES: SIMPLE SOLUTIONS HIGHLY EFFECTIVE  
The TMC22xx family scores with power density, integrated power MOSFETs, smooth and quiet operation,  
and a congenial simplicity. The TMC2226 covers a wide spectrum of applications from battery systems  
to embedded applications with up to 2A motor current per coil. TRINAMICs unique chopper modes  
SpreadCycle and StealthChop2 optimize drive performance. StealthChop reduces motor noise to the  
point of silence at low velocities. Standby current reduction keeps costs for power dissipation and  
cooling down. Extensive support enables rapid design cycles and fast time-to-market with competitive  
products.  
STANDALONE REPLACEMENT FOR LEGACY STEPPER DRIVER  
In this example, configuration is hard  
wired via pins. Software based motion  
control generates STEP and DIR  
(direction) signals, INDEX and ERROR  
signals report back status information.  
0A+  
S/D  
N
S
0A-  
TMC22xx  
ERROR, INDEX  
0B+  
0B-  
UART INTERFACE FOR FULL DIAGNOSTICS AND CONTROL  
A CPU operates the driver via step and  
direction signals. It accesses diagnostic  
0A+  
S/D  
N
information  
and  
configures  
the  
High-Level  
Interface  
S
0A-  
CPU  
UART  
TMC22xx  
TMC2226 via the UART interface. The CPU  
manages motion control and the  
TMC2226 drives the motor and smoo-  
thens and optimizes drive performance.  
0B+  
0B-  
Sense Resistors may be omitted  
The TMC2226-EVAL is part of TRINAMICs  
universal evaluation board system  
which provides a convenient handling  
of the hardware as well as a user-  
friendly software tool for evaluation.  
The TMC2226 evaluation board system  
consists of three parts: STARTRAMPE  
(base board), ESELSBRÜCKE (connector  
board with several test points and  
stand-alone settings), and TMC2226-  
EVAL.  
ORDER CODES  
PN  
Size [mm2]  
Order code  
Description  
TMC2226-SA  
TMC2226-SA-T  
TMC2226-EVAL  
ESELSBRÜCKE  
00-0199  
StealthChop standalone driver; HTSSOP (RoHS compliant) 9.7 x 6.4  
00-0199-T -T denotes tape on reel packing of devices  
40-0204  
40-0098  
Evaluation board for TMC2226 stepper motor driver  
Connector board fitting to Landungsbrücke  
85 x 55  
61 x 38  
LANDUNGSBRÜCKE 40-0167  
Baseboard for TMC2226-EVAL & further evaluation boards 85 x 55  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
3
Table of Contents  
9.1  
ANALOG CURRENT SCALING VREF...............51  
1
PRINCIPLES OF OPERATION .........................4  
10 INTERNAL SENSE RESISTORS.....................53  
11 STALLGUARD4 LOAD MEASUREMENT.......55  
1.1  
KEY CONCEPTS................................................5  
CONTROL INTERFACES.....................................6  
MOVING AND CONTROLLING THE MOTOR........6  
STEALTHCHOP2 & SPREADCYCLE DRIVER.......6  
STALLGUARD4 MECHANICAL LOAD SENSING.  
.......................................................................7  
COOLSTEP LOAD ADAPTIVE CURRENT  
1.2  
1.3  
1.4  
1.5  
11.1 STALLGUARD4 VS. STALLGUARD2................55  
11.2 TUNING STALLGUARD4.................................56  
11.3 STALLGUARD4 UPDATE RATE .......................56  
11.4 DETECTING A MOTOR STALL.........................56  
11.5 LIMITS OF STALLGUARD4 OPERATION..........56  
1.6  
CONTROL......................................................................7  
12 COOLSTEP OPERATION.................................57  
1.7  
1.8  
1.9  
AUTOMATIC STANDSTILL POWER DOWN.........7  
INDEX OUTPUT................................................8  
PRECISE CLOCK GENERATOR AND CLK INPUT...8  
12.1 USER BENEFITS.............................................57  
12.2 SETTING UP FOR COOLSTEP..........................57  
12.3 TUNING COOLSTEP.......................................59  
2
3
PIN ASSIGNMENTS...........................................9  
13 STEP/DIR INTERFACE....................................60  
2.1  
2.2  
PACKAGE OUTLINE TMC2226........................9  
SIGNAL DESCRIPTIONS TMC2226..................9  
13.1 TIMING.........................................................60  
13.2 CHANGING RESOLUTION...............................61  
13.3 MICROPLYER STEP INTERPOLATOR AND STAND  
STILL DETECTION.......................................................62  
13.4 INDEX OUTPUT .............................................63  
SAMPLE CIRCUITS..........................................11  
3.1  
STANDARD APPLICATION CIRCUIT ................11  
INTERNAL RDSON SENSING..........................11  
5V ONLY SUPPLY..........................................12  
CONFIGURATION PINS ..................................13  
HIGH MOTOR CURRENT.................................13  
LOW POWER STANDBY.................................14  
DRIVER PROTECTION AND EME CIRCUITRY...14  
3.2  
3.3  
3.4  
3.5  
3.6  
3.7  
14 INTERNAL STEP PULSE GENERATOR.........64  
15 DRIVER DIAGNOSTIC FLAGS......................65  
15.1 TEMPERATURE MEASUREMENT.......................65  
15.2 SHORT PROTECTION......................................65  
15.3 OPEN LOAD DIAGNOSTICS ...........................66  
15.4 DIAGNOSTIC OUTPUT ...................................66  
4
5
UART SINGLE WIRE INTERFACE ................14  
4.1  
DATAGRAM STRUCTURE.................................15  
CRC CALCULATION .......................................17  
UART SIGNALS ............................................17  
ADDRESSING MULTIPLE SLAVES....................18  
4.2  
4.3  
4.4  
16 QUICK CONFIGURATION GUIDE................67  
17 EXTERNAL RESET.............................................71  
18 CLOCK OSCILLATOR AND INPUT...............71  
19 ABSOLUTE MAXIMUM RATINGS.................72  
20 ELECTRICAL CHARACTERISTICS.................72  
REGISTER MAP.................................................19  
5.1  
GENERAL REGISTERS.....................................20  
VELOCITY DEPENDENT CONTROL...................25  
STALLGUARD CONTROL.................................26  
SEQUENCER REGISTERS .................................28  
CHOPPER CONTROL REGISTERS .....................29  
5.2  
5.3  
5.4  
5.5  
20.1 OPERATIONAL RANGE...................................72  
20.2 DC AND TIMING CHARACTERISTICS..............73  
20.3 THERMAL CHARACTERISTICS..........................77  
6
STEALTHCHOP..............................................35  
21 LAYOUT CONSIDERATIONS.........................78  
6.1  
AUTOMATIC TUNING.....................................35  
STEALTHCHOP OPTIONS................................37  
STEALTHCHOP CURRENT REGULATOR.............37  
VELOCITY BASED SCALING............................39  
COMBINE STEALTHCHOP AND SPREADCYCLE.41  
FLAGS IN STEALTHCHOP...............................42  
FREEWHEELING AND PASSIVE BRAKING........43  
21.1 EXPOSED DIE PAD........................................78  
21.2 WIRING GND..............................................78  
21.3 SUPPLY FILTERING........................................78  
21.4 LAYOUT EXAMPLE TMC2226........................79  
6.2  
6.3  
6.4  
6.5  
6.6  
6.7  
22 PACKAGE MECHANICAL DATA....................80  
22.1 DIMENSIONAL DRAWINGS HTSSOP28........80  
22.2 PACKAGE CODES...........................................81  
7
SPREADCYCLE CHOPPER...............................45  
7.1  
SPREADCYCLE SETTINGS ...............................46  
SELECTING SENSE RESISTORS....................49  
MOTOR CURRENT CONTROL ........................50  
23 TABLE OF FIGURES.........................................82  
24 REVISION HISTORY.......................................83  
25 REFERENCES......................................................83  
8
9
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
4
1 Principles of Operation  
The TMC22xx family of stepper drivers is intended as a drop-in upgrade for existing low-cost stepper  
driver applications. Their silent drive technology StealthChop enables non-bugging motion control for  
home and office applications. A highly efficient power stage enables high current from a tiny package.  
The TMC2226 requires just a few control pins on its tiny package. It allows selection of the most  
important setting: the desired microstep resolution. A choice of 8, 16, 32 or 64 microsteps, or from  
fullstep up to 1/256 step adapts the driver to the capabilities of the motion controller.  
Even at low microstepping rate, the TMC2226 offers a number of unique enhancements over comparable  
products: TRINAMICs sophisticated StealthChop2 chopper plus the microstep enhancement MicroPlyer  
ensure noiseless operation, maximum efficiency and best motor torque. Its fast current regulation and  
optional combination with SpreadCycle allow for highly dynamic motion. Protection and diagnostic  
features support robust and reliable operation. A simple-to-use 8 bit UART interface opens up more  
tuning and control options. Application specific tuning can be stored to on-chip OTP memory. Industries’  
most advanced step & direction stepper motor driver family upgrades designs to noiseless and most  
precise operation for cost-effective and highly competitive solutions.  
Place near IC with  
short path to die pad  
2.2µ  
6.3V  
22n  
50V  
100n  
16V  
+VM  
VS  
TMC2226  
STEP  
DIR  
100n  
100n  
100µF  
Step and Direction  
motion control  
5V Voltage  
regulator  
Analog Scaling  
Step&Dir input  
charge pump  
Full Bridge A  
VREF  
IREF  
Low ESR type  
OA1  
OA2  
Step Pulse  
Generator  
Stand Still  
Current  
Reduction  
N
stepper  
motor  
S
Configuration  
Memory (OTP)  
MS1  
MS2  
RSA  
Configuration  
(GND or VCC_IO)  
BRA  
stealthChop2  
Driver  
Configuration  
Interface  
SPREAD  
PDN/UART  
IREF  
256 Microstep  
Sequencer  
Integrated  
Rsense  
Connect directly  
to GND plane  
B. Dwersteg, ©  
TRINAMIC 2016  
optional UART interface  
Use low inductivity SMD  
type, e.g. 1206, 0.5W for  
RSA and RSB  
UART interface  
+ Register Block  
spreadCycle  
DIAG  
Programmable  
Diagnostic  
Outputs  
Driver error  
Index pulse  
OB1  
OB2  
coolStep  
INDEX  
Full Bridge B  
stallGuard4  
Trimmed  
CLK oscillator/  
selector  
opt. ext. clock  
10-16MHz  
CLK_IN  
RSB  
BRB  
3.3V or 5V  
I/O voltage  
VCC_IO  
Connect directly  
to GND plane  
100n  
opt. low power standby  
opt. driver enable  
Figure 1.1 TMC2226 basic application block diagram  
THREE MODES OF OPERATION:  
OPTION 1: Standalone STEP/DIR Driver (Legacy Mode)  
A CPU (µC) generates step & direction signals synchronized to additional motors and other components  
within the system. The TMC2226 operates the motor as commanded by the configuration pins and  
STEP/DIR signals. Motor run-current either is fixed, or set by the CPU using the analog input VREF. The  
pin PDN_UART selects automatic standstill current reduction. Feedback from the driver to the CPU is  
granted by the INDEX and DIAG output signals. Enable or disable the motor using the ENN pin.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
5
OPTION 2: Standalone STEP/DIR Driver with OTP pre-configuration  
Additional options enabled by pre-programming OTP memory (label UART & OTP):  
UART  
OTP  
+
+
+
Tuning of the chopper to the application for application tailored performance  
Cost reduction by switching the driver to internal sense resistor mode  
Adapting the automatic power down level and timing for best application efficiency  
0A+  
S/D  
N
High-Level  
Interface  
S
0A-  
CPU  
ERROR, INDEX TMC22xx  
0B+  
0B-  
TXD only or bit  
bang UART  
Other drivers  
External pre-  
programming  
Figure 1.2 Stand-alone driver with pre-configuration  
To enable the additional options, either one-time program the driver’s OTP memory, or store  
configuration in the CPU and transfer it to the on-chip registers following each power-up. Operation  
uses the same signals as Option 1. Programming does not need to be done within the application - it  
can be executed during testing of the PCB! Alternatively, use bit-banging by CPU firmware to configure  
the driver. Multiple drivers can be programmed at the same time using a single TXD line.  
OPTION 3: STEP/DIR Driver with Full Diagnostics and Control  
Similar to Option 2, but pin PDN_UART is connected to the CPU UART interface.  
UART  
Additional options (label UART):  
+
+
+
+
+
Detailed diagnostics and thermal management  
Passive braking and freewheeling for flexible, lowest power stop modes  
More options for microstep resolution setting (fullstep to 256 microstep)  
Software controlled motor current setting and more chopper options  
Use StallGuard for sensorless homing and CoolStep for adaptive motor current and cool motor  
This mode allows replacing all control lines like ENN, DIAG, INDEX, MS1, MS2, and analog current setting  
VREF by a single interface line. This way, only three signals are required for full control: STEP, DIR and  
PDN_UART. Even motion without external STEP pulses is provided by an internal programmable step  
pulse generator: Just set the desired motor velocity. However, no ramping is provided by the TMC2226.  
1.1 Key Concepts  
The TMC2226 implements advanced features which are exclusive to TRINAMIC products. These features  
contribute toward greater precision, greater energy efficiency, higher reliability, smoother motion, and  
cooler operation in many stepper motor applications.  
StealthChop2No-noise, high-precision chopper algorithm for inaudible motion and inaudible  
standstill of the motor. Allows faster motor acceleration and deceleration than  
StealthChop™ and extends StealthChop to low stand still motor currents.  
SpreadCycleHigh-precision cycle-by-cycle current control for highest dynamic movements.  
MicroPlyer™  
Microstep interpolator for obtaining full 256 microstep smoothness with lower  
resolution step inputs starting from fullstep  
StallGuard4™  
Sensorless homing safes end switches and warns in case of motor overload  
CoolStep™  
Uses StallGuard measurement in order to adapt the motor current for best efficiency  
and lowest heat-up of motor and driver  
In addition to these performance enhancements, TRINAMIC motor drivers offer safeguards to detect and  
protect against shorted outputs, output open-circuit, overtemperature, and undervoltage conditions for  
enhancing safety and recovery from equipment malfunctions.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
6
1.2 Control Interfaces  
The TMC2226 supports both, discrete control lines for basic mode selection and a UART based single  
wire interface with CRC checking. The UART interface automatically becomes enabled when correct UART  
data is sent. When using UART, the pin selection may be disabled by control bits.  
UART  
1.2.1 UART Interface  
The single wire interface allows unidirectional operation (for parameter setting only), or bi-directional  
operation for full control and diagnostics. It can be driven by any standard microcontroller UART or  
even by bit banging in software. Baud rates from 9600 Baud to 500k Baud or even higher (when using  
an external clock) may be used. No baud rate configuration is required, as the TMC2226 automatically  
adapts to the masters’ baud rate. The frame format is identical to the intelligent TRINAMIC controller &  
driver ICs TMC5130, TMC516x and TMC5072. A CRC checksum allows data transmission over longer  
distance. For fixed initialization sequences, store the data including CRC into the µC, thus consuming  
only a few 100 bytes of code for a full initialization. CRC may be ignored during read access, if not  
desired. This makes CRC use an optional feature! The IC supports four address settings to access up to  
four ICs on a single bus. Even more drivers can be programmed in parallel by tying together all interface  
pins, in case no read access is required. An optional addressing can be provided by analog multiplexers,  
like 74HC4066.  
From a software point of view the TMC2226 is a peripheral with a number of control and status registers.  
Most of them can either be written only or are read only. Some of the registers allow both, read and  
write access. In case read-modify-write access is desired for a write only register, realize a shadow  
register in master software.  
1.3 Moving and Controlling the Motor  
1.3.1 STEP/DIR Interface  
The motor is controlled by a step and direction input. Active edges on the STEP input can be rising  
edges or both rising and falling edges as controlled by a special mode bit (DEDGE). Using both edges  
cuts the toggle rate of the STEP signal in half, which is useful for communication over slow interfaces  
such as optically isolated interfaces. The state sampled from the DIR input upon an active STEP edge  
determines whether to step forward or back. Each step can be a fullstep or a microstep, in which there  
are 2, 4, 8, 16, 32, 64, 128, or 256 microsteps per fullstep. A step impulse with a low state on DIR  
increases the microstep counter. With a high state, it decreases the counter by an amount controlled  
by the microstep resolution. An internal table translates the counter value into the sine and cosine  
values which control the motor current for microstepping.  
UART  
1.3.2 Internal Step Pulse Generator  
Some applications do not require a precisely co-ordinate motion the motor just is required to move  
for a certain time and at a certain velocity. The TMC2226 comes with an internal pulse generator for  
these applications: Just provide the velocity via UART interface to move the motor. The velocity sign  
automatically controls the direction of the motion. However, the pulse generator does not integrate a  
ramping function. Motion at higher velocities will require ramping up and ramping down the velocity  
value via software.  
STEP/DIR mode and internal pulse generator mode can be mixed in an application!  
1.4 StealthChop2 & SpreadCycle Driver  
StealthChop is a voltage-chopper based principle. It especially guarantees that the motor is absolutely  
quiet in standstill and in slow motion, except for noise generated by ball bearings. Unlike other voltage  
mode choppers, StealthChop2 does not require any configuration. It automatically learns the best  
settings during the first motion after power up and further optimizes the settings in subsequent  
motions. An initial homing sequence is sufficient for learning. Optionally, initial learning parameters  
can be stored to OTP. StealthChop2 allows high motor dynamics, by reacting at once to a change of  
motor velocity.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
7
For highest velocity applications, SpreadCycle is an option to StealthChop2. It can be enabled via input  
pin or via UART and OTP. StealthChop2 and SpreadCycle may even be used in a combined configuration  
for the best of both worlds: StealthChop2 for no-noise stand still, silent and smooth performance,  
SpreadCycle at higher velocity for high dynamics and highest peak velocity at low vibration.  
SpreadCycle is an advanced cycle-by-cycle chopper mode. It offers smooth operation and good  
resonance dampening over a wide range of speed and load. The SpreadCycle chopper scheme  
automatically integrates and tunes fast decay cycles to guarantee smooth zero crossing performance.  
Benefits of using StealthChop2:  
-
-
-
-
Significantly improved microstepping with low cost motors  
Motor runs smooth and quiet  
Absolutely no standby noise  
Reduced mechanical resonance yields improved torque  
1.5 StallGuard4 Mechanical Load Sensing  
StallGuard4 provides an accurate measurement of the load on the motor. It can be used for stall  
detection as well as other uses at loads below those which stall the motor, such as CoolStep load-  
adaptive current reduction. This gives more information on the drive allowing functions like sensorless  
homing and diagnostics of the drive mechanics.  
1.6 CoolStep Load Adaptive Current Control  
coolStep drives the motor at the optimum current. It uses the stallGuard4 load measurement information  
to adjust the motor current to the minimum amount required in the actual load situation. This saves  
energy and keeps the components cool.  
Benefits are:  
-
-
-
-
-
Energy efficiency  
power consumption decreased up to 75%  
improved mechanical precision  
improved reliability  
less torque reserve required  cheaper motor does the job  
Due to less energy exciting motor resonances  
Motor generates less heat  
Less or no cooling  
Use of smaller motor  
Less motor noise  
Figure 1.3 shows the efficiency gain of a 42mm stepper motor when using coolStep compared to  
standard operation with 50% of torque reserve. coolStep is enabled above 60RPM in the example.  
0,9  
Efficiency with coolStep  
0,8  
0,7  
0,6  
0,5  
0,4  
0,3  
0,2  
0,1  
0
Efficiency with 50% torque reserve  
Efficiency  
0
50  
100  
150  
200  
250  
300  
350  
Velocity [RPM]  
Figure 1.3 Energy efficiency with coolStep (example)  
1.7 Automatic Standstill Power Down  
An automatic current reduction drastically reduces application power dissipation and cooling  
requirements. Per default, the stand still current reduction is enabled by pulling PDN_UART input to  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
8
GND. It reduces standstill power dissipation to less than 33% by going to slightly more than half of the  
run current.  
Modify stand still current, delay time and decay via UART, or pre-programmed via internal OTP. Automatic  
freewheeling and passive motor braking are provided as an option for stand still. Passive braking  
reduces motor standstill power consumption to zero, while still providing effective dampening and  
braking!  
STEP  
CURRENT  
IRUN  
IHOLD  
t
IHOLDDELAY  
power down  
ramp time  
TPOWERDOWN  
power down  
delay time  
RMS motor current trace with pin PDN=0  
Figure 1.4 Automatic Motor Current Power Down  
1.8 Index Output  
The index output gives one pulse per electrical rotation, i.e. one pulse per each four fullsteps. It shows  
the internal sequencer microstep 0 position (MSTEP near 0). This is the power on position. In  
combination with a mechanical home switch, a more precise homing is enabled.  
1.9 Precise clock generator and CLK input  
The TMC2226 provides a factory trimmed internal clock generator for precise chopper frequency and  
performance. However, an optional external clock input is available for cases, where quartz precision is  
desired, or where a lower or higher frequency is required. For safety, the clock input features timeout  
detection, and switches back to internal clock upon fail of the external source.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
9
2 Pin Assignments  
The TMC2226 comes in a thermally optimized HTSSOP-package.  
2.1 Package Outline TMC2226  
OA1  
BRA  
OB1  
BRB  
VS  
VS  
OA2  
OB2  
ENN  
GND  
STDBY  
DIR  
CPO  
GND  
TMC2226  
HTSSOP28  
CPI  
VCP  
SPREAD  
5VOUT  
MS1_AD0  
-
VREF  
STEP  
VCC_IO  
PDN_UART  
CLK  
© B. Dwersteg,  
TRINAMIC  
Pad=GND  
INDEX  
DIAG  
MS2_AD1  
Figure 2.1 TMC2226 Pinning Top View type: HTSSOP 28, 9.7x6.4mm² over pins, 0.65mm pitch  
2.2 Signal Descriptions TMC2226  
Pin  
Number Type  
Function  
OB1  
1
Motor coil B output 1  
Sense resistor connection for coil B. Place sense resistor to GND  
near pin. Tie to GND when using internal sense resistor.  
Motor supply voltage. Provide filtering capacity near pin with  
shortest possible loop to GND pad.  
BRB  
2
VS  
3, 26  
4
OB2  
ENN  
Motor coil B output 2  
Enable not input. The power stage becomes switched off (all motor  
outputs floating) when this pin becomes driven to a high level.  
GND. Connect to GND plane near pin.  
5
DI  
GND  
CPO  
CPI  
6, 22  
7
8
9
Charge pump capacitor output.  
Charge pump capacitor input. Tie to CPO using 22nF 50V capacitor.  
Charge pump voltage. Tie to VS using 100nF capacitor.  
Chopper mode selection: Low=StealthChop, High=SpreadCycle  
(may be left unconnected)  
VCP  
SPREAD  
10  
DI (pd)  
Output of internal 5V regulator. Attach 2.2µF to 4.7µF ceramic  
capacitor to GND near to pin for best performance. Provide the  
shortest possible loop to the GND pad.  
5VOUT  
11  
MS1_AD0  
MS2_AD1  
12  
14  
DI (pd) Microstep resolution configuration (internal pull-down resistors)  
MS2, MS1: 00: 1/8, 01: 1/32, 10: 1/64 11: 1/16  
DI (pd)  
For UART based configuration selection of UART Address 0…3  
Diagnostic and StallGuard output. Hi level upon stall detection or  
driver error. Reset error condition by ENN=high.  
Configurable index output. Provides index pulse.  
CLK input. Tie to GND using short wire for internal clock or supply  
external clock.  
DIAG  
INDEX  
CLK  
15  
16  
17  
DO  
DO  
DI  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
10  
Pin  
Number Type  
Function  
Power down not control input (low = automatic standstill current  
reduction).  
Optional UART Input/Output. Power down function can be disabled  
in UART mode.  
PDN_UART 18  
DIO  
VCC_IO  
STEP  
19  
20  
3.3V to 5V IO supply voltage for all digital pins.  
STEP input  
Analog reference voltage for current scaling or reference current for  
use of internal sense resistors (optional mode)  
DI  
AI  
VREF  
DIR  
21  
23  
DI (pd) DIR input (internal pull-down resistor)  
STANDBY input. Pull up to disable driver internal supply regulator.  
This will bring the driver into a low power dissipation state.  
100kOhm pulldown. (may be left unconnected)  
STDBY  
24  
DI (pd)  
Hint: Also shut down VREF voltage and ENN to 0V during standby.  
OA2  
BRA  
25  
27  
Motor coil A output 2  
Sense resistor connection for coil A. Place sense resistor to GND  
near pin. Tie to GND when using internal sense resistor.  
Motor coil A output 1  
OA1  
-
28  
13  
unused May be connected to GND for better PCB routing  
Connect the exposed die pad to a GND plane. Provide as many as  
possible vias for heat transfer to GND plane. Serves as GND pin for  
power drivers and analogue circuitry.  
Exposed  
die pad  
-
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
11  
3 Sample Circuits  
The sample circuits show the connection of external components in different operation and supply  
modes. The connection of the bus interface and further digital signals is left out for clarity.  
3.1 Standard Application Circuit  
Place near IC with  
short path to die pad  
2.2µ  
6.3V  
22n  
50V  
100n  
16V  
+VM  
VS  
TMC2226  
STEP  
DIR  
100n  
100n  
100µF  
Step and Direction  
motion control  
5V Voltage  
regulator  
Analog Scaling  
Step&Dir input  
charge pump  
Full Bridge A  
VREF  
IREF  
Low ESR type  
OA1  
OA2  
Step Pulse  
Generator  
Stand Still  
Current  
Reduction  
N
stepper  
motor  
S
Configuration  
Memory (OTP)  
MS1  
MS2  
RSA  
Configuration  
(GND or VCC_IO)  
BRA  
stealthChop2  
Driver  
Configuration  
Interface  
SPREAD  
PDN/UART  
IREF  
256 Microstep  
Sequencer  
Integrated  
Rsense  
Connect directly  
to GND plane  
B. Dwersteg, ©  
TRINAMIC 2016  
optional UART interface  
Use low inductivity SMD  
type, e.g. 1206, 0.5W for  
RSA and RSB  
UART interface  
+ Register Block  
spreadCycle  
DIAG  
Programmable  
Diagnostic  
Outputs  
Driver error  
Index pulse  
OB1  
OB2  
coolStep  
INDEX  
Full Bridge B  
stallGuard4  
Trimmed  
CLK oscillator/  
selector  
opt. ext. clock  
10-16MHz  
CLK_IN  
RSB  
BRB  
3.3V or 5V  
I/O voltage  
VCC_IO  
Connect directly  
to GND plane  
100n  
opt. low power standby  
opt. driver enable  
Figure 3.1 Standard application circuit  
The standard application circuit uses a minimum set of additional components. Two sense resistors set  
the motor coil current. See chapter 8 to choose the right sense resistors. Use low ESR capacitors for  
filtering the power supply. The capacitors need to cope with the current ripple cause by chopper  
operation. A minimum capacity of 100µF near the driver is recommended for best performance. Current  
ripple in the supply capacitors also depends on the power supply internal resistance and cable length.  
VCC_IO can be supplied from 5VOUT, or from an external source, e.g. a 3.3V regulator.  
Basic layout hints  
Place sense resistors and all filter capacitors as close as possible to the related IC pins. Use a solid  
common GND for all GND connections, also for sense resistor GND. Connect 5VOUT filtering capacitor  
directly to 5VOUT and the die pad. See layout hints for more details. Low ESR electrolytic capacitors are  
recommended for VS filtering.  
3.2 Internal RDSon Sensing  
For cost critical or space limited applications, sense resistors can be omitted. For internal current sensing,  
a reference current set by a tiny external resistor programs the output current. For calculation of the  
reference resistor, refer chapter 9.1.  
Attention  
Be sure to switch the IC to RDSon mode, before enabling drivers: Set otp_internalRsense = 1.  
www.trinamic.com  
 
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
12  
Place near IC with  
short path to die pad  
RREF  
2.2µ  
6.3V  
22n  
50V  
100n  
16V  
+VM  
VS  
TMC2226  
STEP  
DIR  
100n  
100n  
100µF  
Step and Direction  
motion control  
5V Voltage  
regulator  
Analog Scaling  
Step&Dir input  
charge pump  
Full Bridge A  
VREF  
IREF  
Low ESR type  
OA1  
OA2  
Step Pulse  
Generator  
Stand Still  
Current  
Reduction  
N
stepper  
motor  
S
Configuration  
Memory (OTP)  
MS1  
MS2  
Configuration  
(GND/open or VCC_IO)  
BRA  
Connect directly  
to GND plane  
stealthChop2  
Driver  
Configuration  
Interface  
SPREAD  
PDN/UART  
IREF  
256 Microstep  
Sequencer  
Integrated  
Rsense  
B. Dwersteg, ©  
TRINAMIC 2016  
Attention:  
optional UART interface  
Start with ENN=high!  
Set GCONF.1 or OTP0.6  
prior to enabling the driver!  
UART interface  
+ Register Block  
spreadCycle  
DIAG  
Programmable  
Diagnostic  
Outputs  
Driver error  
Index pulse  
OB1  
OB2  
coolStep  
INDEX  
Full Bridge B  
stallGuard4  
Trimmed  
CLK oscillator/  
selector  
opt. ext. clock  
10-16MHz  
CLK_IN  
BRB  
Connect directly  
to GND plane  
3.3V or 5V  
I/O voltage  
VCC_IO  
100n  
opt. low power standby  
opt. driver enable  
Figure 3.2 Application circuit using RDSon based sensing  
3.3 5V Only Supply  
Place near IC with  
short path to die pad  
10R  
Optional –ꢆbridges the internal 5V  
reference –ꢆleave away if standby is  
10µ  
6.3V  
22n  
50V  
100n  
16V  
desired  
4.7-5.4V  
VS  
TMC2226  
STEP  
DIR  
100n  
100n  
100µF  
Step and Direction  
motion control  
5V Voltage  
regulator  
Analog Scaling  
Step&Dir input  
charge pump  
Full Bridge A  
VREF  
IREF  
Low ESR type  
OA1  
OA2  
Step Pulse  
Generator  
Stand Still  
Current  
Reduction  
N
stepper  
motor  
S
Configuration  
Memory (OTP)  
MS1  
MS2  
RSA  
Configuration  
(GND/open or VCC_IO)  
BRA  
stealthChop2  
Driver  
Configuration  
Interface  
SPREAD  
PDN/UART  
IREF  
256 Microstep  
Sequencer  
Integrated  
Rsense  
Connect directly  
to GND plane  
B. Dwersteg, ©  
TRINAMIC 2016  
optional UART interface  
Use low inductivity SMD  
type, e.g. 1206, 0.5W for  
RSA and RSB  
UART interface  
+ Register Block  
spreadCycle  
DIAG  
Programmable  
Diagnostic  
Outputs  
Driver error  
Index pulse  
OB1  
OB2  
coolStep  
INDEX  
Full Bridge B  
stallGuard4  
Trimmed  
CLK oscillator/  
selector  
opt. ext. clock  
10-16MHz  
CLK_IN  
RSB  
BRB  
3.3V or 5V  
I/O voltage  
VCC_IO  
Connect directly  
to GND plane  
100n  
opt. low power standby  
opt. driver enable  
Figure 3.3 5V only operation  
While the standard application circuit is limited to roughly 5.2 V lower supply voltage, a 5 V only  
application lets the IC run from a 5 V +/-5% supply. In this application, linear regulator drop must be  
www.trinamic.com  
 
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
13  
minimized. Therefore, the internal 5V regulator is filtered with a higher capacitance. An optional resistor  
bridges the internal 5V regulator by connecting 5VOUT to the external power supply. This RC filter keeps  
chopper ripple away from 5VOUT. With this resistor, the external supply is the reference for the absolute  
motor current and must not exceed 5.5V. Standby function will not work in this application, because  
the 5V regulator is bridged.  
3.4 Configuration Pins  
The TMC2226 provides four configuration pins. These pins allow quick configuration for standalone  
operation. Several additional options can be set by OTP programming. In UART mode, the configuration  
pins can be disabled in order to set a different configuration via registers.  
PDN_UART: CONFIGURATION OF STANDSTILL POWER DOWN  
PDN_UART  
GND  
VCC_IO  
Current Setting  
Enable automatic power down in standstill periods  
Disable  
UART interface  
When using the UART interface, the configuration pin should be disabled via  
GCONF.pdn_disable = 1. Program IHOLD as desired for standstill periods.  
MS1/MS2: CONFIGURATION OF MICROSTEP RESOLUTION FOR STEP INPUT  
MS2  
GND  
GND  
MS1  
GND  
Microstep Setting  
8 microsteps  
VCC_IO 32 microsteps (different to TMC2208!)  
64 microsteps (different to TMC2208!)  
VCC_IO GND  
VCC_IO VCC_IO 16 microsteps  
SPREAD: SELECTION OF CHOPPER MODE  
SPREAD  
Chopper Setting  
GND or  
StealthChop is selected. Automatic switching to SpreadCycle in dependence of the  
step frequency can be programmed via OTP.  
Pin open / not  
available  
VCC_IO  
SpreadCycle operation.  
3.5 High Motor Current  
When operating at a high motor current, the driver power dissipation due to MOSFET switch on-  
resistance significantly heats up the driver. This power dissipation will significantly heat up the PCB  
cooling infrastructure, if operated at an increased duty cycle. This in turn leads to a further increase of  
driver temperature. An increase of temperature by about 100°C increases MOSFET resistance by roughly  
50%. This is a typical behavior of MOSFET switches. Therefore, under high duty cycle, high load  
conditions, thermal characteristics have to be carefully taken into account, especially when increased  
environment temperatures are to be supported. Refer the thermal characteristics and the layout hints  
for more information. As a thumb rule, thermal properties of the PCB design become critical for the  
HTSSOP package at or above 1.6A RMS motor current for increased periods of time. Keep in mind that  
resistive power dissipation rises with the square of the motor current. On the other hand, this means  
that a small reduction of motor current significantly saves heat dissipation and energy.  
Pay special attention to good thermal properties of your PCB layout, when going for 1.4A RMS current  
or more.  
An effect which might be perceived at medium motor velocities and motor sine wave peak currents  
above roughly 2A peak is a slight sine distortion of the current wave when using SpreadCycle. It results  
from an increasing negative impact of parasitic internal diode conduction, which in turn negatively  
influences the duration of the fast decay cycle of the SpreadCycle chopper. This is, because the current  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
14  
measurement does not see the full coil current during this phase of the sine wave, because an increasing  
part of the current flows directly from the power MOSFETs’ drain to GND and does not flow through  
the sense resistor. This effect with most motors does not negatively influence the smoothness of  
operation, as it does not impact the critical current zero transition. The effect does not occur with  
StealthChop.  
3.6 Low Power Standby  
Battery powered applications, and mains powered applications conforming to standby energy saving  
rules, often require a standby operation, where the power-supply remains on, but current draw goes  
down to a low value. The TMC2226 supports standby operation of roughly 2mW (at 12V supply), or  
<1mW at 5V supply using a dedicated pin STANDYBY. Pull up STANDBY to VCC_IO to go to low power  
standby. VCC_IO may be dropped down to 1.5V during standby. A high level on STANDBY will disable  
the internal 5V regulator and at the same time switches off all internal units. Prior to going to STANDBY,  
stop the motor, and allow it to enter standstill current, or switch off the motor completely. When in  
STANDBY, inputs ENN and VREF have to be driven to a low level. VCC_IO shall remain active in standby  
mode. All driver registers are reset to their power-up defaults after leaving standby mode.  
3.7 Driver Protection and EME Circuitry  
Some applications have to cope with ESD events caused by motor operation or external influence.  
Despite ESD circuitry within the driver chips, ESD events occurring during operation can cause a reset  
or even a destruction of the motor driver, depending on their energy. Especially plastic housings and  
belt drive systems tend to cause ESD events of several kV. It is best practice to avoid ESD events by  
attaching all conductive parts, especially the motors themselves to PCB ground, or to apply electrically  
conductive plastic parts. In addition, the driver can be protected up to a certain degree against ESD  
events or live plugging / pulling the motor, which also causes high voltages and high currents into the  
motor connector terminals. A simple scheme uses capacitors at the driver outputs to reduce the dV/dt  
caused by ESD events. Larger capacitors will bring more benefit concerning ESD suppression, but cause  
additional current flow in each chopper cycle, and thus increase driver power dissipation, especially at  
high supply voltages. The values shown are example values they may be varied between 100pF and  
1nF. The capacitors also dampen high frequency noise injected from digital parts of the application PCB  
circuitry and thus reduce electromagnetic emission. A more elaborate scheme uses LC filters to de-  
couple the driver outputs from the motor connector. Varistors in between of the coil terminals eliminate  
coil overvoltage caused by live plugging. Optionally protect all outputs by a varistor to GND against ESD  
voltage.  
470pF  
100V  
50Ohm  
100MHz  
@
V1A  
V1B  
OA1  
OA2  
OA1  
OA2  
N
N
V1  
Full Bridge  
A
stepper  
motor  
Full Bridge  
A
stepper  
motor  
S
S
50Ohm  
100MHz  
@
470pF  
100V  
470pF  
100V  
470pF  
100V  
BRA  
100nF  
16V  
Driver  
Driver  
RSA  
470pF  
100V  
50Ohm  
100MHz  
@
V2A  
V2B  
OB1  
OB2  
OB1  
OB2  
V2  
Full Bridge  
B
Full Bridge B  
50Ohm  
100MHz  
@
Varistors V1 and V2 protect  
against inductive motor coil  
overvoltage.  
470pF  
100V  
470pF  
100V  
470pF  
100V  
BRB  
Fit varistors to supply voltage  
rating. SMD inductivities  
conduct full motor coil  
current.  
V1A, V1B, V2A, V2B:  
Optional position for varistors  
in case of heavy ESD events.  
100nF  
16V  
RSB  
Figure 3.4 Simple ESD enhancement and more elaborate motor output protection  
UART  
4 UART Single Wire Interface  
The UART single wire interface allows control of the TMC2226 with any microcontroller UART. It shares  
transmit and receive line like an RS485 based interface. Data transmission is secured using a cyclic  
redundancy check, so that increased interface distances (e.g. over cables between two PCBs) can be  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
15  
bridged without danger of wrong or missed commands even in the event of electro-magnetic  
disturbance. The automatic baud rate detection makes this interface easy to use.  
4.1 Datagram Structure  
4.1.1 Write Access  
UART WRITE ACCESS DATAGRAM STRUCTURE  
each byte is LSB…MSB, highest byte transmitted first  
0 … 63  
8 bit slave  
address  
8…15  
RW + 7 bit  
register addr.  
16…23  
sync + reserved  
32 bit data  
CRC  
0…7  
24…55  
data bytes 3, 2,  
1, 0 (high to low  
byte)  
56…63  
Reserved (don’t cares  
but included in CRC)  
register  
1
1
0
1
0
SLAVEADDR=0…3  
CRC  
address  
A sync nibble precedes each transmission to and from the TMC2226 and is embedded into the first  
transmitted byte, followed by an addressing byte (0 to 3 for TMC2226, depending on address setting).  
Each transmission allows a synchronization of the internal baud rate divider to the master clock. The  
actual baud rate is adapted and variations of the internal clock frequency are compensated. Thus, the  
baud rate can be freely chosen within the valid range. Each transmitted byte starts with a start bit (logic  
0, low level on pin UART) and ends with a stop bit (logic 1, high level). The bit time is calculated by  
measuring the time from the beginning of start bit (1 to 0 transition) to the end of the sync frame (1  
to 0 transition from bit 2 to bit 3). All data is transmitted bytewise. The 32 bit data words are transmitted  
with the highest byte first.  
A minimum baud rate of 9000 baud is permissible, assuming 20 MHz clock (worst case for low baud  
rate). Maximum baud rate is fCLK/16 due to the required stability of the baud clock.  
The slave address SLAVEADDR is selected by MS1 (bit 0) and MS2 (bit 1) in the range 0 to 3.  
Bit 7 of the register address identifies a Read (0) or a Write (1) access. Example: Address 0x10 is changed  
to 0x90 for a write access.  
The communication becomes reset if a pause time of longer than 63 bit times between the start bits  
of two successive bytes occurs. This timing is based on the last correctly received datagram. In this  
case, the transmission needs to be restarted after a failure recovery time of minimum 12 bit times of  
bus idle time. This scheme allows the master to reset communication in case of transmission errors.  
Any pulse on an idle data line below 16 clock cycles will be treated as a glitch and leads to a timeout  
of 12 bit times, for which the data line must be idle. Other errors like wrong CRC are also treated the  
same way. This allows a safe re-synchronization of the transmission after any error conditions. Remark,  
that due to this mechanism an abrupt reduction of the baud rate to less than 15 percent of the previous  
value is not possible.  
Each accepted write datagram becomes acknowledged by the receiver by incrementing an internal cyclic  
datagram counter (8 bit). Reading out the datagram counter allows the master to check the success of  
an initialization sequence or single write accesses. Read accesses do not modify the counter.  
The UART line must be logic high during idle state. Therefore, the power down function cannot be  
assigned by the pin PDN_UART in between of transmissions. In an application using the UART interface,  
set the desired power down function by register access and set pdn_disable in GCONF to disable the  
pin function.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
16  
4.1.2 Read Access  
UART READ ACCESS REQUEST DATAGRAM STRUCTURE  
each byte is LSB…MSB, highest byte transmitted first  
RW + 7 bit register  
sync + reserved  
8 bit slave address  
8…15  
CRC  
24…31  
CRC  
address  
16…23  
0...7  
Reserved (don’t cares  
but included in CRC)  
1
0
1
0
SLAVEADDR=0…3  
register address  
0
The read access request datagram structure is identical to the write access datagram structure, but uses  
a lower number of user bits. Its function is the addressing of the slave and the transmission of the  
desired register address for the read access. The TMC2226 responds with the same baud rate as the  
master uses for the read request.  
In order to ensure a clean bus transition from the master to the slave, the TMC2226 does not  
immediately send the reply to a read access, but it uses a programmable delay time after which the  
first reply byte becomes sent following a read request. This delay time can be set in multiples of eight  
bit times using SENDDELAY time setting (default=8 bit times) according to the needs of the master.  
UART READ ACCESS REPLY DATAGRAM STRUCTURE  
each byte is LSB…MSB, highest byte transmitted first  
0 ...... 63  
8 bit master  
address  
8…15  
RW + 7 bit  
register addr.  
16…23  
sync + reserved  
32 bit data  
CRC  
0…7  
24…55  
data bytes 3, 2,  
1, 0 (high to low  
byte)  
56…63  
register  
0
1
0
1
0
reserved (0)  
0xFF  
CRC  
address  
The read response is sent to the master using address code %11111111. The transmitter becomes  
switched inactive four bit times after the last bit is sent.  
Address %11111111 is reserved for read access replies going to the master.  
Hint  
Find an example for generating read and write datagrams in the TMC2226 calculation sheet.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
17  
4.2 CRC Calculation  
An 8 bit CRC polynomial is used for checking both read and write access. It allows detection of up to  
eight single bit errors. The CRC8-ATM polynomial with an initial value of zero is applied LSB to MSB,  
including the sync- and addressing byte. The sync nibble is assumed to always be correct. The TMC2226  
responds only to correctly transmitted datagrams containing its own slave address. It increases its  
datagram counter for each correctly received write access datagram.  
퐶푅퐶 = 푥8 + 푥2 + 푥1 + 푥0  
SERIAL CALCULATION EXAMPLE  
CRC = (CRC << 1) OR (CRC.7 XOR CRC.1 XOR CRC.0 XOR [new incoming bit])  
C-CODE EXAMPLE FOR CRC CALCULATION  
void swuart_calcCRC(UCHAR* datagram, UCHAR datagramLength)  
{
int i,j;  
UCHAR* crc = datagram + (datagramLength-1); // CRC located in last byte of message  
UCHAR currentByte;  
*crc = 0;  
for (i=0; i<(datagramLength-1); i++) {  
currentByte = datagram[i];  
// Execute for all bytes of a message  
// Retrieve a byte to be sent from Array  
for (j=0; j<8; j++) {  
if ((*crc >> 7) ^ (currentByte&0x01))  
// update CRC based result of XOR operation  
{
*crc = (*crc << 1) ^ 0x07;  
}
else  
{
*crc = (*crc << 1);  
}
currentByte = currentByte >> 1;  
} // for CRC bit  
} // for message byte  
}
4.3 UART Signals  
The UART interface on the TMC2226 uses a single bi-direction pin:  
UART INTERFACE SIGNAL  
PDN_UART  
MS1_ADDR0  
MS2_ADDR1  
Non-inverted data input and output. I/O with Schmitt Trigger and VCC_IO level.  
IC UART address bit 0 (LSB)  
IC UART address bit 1  
The IC checks PDN_UART for correctly received datagrams with its own address continuously. It adapts  
to the baud rate based on the sync nibble, as described before. In case of a read access, it switches on  
its output drivers and sends its response using the same baud rate. The output becomes switched off  
four bit times after transfer of the last stop bit.  
TMC22xx  
different address  
(R/W access)  
TMC22xx  
different address  
(R/W access)  
TMC22xx #1  
same address  
(write only access)  
TMC22xx #2  
same address  
(write only access)  
+VCCIO  
TXD  
RXD  
Master CPU  
(µC with UART)  
Master CPU  
(µC with UART)  
1k  
TXD  
Figure 4.1 Attaching the TMC2226 to a microcontroller UART  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
18  
4.4 Addressing Multiple Slaves  
WRITE ONLY ACCESS  
If read access is not used, and all slaves are to be programmed with the same initialization values, no  
addressing is required. All slaves can be programmed in parallel like a single device (Figure 4.1.).  
ADDRESSING MULTIPLE SLAVES  
As the TMC2226 uses has a limited number of UART addresses, in principle only up to four ICs can be  
accessed per UART interface channel. Adding analog switches allows separated access to more individual  
ICs. This scheme is similar to an SPI bus with individual slave select lines (Figure 4.2). With this scheme,  
the microstep resolution can be selected via MS1 and MS2 pins (consider actual setting for addressing).  
TMC22xx  
#1  
TMC22xx  
#2  
TMC22xx  
#3  
+VIO  
+VIO  
+VIO  
22k  
22k  
22k  
¼ 74HC4066  
Port pin  
Port pin  
Port pin  
Port pin  
TXD  
Select#1  
¼ 74HC4066  
Select#2  
¼ 74HC4066  
Select#3  
Master CPU  
(µC with UART)  
74HC1G125  
buffer  
1k  
RXD  
Optional  
for  
transmission over long  
lines or many slaves.  
Figure 4.2 Addressing multiple TMC2226 via single wire interface using analog switches  
PROCEED AS FOLLOWS TO CONTROL MULTIPLE SLAVES:  
-
-
-
Set the UART to 8 bits, no parity. Select a baud rate safely within the valid range. At 250kBaud,  
a write access transmission requires 320µs (=8 Bytes * (8+2) bits * 4µs).  
Before starting an access, activate the select pin going to the analog switch by setting it high.  
All other slaves select lines shall be off, unless a broadcast is desired.  
When using the optional buffer, set TMC2226 transmission send delay to an appropriate value  
allowing the µC to switch off the buffer before receiving reply data.  
-
-
To start a transmission, activate the TXD line buffer by setting the control pin low.  
When sending a read access request, switch off the buffer after transmission of the last stop  
bit is finished.  
-
Take into account, that all transmitted data also is received by the RXD input.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
19  
UART  
5 Register Map  
This chapter gives an overview of the complete register set. Some of the registers bundling a number  
of single bits are detailed in extra tables. The functional practical application of the settings is detailed  
in dedicated chapters.  
Note  
- Reset default: All registers become reset to 0 upon power up, unless otherwise noted.  
- Add 0x80 to the address Addr for write accesses!  
NOTATION OF HEXADECIMAL AND BINARY NUMBERS  
0x  
%
precedes a hexadecimal number, e.g. 0x04  
precedes a multi-bit binary number, e.g. %100  
NOTATION OF R/W FIELD  
R
Read only  
W
Write only  
R/W  
Read- and writable register  
OVERVIEW REGISTER MAPPING  
REGISTER  
DESCRIPTION  
General Configuration Registers  
These registers contain  
-
-
-
-
global configuration  
global status flags  
OTP read access and programming  
interface configuration  
Velocity Dependent Driver Feature Control Register This register set offers registers for  
Set  
-
-
-
driver current control, stand still reduction  
setting thresholds for different chopper modes  
internal pulse generator control  
Chopper Register Set  
This register set offers registers for  
-
optimization of StealthChop2 and SpreadCycle  
and read out of internal values  
passive braking and freewheeling options  
driver diagnostics  
-
-
-
driver enable / disable  
CoolStep and StallGuard Control Registers  
These registers allow for  
-
-
Sensorless stall detection for homing  
Adaptive motor current control for best efficiency  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
20  
5.1 General Registers  
GENERAL CONFIGURATION REGISTERS (0X00…0X0F)  
R/W  
Addr  
n
Register  
Description / bit names  
Bit GCONF Global configuration flags  
I_scale_analog (Reset default=1)  
0
0:  
Use internal reference derived from 5VOUT  
1:  
Use voltage supplied to VREF as current reference  
1
internal_Rsense (Reset default: OTP)  
0:  
Operation with external sense resistors  
1:  
Internal sense resistors. Use current supplied into  
VREF as reference for internal sense resistor. VREF  
pin internally is driven to GND in this mode.  
2
en_SpreadCycle (Reset default: OTP)  
0:  
StealthChop PWM mode enabled (depending on  
velocity thresholds). Initially switch from off to on  
state while in stand still, only.  
1:  
SpreadCycle mode enabled  
A high level on the pin SPREAD inverts this flag to  
switch between both chopper modes.  
shaft  
3
4
1:  
Inverse motor direction  
index_otpw  
0:  
1:  
INDEX shows the first microstep position of  
sequencer  
INDEX pin outputs overtemperature prewarning  
flag (otpw) instead  
RW  
0x00  
10  
GCONF  
5
6
index_step  
0:  
INDEX output as selected by index_otpw  
1:  
INDEX output shows step pulses from internal  
pulse generator (toggle upon each step)  
pdn_disable  
0:  
PDN_UART controls standstill current reduction  
1:  
PDN_UART input function disabled. Set this bit,  
when using the UART interface!  
7
8
mstep_reg_select  
0:  
1:  
Microstep resolution selected by pins MS1, MS2  
Microstep resolution selected by MSTEP register  
multistep_filt (Reset default=1)  
0:  
No filtering of STEP pulses  
1:  
Software pulse generator optimization enabled  
when fullstep frequency > 750Hz (roughly). TSTEP  
shows filtered step time values when active.  
9
test_mode  
0:  
1:  
Normal operation  
Enable analog test output on pin ENN (pull down  
resistor off), ENN treated as enabled.  
IHOLD[1..0] selects the function of DCO:  
0…2: T120, DAC, VDDH  
Attention: Not for user, set to 0 for normal operation!  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
21  
GENERAL CONFIGURATION REGISTERS (0X00…0X0F)  
R/W  
Addr  
n
Register  
Description / bit names  
Bit GSTAT Global status flags  
(Re-Write with ‘1’ bit to clear respective flags)  
0
reset  
1:  
Indicates that the IC has been reset since the last  
read access to GSTAT. All registers have been  
cleared to reset values.  
1
drv_err  
R+  
WC  
1:  
Indicates, that the driver has been shut down due  
0x01  
3
GSTAT  
to overtemperature or short circuit detection since  
the last read access. Read DRV_STATUS for details.  
The flag can only be cleared when all error  
conditions are cleared.  
2
uv_cp  
1:  
Indicates an undervoltage on the charge pump.  
The driver is disabled in this case. This flag is not  
latched and thus does not need to be cleared.  
Interface transmission counter. This register becomes  
incremented with each successful UART interface write  
access. Read out to check the serial transmission for lost  
data. Read accesses do not change the content. The  
counter wraps around from 255 to 0.  
R
0x02  
0x03  
8
4
IFCNT  
Bit  
SLAVECONF  
11..8 SENDDELAY for read access (time until reply is sent):  
0, 1:  
2, 3:  
4, 5:  
6, 7:  
8, 9:  
8 bit times  
3*8 bit times  
5*8 bit times  
7*8 bit times  
9*8 bit times  
W
SLAVECONF  
10, 11: 11*8 bit times  
12, 13: 13*8 bit times  
14, 15: 15*8 bit times  
Bit  
OTP_PROGRAM OTP programming  
Write access programs OTP memory (one bit at a time),  
Read access refreshes read data from OTP after a write  
2..0 OTPBIT  
Selection of OTP bit to be programmed to the selected  
byte location (n=0..7: programs bit n to a logic 1)  
W
0x04  
16 OTP_PROG  
5..4 OTPBYTE  
Selection of OTP programming location (0, 1 or 2)  
15..8 OTPMAGIC  
Set to 0xbd to enable programming. A programming  
time of minimum 10ms per bit is recommended (check  
by reading OTP_READ).  
Bit  
OTP_READ (Access to OTP memory result and update)  
See separate table!  
7..0  
OTP0 byte 0 read data  
R
R
0x05  
0x06  
24 OTP_READ  
15..8 OTP1 byte 1 read data  
23..16 OTP2 byte 2 read data  
Bit  
INPUT (Reads the state of all input pins available)  
ENN  
0
MS1  
MS2  
10  
0
1
2
3
+
IOIN  
8
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
22  
GENERAL CONFIGURATION REGISTERS (0X00…0X0F)  
R/W  
Addr  
n
Register  
Description / bit names  
4
5
6
7
DIAG  
0
PDN_UART  
STEP  
8
9
SPREAD_EN  
DIR  
31.. VERSION: 0x21=first version of the IC  
24 Identical numbers mean full digital compatibility.  
4..0 FCLKTRIM (Reset default: OTP)  
0…31: Lowest to highest clock frequency. Check at charge  
pump output. The frequency span is not guaranteed, but  
it is tested, that tuning to 12MHz internal clock is  
possible. The devices come preset to 12MHz clock  
frequency by OTP programming.  
FACTORY_  
CONF  
RW  
0x07  
5+2  
9..8 OTTRIM  
(Default: OTP)  
OT=143°C, OTPW=120°C  
OT=150°C, OTPW=120°C  
OT=150°C, OTPW=143°C  
OT=157°C, OTPW=143°C  
%00:  
%01:  
%10:  
%11:  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
23  
5.1.1 OTP_READ OTP configuration memory  
The OTP memory holds power up defaults for certain registers. All OTP memory bits are cleared to 0 by  
default. Programming only can set bits, clearing bits is not possible. Factory tuning of the clock  
frequency affects otp0.0 to otp0.4. The state of these bits therefore may differ between individual ICs.  
0X05: OTP_READ OTP MEMORY MAP  
Bit Name  
Function  
Comment  
23 otp2.7  
otp_en_SpreadCycle  
This flag determines if the driver defaults to SpreadCycle  
or to StealthChop.  
0
Default: StealthChop (GCONF.en_SpreadCycle=0)  
OTP 1.0 to 1.7 and 2.0 used for StealthChop  
SpreadCycle settings: HEND=0; HSTART=5; TOFF=3  
Default: SpreadCycle (GCONF.en_SpreadCycle=1)  
OTP 1.0 to 1.7 and 2.0 used for SpreadCycle  
StealthChop settings: PWM_GRAD=0; TPWM_THRS=0;  
PWM_OFS=36; pwm_autograd=1  
1
22 otp2.6  
21 otp2.5  
OTP_IHOLD  
Reset default for standstill current IHOLD (used only if  
current reduction enabled, e.g. pin PDN_UART low).  
%00: IHOLD= 16  
(53% of IRUN)  
( 9% of IRUN)  
(28% of IRUN)  
(78% of IRUN)  
%01: IHOLD=  
2
%10: IHOLD=  
8
%11: IHOLD= 24  
(Reset default for run current IRUN=31)  
Reset default for IHOLDDELAY  
%00: IHOLDDELAY= 1  
20 otp2.4  
19 otp2.3  
OTP_IHOLDDELAY  
%01: IHOLDDELAY= 2  
%10: IHOLDDELAY= 4  
%11: IHOLDDELAY= 8  
18 otp2.2  
17 otp2.1  
16 otp2.0  
otp_PWM_FREQ  
otp_PWM_REG  
otp_PWM_OFS  
Reset default for PWM_FREQ:  
0: PWM_FREQ=%01=2/683  
1: PWM_FREQ=%10=2/512  
Reset default for PWM_REG:  
0: PWM_REG=%1000: max. 4 increments / cycle  
1: PWM_REG=%0010: max. 1 increment / cycle  
Depending on otp_en_SpreadCycle  
0
0: PWM_OFS=36  
1: PWM_OFS=00 (no feed forward scaling);  
pwm_autograd=0  
OTP_CHOPCONF8  
OTP_TPWMTHRS  
1
Reset default for CHOPCONF.8 (hend1)  
15 otp1.7  
14 otp1.6  
13 otp1.5  
Depending on otp_en_SpreadCycle  
0 Reset default for TPWM_THRS as defined by (0..7):  
0: TPWM_THRS=  
0
1: TPWM_THRS= 200  
2: TPWM_THRS= 300  
3: TPWM_THRS= 400  
4: TPWM_THRS= 500  
5: TPWM_THRS= 800  
6: TPWM_THRS= 1200  
7: TPWM_THRS= 4000  
OTP_CHOPCONF7...5  
otp_pwm_autograd  
1
Reset default for CHOPCONF.5 to CHOPCONF.7 (hstrt1,  
hstrt2 and hend0)  
12 otp1.4  
Depending on otp_en_SpreadCycle  
0
0: pwm_autograd=1  
1: pwm_autograd=0  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
24  
0X05: OTP_READ OTP MEMORY MAP  
Bit Name  
Function  
OTP_CHOPCONF4  
Comment  
Reset  
(pwm_autograd=1)  
Depending on otp_en_SpreadCycle  
0 Reset default for PWM_GRAD as defined by (0..15):  
1
default  
for  
CHOPCONF.4  
(hstrt0);  
11 otp1.3  
10 otp1.2  
OTP_PWM_GRAD  
0: PWM_GRAD= 14  
1: PWM_GRAD= 16  
2: PWM_GRAD= 18  
3: PWM_GRAD= 21  
4: PWM_GRAD= 24  
5: PWM_GRAD= 27  
6: PWM_GRAD= 31  
7: PWM_GRAD= 35  
8: PWM_GRAD= 40  
9: PWM_GRAD= 46  
10: PWM_GRAD= 52  
11: PWM_GRAD= 59  
12: PWM_GRAD= 67  
13: PWM_GRAD= 77  
14: PWM_GRAD= 88  
15: PWM_GRAD= 100  
Reset default for CHOPCONF.0 to CHOPCONF.3 (TOFF)  
9
8
otp1.1  
otp1.0  
OTP_CHOPCONF3...0  
otp_TBL  
1
7
6
5
otp0.7  
otp0.6  
otp0.5  
Reset default for TBL:  
0: TBL=%10  
1: TBL=%01  
Reset default for GCONF.internal_Rsense  
0: External sense resistors  
1: Internal sense resistors  
Reset default for OTTRIM:  
otp_internalRsense  
otp_OTTRIM  
0: OTTRIM= %00 (143°C)  
1: OTTRIM= %01 (150°C)  
(internal power stage temperature about 10°C above the  
sensor temperature limit)  
4
3
2
1
0
otp0.4  
otp0.3  
otp0.2  
otp0.1  
otp0.0  
OTP_FCLKTRIM  
Reset default for FCLKTRIM  
0: lowest frequency setting  
31: highest frequency setting  
Attention: This value is pre-programmed by factory clock  
trimming to the default clock frequency of 12MHz and  
differs between individual ICs! It should not be altered.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
25  
5.2 Velocity Dependent Control  
VELOCITY DEPENDENT DRIVER FEATURE CONTROL REGISTER SET (0X10…0X1F)  
R/W  
Addr  
n
Register  
Description / bit names  
Bit IHOLD_IRUN Driver current control  
4..0 IHOLD (Reset default: OTP)  
Standstill current (0=1/32 31=32/32)  
In combination with StealthChop mode, setting  
IHOLD=0 allows to choose freewheeling or coil short  
circuit (passive braking) for motor stand still.  
12..8 IRUN (Reset default=31)  
5
+
Motor run current (0=1/32 31=32/32)  
W
0x10  
5
+
4
IHOLD_IRUN  
Hint: Choose sense resistors in a way, that normal  
IRUN is 16 to 31 for best microstep performance.  
19..16 IHOLDDELAY (Reset default: OTP)  
Controls the number of clock cycles for motor power  
down after standstill is detected (stst=1) and  
TPOWERDOWN has expired. The smooth transition  
avoids a motor jerk upon power down.  
0:  
1..15:  
instant power down  
Delay per current reduction step in multiple  
of 2^18 clocks  
TPOWERDOWN (Reset default=20)  
Sets the delay time from stand still (stst) detection to motor  
current power down. Time range is about 0 to 5.6 seconds.  
0…((2^8)-1) * 2^18 tCLK  
Attention: A minimum setting of 2 is required to allow  
automatic tuning of StealthChop PWM_OFFS_AUTO.  
Actual measured time between two 1/256 microsteps derived  
from the step input frequency in units of 1/fCLK. Measured value  
is (2^20)-1 in case of overflow or stand still.  
TPOWER  
DOWN  
W
0x11  
0x12  
8
The TSTEP related threshold uses a hysteresis of 1/16 of the  
compare value to compensate for jitter in the clock or the step  
frequency: (Txxx*15/16)-1 is the lower compare value for each  
TSTEP based comparison.  
R
20 TSTEP  
This means, that the lower switching velocity equals the  
calculated setting, but the upper switching velocity is higher as  
defined by the hysteresis setting.  
Sets the upper velocity for StealthChop voltage PWM mode.  
TSTEP TPWMTHRS  
-
StealthChop PWM mode is enabled, if configured  
W
W
0x13  
0x22  
20 TPWMTHRS  
24 VACTUAL  
When the velocity exceeds the limit set by TPWMTHRS, the driver  
switches to SpreadCycle.  
0: Disabled  
VACTUAL allows moving the motor by UART control.  
It gives the motor velocity in +-(2^23)-1 [µsteps / t]  
0: Normal operation. Driver reacts to STEP input.  
/=0: Motor moves with the velocity given by VACTUAL. Step  
pulses can be monitored via INDEX output. The motor direction  
is controlled by the sign of VACTUAL.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
26  
5.3 StallGuard Control  
COOLSTEP AND STALLGUARD CONTROL REGISTER SET (0X14, 0X40…0X42)  
R/W  
Addr  
n
Register  
Description / bit names  
TCOOLTHRS  
This is the lower threshold velocity for switching on smart  
energy CoolStep and StallGuard to DIAG output. (unsigned)  
Set this parameter to disable CoolStep at low speeds, where it  
cannot work reliably. The stall output signal become enabled  
when exceeding this velocity. It becomes disabled again once  
the velocity falls below this threshold.  
W
0x14  
20 TCOOLTHRS  
TCOOLTHRS TSTEP > TPWMTHRS  
- CoolStep is enabled, if configured (only with StealthChop)  
- Stall output signal on pin DIAG is enabled  
SGTHRS  
Detection threshold for stall. The StallGuard value SG_RESULT  
becomes compared to the double of this threshold.  
A stall is signaled with  
W
0x40  
8
SGTHRS  
SG_RESULT SGTHRS*2  
StallGuard result. SG_RESULT becomes updated with each  
fullstep, independent of TCOOLTHRS and SGTHRS. A higher value  
signals a lower motor load and more torque headroom.  
Intended for StealthChop mode, only. Bits 9 and 0 will always  
show 0. Scaling to 10 bit is for compatibility to StallGuard2.  
CoolStep configuration  
R
0x41  
0x42  
10 SG_RESULT  
16 COOLCONF  
W
See separate table!  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
27  
5.3.1 COOLCONF Smart Energy Control CoolStep  
0X42: COOLCONF SMART ENERGY CONTROL COOLSTEP AND STALLGUARD  
Bit Name  
Function  
Comment  
15 seimin  
minimum current for  
smart current control  
0: 1/2 of current setting (IRUN)  
Attention: use with IRUN≥10  
1: 1/4 of current setting (IRUN)  
Attention: use with IRUN≥20  
14 sedn1  
13 sedn0  
current down step  
speed  
%00: For each 32 StallGuard4 values decrease by one  
%01: For each 8 StallGuard4 values decrease by one  
%10: For each 2 StallGuard4 values decrease by one  
%11: For each StallGuard4 value decrease by one  
set to 0  
12  
-
reserved  
11 semax3  
10 semax2  
StallGuard hysteresis  
If the StallGuard4 result is equal to or above  
value for smart current (SEMIN+SEMAX+1)*32, the motor current becomes  
control  
decreased to save energy.  
%0000 … %1111: 0 … 15  
set to 0  
Current increment steps per measured StallGuard value  
%00 … %11: 1, 2, 4, 8  
set to 0  
9
8
7
6
5
4
3
2
1
0
semax1  
semax0  
-
seup1  
seup0  
-
semin3  
semin2  
semin1  
semin0  
reserved  
current up step width  
reserved  
minimum StallGuard  
value for smart current current becomes increased to reduce motor load angle.  
control and  
If the StallGuard4 result falls below SEMIN*32, the motor  
%0000: smart current control CoolStep off  
%0001 … %1111: 1 … 15  
smart current enable  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
28  
5.4 Sequencer Registers  
The sequencer registers have a pure informative character and are read-only. They help for special cases  
like storing the last motor position before power off in battery powered applications.  
MICROSTEPPING CONTROL REGISTER SET (0X60…0X6B)  
R/W  
Addr  
n
Register  
Description / bit names  
Range [Unit]  
Microstep counter. Indicates actual position in 0…1023  
the microstep table for CUR_A. CUR_B uses an  
offset of 256 into the table. Reading out  
MSCNT allows determination of the motor  
position within the electrical wave.  
R
0x6A  
10 MSCNT  
bit 8… 0:  
CUR_A (signed):  
+/-0...255  
Actual microstep current for motor  
phase A as read from the internal  
sine wave table (not scaled by  
current setting)  
9
+
9
R
0x6B  
MSCURACT  
bit 24… 16: CUR_B (signed):  
Actual microstep current for motor  
phase B as read from the internal  
sine wave table (not scaled by  
current setting)  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
29  
5.5 Chopper Control Registers  
DRIVER REGISTER SET (0X6C…0X7F)  
R/W  
Addr  
n
Register  
Description / bit names  
Range [Unit]  
Chopper and driver configuration  
See separate table!  
Reset default=  
0x10000053  
RW  
0x6C  
32 CHOPCONF  
DRV_  
32  
Driver status flags and current level read back  
See separate table!  
StealthChop PWM chopper configuration  
See separate table!  
R
0x6F  
0x70  
STATUS  
Reset default=  
0xC10D0024  
RW  
22 PWMCONF  
Results of StealthChop amplitude regulator.  
These values can be used to monitor  
automatic PWM amplitude scaling (255=max.  
voltage).  
bit 7… 0  
PWM_SCALE_SUM:  
0…255  
Actual PWM duty cycle. This  
value is used for scaling the  
values CUR_A and CUR_B read  
from the sine wave table.  
R
0x71  
9+8 PWM_SCALE  
bit 24… 16 PWM_SCALE_AUTO:  
signed  
9 Bit signed offset added to the -255…+255  
calculated PWM duty cycle. This is  
the result of the automatic  
amplitude regulation based on  
current measurement.  
These automatically generated values can be  
read out in order to determine a default /  
power up setting for PWM_GRAD and  
PWM_OFS.  
bit 7… 0  
PWM_OFS_AUTO:  
Automatically determined offset  
value  
0…255  
0…255  
R
0x72  
8+8 PWM_AUTO  
bit 23… 16 PWM_GRAD_AUTO:  
Automatically  
determined  
gradient value  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
30  
5.5.1 CHOPCONF Chopper Configuration  
0X6C: CHOPCONF CHOPPER CONFIGURATION  
Bit Name  
Function  
Comment  
31 diss2vs  
Low side short  
protection disable  
short to GND  
protection disable  
enable double edge  
step pulses  
0: Short protection low side is on  
1: Short protection low side is disabled  
0: Short to GND protection is on  
1: Short to GND protection is disabled  
1: Enable step impulse at each step edge to reduce step  
frequency requirement. This mode is not compatible  
with the step filtering function (multistep_filt)  
1: The actual microstep resolution (MRES) becomes  
extrapolated to 256 microsteps for smoothest motor  
operation.  
30 diss2g  
29 dedge  
28 intpol  
interpolation to 256  
microsteps  
(Default: 1)  
27 mres3  
26 mres2  
25 mres1  
24 mres0  
MRES  
%0000:  
micro step resolution  
Native 256 microstep setting.  
%0001 … %1000:  
128, 64, 32, 16, 8, 4, 2, FULLSTEP  
Reduced microstep resolution.  
The resolution gives the number of microstep entries per  
sine quarter wave.  
When choosing a lower microstep resolution, the driver  
automatically uses microstep positions which result in a  
symmetrical wave.  
Number of microsteps per step pulse = 2^MRES  
(Selection by pins unless disabled by GCONF.  
mstep_reg_select)  
23  
22  
21  
20  
19  
18  
-
reserved  
set to 0  
17 vsense  
sense resistor voltage  
based current scaling  
TBL  
0: Low sensitivity, high sense resistor voltage  
1: High sensitivity, low sense resistor voltage  
%00 … %11:  
Set comparator blank time to 16, 24, 32 or 40 clocks  
Hint: %00 or %01 is recommended for most applications  
(Default: OTP)  
16 tbl1  
15 tbl0  
blank time select  
14  
13  
12  
11  
-
reserved  
set to 0  
10 hend3  
HEND  
hysteresis low value  
OFFSET  
sine wave offset  
%0000 … %1111:  
Hysteresis is -3, -2, -1, 0, 1, …, 12  
(1/512 of this setting adds to current setting)  
This is the hysteresis value which becomes used for the  
hysteresis chopper.  
9
8
7
hend2  
hend1  
hend0  
(Default: OTP, resp. 5 in StealthChop mode)  
6
5
4
hstrt2  
hstrt1  
hstrt0  
HSTRT  
hysteresis start value  
added to HEND  
%000 … %111:  
Add 1, 2, …, 8 to hysteresis low value HEND  
(1/512 of this setting adds to current setting)  
Attention: Effective HEND+HSTRT 16.  
Hint: Hysteresis decrement is done each 16 clocks  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
31  
0X6C: CHOPCONF CHOPPER CONFIGURATION  
Bit Name  
Function  
Comment  
(Default: OTP, resp. 0 in StealthChop mode)  
3
2
1
0
toff3  
toff2  
toff1  
toff0  
TOFF off time  
and driver enable  
Off time setting controls duration of slow decay phase  
NCLK= 24 + 32*TOFF  
%0000: Driver disable, all bridges off  
%0001: 1 use only with TBL 2  
%0010 … %1111: 2 … 15  
(Default: OTP, resp. 3 in StealthChop mode)  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
32  
5.5.2 PWMCONF Voltage PWM Mode StealthChop  
0X70: PWMCONF VOLTAGE MODE PWM STEALTHCHOP  
Bit Name  
Function  
Comment  
31 PWM_LIM  
PWM automatic scale  
amplitude limit when  
switching on  
Limit for PWM_SCALE_AUTO when switching back from  
SpreadCycle to StealthChop. This value defines the upper  
limit for bits 7 to 4 of the automatic current control when  
switching back. It can be set to reduce the current jerk  
during mode change back to StealthChop.  
It does not limit PWM_GRAD or PWM_GRAD_AUTO offset.  
(Default = 12)  
30  
29  
28  
27 PWM_REG Regulation loop  
User defined maximum PWM amplitude change per half  
wave when using pwm_autoscale=1. (1…15):  
1: 0.5 increments (slowest regulation)  
2: 1 increment (default with OTP2.1=1)  
3: 1.5 increments  
gradient  
26  
25  
24  
4: 2 increments  
8: 4 increments (default with OTP2.1=0)  
...  
15: 7.5 increments (fastest regulation)  
set to 0  
23  
22  
21  
20  
-
-
reserved  
reserved  
Allows different  
set to 0  
freewheel1  
freewheel0 standstill modes  
Stand still option when motor current setting is zero  
(I_HOLD=0).  
%00: Normal operation  
%01: Freewheeling  
%10: Coil shorted using LS drivers  
%11: Coil shorted using HS drivers  
19 pwm_  
autograd  
PWM automatic  
gradient adaptation  
0
1
Fixed value for PWM_GRAD  
(PWM_GRAD_AUTO = PWM_GRAD)  
Automatic tuning (only with pwm_autoscale=1)  
PWM_GRAD_AUTO is initialized with PWM_GRAD and  
becomes optimized automatically during motion.  
Preconditions  
1. PWM_OFS_AUTO has been automatically  
initialized. This requires standstill at IRUN for  
>130ms in order to a) detect standstill b) wait >  
128 chopper cycles at IRUN and c) regulate  
PWM_OFS_AUTO so that  
-1 < PWM_SCALE_AUTO < 1  
2. Motor running and 1.5 * PWM_OFS_AUTO <  
PWM_SCALE_SUM < 4* PWM_OFS_AUTO and  
PWM_SCALE_SUM < 255.  
Time required for tuning PWM_GRAD_AUTO  
About 8 fullsteps per change of +/-1.  
User defined feed forward PWM amplitude. The  
current settings IRUN and IHOLD have no influence!  
The resulting PWM amplitude (limited to 0…255) is:  
PWM_OFS * ((CS_ACTUAL+1) / 32)  
18 pwm_  
autoscale  
PWM automatic  
amplitude scaling  
0
1
+ PWM_GRAD * 256 / TSTEP  
Enable automatic current control (Reset default)  
pwm_freq1  
17  
%00: fPWM=2/1024 fCLK  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
33  
0X70: PWMCONF VOLTAGE MODE PWM STEALTHCHOP  
Bit Name  
Function  
Comment  
pwm_freq0  
16  
PWM frequency  
selection  
%01: fPWM=2/683 fCLK  
%10: fPWM=2/512 fCLK  
%11: fPWM=2/410 fCLK  
15 PWM_  
User defined amplitude Velocity dependent gradient for PWM amplitude:  
gradient PWM_GRAD * 256 / TSTEP  
GRAD  
14  
13  
12  
11  
10  
9
This value is added to PWM_AMPL to compensate for the  
velocity-dependent motor back-EMF.  
With automatic scaling (pwm_autoscale=1) the value is  
used for first initialization, only. Set PWM_GRAD to the  
application specific value (it can be read out from  
PWM_GRAD_AUTO) to speed up the automatic tuning  
process. An approximate value can be stored to OTP by  
programming OTP_PWM_GRAD.  
8
7
6
5
4
3
2
1
0
PWM_  
OFS  
User defined amplitude User defined PWM amplitude offset (0-255) related to full  
(offset)  
motor current (CS_ACTUAL=31) in stand still.  
(Reset default=36)  
When using automatic scaling (pwm_autoscale=1) the  
value is used for initialization, only. The autoscale  
function starts with PWM_SCALE_AUTO=PWM_OFS and  
finds the required offset to yield the target current  
automatically.  
PWM_OFS = 0 will disable scaling down motor current  
below a motor specific lower measurement threshold.  
This setting should only be used under certain conditions,  
i.e. when the power supply voltage can vary up and down  
by a factor of two or more. It prevents the motor going  
out of regulation, but it also prevents power down below  
the regulation limit.  
PWM_OFS > 0 allows automatic scaling to low PWM duty  
cycles even below the lower regulation threshold. This  
allows low (standstill) current settings based on the  
actual (hold) current scale (register IHOLD_IRUN).  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
34  
5.5.3 DRV_STATUS Driver Status Flags  
0X6F: DRV_STATUS DRIVER STATUS FLAGS AND CURRENT LEVEL READ BACK  
Bit Name  
Function  
Comment  
31 stst  
standstill indicator  
This flag indicates motor stand still in each operation  
mode. This occurs 2^20 clocks after the last step pulse.  
1: Driver operates in StealthChop mode  
0: Driver operates in SpreadCycle mode  
Ignore these bits.  
30 stealth  
StealthChop indicator  
reserved  
29  
28  
27  
26  
25  
24  
23  
22  
21  
-
-
reserved  
Ignore these bits.  
20 CS_  
actual motor current /  
smart energy current  
Actual current control scaling, for monitoring the  
function of the automatic current scaling.  
ACTUAL  
19  
18  
17  
16  
15  
14  
13  
12  
-
reserved  
Ignore these bits.  
11 t157  
10 t150  
157°C comparator  
150°C comparator  
143°C comparator  
120°C comparator  
open load indicator  
phase B  
open load indicator  
phase A  
low side short  
1: Temperature threshold is exceeded  
1: Temperature threshold is exceeded  
1: Temperature threshold is exceeded  
1: Temperature threshold is exceeded  
9
8
7
t143  
t120  
olb  
1: Open load detected on phase A or B.  
Hint: This is just an informative flag. The driver takes no  
action upon it. False detection may occur in fast motion  
and standstill. Check during slow motion, only.  
1: Short on low-side MOSFET detected on phase A or B.  
The driver becomes disabled. The flags stay active, until  
the driver is disabled by software (TOFF=0) or by the ENN  
input. Flags are separate for both chopper modes.  
1: Short to GND detected on phase A or B. The driver  
becomes disabled. The flags stay active, until the driver is  
disabled by software (TOFF=0) or by the ENN input. Flags  
are separate for both chopper modes.  
6
5
4
3
2
1
ola  
s2vsb  
s2vsa  
s2gb  
s2ga  
ot  
indicator phase B  
low side short  
indicator phase A  
short to ground  
indicator phase B  
short to ground  
indicator phase A  
overtemperature flag  
1: The selected overtemperature limit has been reached.  
Drivers become disabled until otpw is also cleared due to  
cooling down of the IC.  
The overtemperature flag is common for both bridges.  
1: The selected overtemperature pre-warning threshold is  
exceeded.  
0
otpw  
overtemperature pre-  
warning flag  
The overtemperature pre-warning flag is common for  
both bridges.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
35  
6 StealthChop™  
StealthChop is an extremely quiet mode of operation for stepper motors. It is based on a  
voltage mode PWM. In case of standstill and at low velocities, the motor is absolutely  
noiseless. Thus, StealthChop operated stepper motor applications are very suitable for  
indoor or home use. The motor operates absolutely free of vibration at low velocities. With  
StealthChop, the motor current is applied by driving a certain effective voltage into the  
coil, using a voltage mode PWM. With the enhanced StealthChop2, the driver automatically adapts to  
the application for best performance. No more configurations are required. Optional configuration allows  
for tuning the setting in special cases, or for storing initial values for the automatic adaptation algorithm.  
For high velocity consider SpreadCycle in combination with StealthChop.  
Figure 6.1 Motor coil sine wave current with StealthChop (measured with current probe)  
6.1 Automatic Tuning  
StealthChop2 integrates an automatic tuning procedure (AT), which adapts the most important operating  
parameters to the motor automatically. This way, StealthChop2 allows high motor dynamics and  
supports powering down the motor to very low currents. Just two steps have to be respected by the  
motion controller for best results: Start with the motor in standstill, but powered with nominal run  
current (AT#1). Move the motor at a medium velocity, e.g. as part of a homing procedure (AT#2). Figure  
6.2 shows the tuning procedure.  
Border conditions in for AT#1 and AT#2 are shown in the following table:  
AUTOMATIC TUNING TIMING AND BORDER CONDITIONS  
Step Parameter  
AT#1 PWM_  
OFS_AUTO  
Conditions  
Duration  
≤ 2^20+2*2^18 tCLK,  
≤ 130ms  
- Motor in standstill and actual current scale (CS) is  
identical to run current (IRUN).  
- If standstill reduction is enabled (pin PDN_UART=0),  
an initial step pulse switches the drive back to run  
current.  
(with internal clock)  
- Pins VS and VREF at operating level.  
- Motor must move at a velocity, where a significant 8 fullsteps are required for  
AT#2 PWM_  
amount of back EMF is generated and where the full a change of +/-1.  
GRAD_AUTO  
run current can be reached. Conditions:  
For a typical motor with  
PWM_GRAD_AUTO  
- 1.5 * PWM_OFS_AUTO  
<
PWM_SCALE_SUM  
<
4 * PWM_OFS_AUTO  
PWM_SCALE_SUM < 255.  
optimum at 64 or less, up  
to 400 fullsteps are  
-
Hint: A typical range is 60-300 RPM. Determine best required when starting  
conditions with the evaluation board and monitor from OTP default 14.  
PWM_SCALE_AUTO going down to zero during tuning.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
36  
Power Up  
PWM_GRAD_AUTO becomes  
initialized by OTP  
Driver Enabled?  
Y
N
N
Driver Enabled?  
Y
N
Y
Issue (at least) a single step  
pulse and stop again, to  
power motor to run current  
Standstill re-  
duction enabled?  
stealthChop2 regulates to nominal  
current and stores result to  
PWM_OFS_AUTO  
AT#1  
(Requires stand still for >130ms)  
Stand still  
PWM_  
GRAD_AUTO stored  
Y
in OTP?  
N
Move the motor, e.g. for homing.  
Include a constant, medium velocity  
ramp segment.  
AT#2  
Homing  
stealthChop2 regulates to nominal  
current and optimizes PWM_GRAD_AUTO  
(requires 8 fullsteps per change of 1,  
typically a few 100 fullsteps in sum)  
Store PWM_GRAD_AUTO or  
write to OTP for faster  
tuning procedure  
stealthChop2 settings are optimized!  
Option with UART  
Ready  
stealthChop2 keeps tuning during  
subsequent motion and stand still periods  
adapting to motor heating, supply  
variations, etc.  
Figure 6.2 StealthChop2 automatic tuning procedure  
Attention  
Modifying VREF or the supply voltage VS invalidates the result of the automatic tuning process. Motor  
current regulation cannot compensate significant changes until next AT#1 phase. Automatic tuning  
adapts to changed conditions whenever AT#1 and AT#2 conditions are fulfilled in the later operation.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
37  
UART  
6.2 StealthChop Options  
In order to match the motor current to a certain level, the effective PWM voltage becomes scaled  
depending on the actual motor velocity. Several additional factors influence the required voltage level  
to drive the motor at the target current: The motor resistance, its back EMF (i.e. directly proportional to  
its velocity) as well as the actual level of the supply voltage. Two modes of PWM regulation are provided:  
The automatic tuning mode (AT) using current feedback (pwm_autoscale = 1, pwm_autograd = 1) and a  
feed forward velocity-controlled mode (pwm_autoscale = 0). The feed forward velocity-controlled mode  
will not react to a change of the supply voltage or to events like a motor stall, but it provides very  
stable amplitude. It does not use nor require any means of current measurement. This is perfect when  
motor type and supply voltage are well known. Therefore, we recommend the automatic mode, unless  
current regulation is not satisfying in the given operating conditions.  
It is recommended to operate in automatic tuning mode.  
Non-automatic mode (pwm_autoscale=0) should be considered only with well-known motor and  
operating conditions. In this case, programming via the UART interface is required. The operating  
parameters PWM_GRAD and PWM_OFS can be determined in automatic tuning mode initially.  
Hint: In non-automatic mode the power supply current directly reflects mechanical load on the motor.  
The StealthChop PWM frequency can be chosen in four steps in order to adapt the frequency divider to  
the frequency of the clock source. A setting in the range of 20-50kHz is good for most applications. It  
balances low current ripple and good higher velocity performance vs. dynamic power dissipation.  
CHOICE OF PWM FREQUENCY FOR STEALTHCHOP  
Clock frequency  
fCLK  
PWM_FREQ=%00  
fPWM=2/1024 fCLK  
PWM_FREQ=%01  
fPWM=2/683 fCLK  
(default)  
52.7kHz  
46.9kHz  
35.1kHz  
29.3kHz  
23.4kHz  
PWM_FREQ=%10  
fPWM=2/512 fCLK  
(OTP option)  
70.3kHz  
62.5kHz  
46.9kHz  
PWM_FREQ=%11  
fPWM=2/410 fCLK  
18MHz  
16MHz  
12MHz (internal)  
10MHz  
8MHz  
35.2kHz  
31.3kHz  
23.4kHz  
19.5kHz  
15.6kHz  
87.8kHz  
78.0kHz  
58.5kHz  
48.8kHz  
39.0kHz  
39.1kHz  
31.2kHz  
Table 6.1 Choice of PWM frequency green / light green: recommended  
6.3 StealthChop Current Regulator  
In StealthChop voltage PWM mode, the autoscaling function (pwm_autoscale = 1, pwm_autograd = 1)  
regulates the motor current to the desired current setting. Automatic scaling is used as part of the  
automatic tuning process (AT), and for subsequent tracking of changes within the motor parameters.  
The driver measures the motor current during the chopper on time and uses a proportional regulator  
to regulate PWM_SCALE_AUTO in order match the motor current to the target current. PWM_REG is the  
proportionality coefficient for this regulator. Basically, the proportionality coefficient should be as small  
as possible in order to get a stable and soft regulation behavior, but it must be large enough to allow  
the driver to quickly react to changes caused by variation of the motor target current (e.g. change of  
VREF). During initial tuning step AT#2, PWM_REG also compensates for the change of motor velocity.  
Therefore, a high acceleration during AT#2 will require a higher setting of PWM_REG. With careful  
selection of homing velocity and acceleration, a minimum setting of the regulation gradient often is  
sufficient (PWM_REG=1). PWM_REG setting should be optimized for the fastest required acceleration and  
deceleration ramp (compare Figure 6.3 and Figure 6.4). The quality of the setting PWM_REG in phase  
AT#2 and the finished automatic tuning procedure (or non-automatic settings for PWM_OFS and  
PWM_GRAD) can be examined when monitoring motor current during an acceleration phase Figure 6.5.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
38  
Figure 6.3 Scope shot: good setting for PWM_REG  
Figure 6.4 Scope shot: too small setting for PWM_REG during AT#2  
Motor Current  
PWM scale  
Motor Velocity  
PWM reaches max. amplitude  
255  
P
)
k
W
k
o
RMS current constant  
o
M
2
)
_
#
(IRUN)  
O
G
T
Nominal Current  
(sine wave RMS)  
T
R
A
U
E
A
g
A
D
_
n
(
i
(
r
_
D
u
A
A
d
U
R
Current may drop due  
to high velocity  
T
G
G
O
_
)
R
M
IHOLD  
_
o
W
M
W
k
P
Stand still  
PWM scale  
PWM_OFS_(AUTO)(Pok  
PWM_OFS_(AUTO) ok  
0
0
Time  
Figure 6.5 Successfully determined PWM_GRAD(_AUTO) and PWM_OFS(_AUTO)  
www.trinamic.com  
 
 
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
39  
Quick Start  
For a quick start, see the Quick Configuration Guide in chapter 16.  
6.3.1 Lower Current Limit  
The StealthChop current regulator imposes a lower limit for motor current regulation. As the coil current  
can be measured in the shunt resistor during chopper on phase only, a minimum chopper duty cycle  
allowing coil current regulation is given by the blank time as set by TBL and by the chopper frequency  
setting. Therefore, the motor specific minimum coil current in StealthChop autoscaling mode rises with  
the supply voltage and with the chopper frequency. A lower blanking time allows a lower current limit.  
It is important for the correct determination of PWM_OFS_AUTO, that in AT#1 the run current set by the  
sense resistor, VREF and IRUN is well within the regulation range. Lower currents (e.g. for standstill  
power down) are automatically realized based on PWM_OFS_AUTO and PWM_GRAD_AUTO respectively  
based on PWM_OFS and PWM_GRAD with non-automatic current scaling. The freewheeling option allows  
going to zero motor current.  
Lower motor coil current limit for StealthChop2 automatic tuning:  
푀  
퐿표푤푒푟 퐿푖푚푖푡 = ꢀ퐵퐿퐴푁퐾 ∗ 푓  
푃푊푀  
ꢁ푂ꢂ퐿  
With VM the motor supply voltage and RCOIL the motor coil resistance.  
ILower Limit can be treated as a thumb value for the minimum nominal IRUN motor current setting.  
EXAMPLE:  
A motor has a coil resistance of 5Ω, the supply voltage is 24V. With TBL=%01 and PWM_FREQ=%00, tBLANK  
is 24 clock cycles, fPWM is 2/(1024 clock cycles):  
ꢃ4푉  
ꢃ4 ꢃ4푉  
∗ = ꢃꢃ5ꢆꢇ  
퐿표푤푒푟 퐿푖푚푖푡 = ꢃ4 ꢀꢁ퐿퐾  
=
ꢄꢅꢃ4 ꢀꢁ퐿퐾 5Ω  
5ꢄꢃ 5Ω  
This means, the motor target current for automatic tuning must be 225mA or more, taking into account  
all relevant settings. This lower current limit also applies for modification of the motor current via the  
analog input VREF.  
Attention  
For automatic tuning, a lower coil current limit applies. The motor current in automatic tuning phase  
AT#1 must exceed this lower limit. ILOWER LIMIT can be calculated or measured using a current probe.  
Setting the motor run-current or hold-current below the lower current limit during operation by  
modifying IRUN and IHOLD is possible after successful automatic tuning.  
With StealthChop, ensure that IRUN is in the range 8 to 31. Set vsense to yield lower current setting!  
The lower current limit also limits the capability of the driver to respond to changes of VREF.  
UART  
6.4 Velocity Based Scaling  
Velocity based scaling scales the StealthChop amplitude based on the time between each two steps,  
i.e. based on TSTEP, measured in clock cycles. This concept basically does not require a current  
measurement, because no regulation loop is necessary. A pure velocity-based scaling is available via  
UART programming, only, when setting pwm_autoscale = 0. The basic idea is to have a linear  
approximation of the voltage required to drive the target current into the motor. The stepper motor has  
a certain coil resistance and thus needs a certain voltage amplitude to yield a target current based on  
the basic formula I=U/R. With R being the coil resistance, U the supply voltage scaled by the PWM value,  
the current I results. The initial value for PWM_AMPL can be calculated:  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
40  
374 ∗ 푅ꢁ푂ꢂ퐿 ∗ 퐼ꢁ푂ꢂ퐿  
푀  
ꢈꢉꢊ_ꢇꢊꢈꢋ =  
With VM the motor supply voltage and ICOIL the target RMS current  
The effective PWM voltage UPWM (1/SQRT(2) x peak value) results considering the 8 bit resolution and 248  
sine wave peak for the actual PWM amplitude shown as PWM_SCALE:  
ꢈꢉꢊ_푆퐶ꢇꢋ퐸 ꢃ4ꢌ  
ꢈꢉꢊ_푆퐶ꢇꢋ퐸  
374  
푃푊푀 = ∗  
= ∗  
ꢃ56  
ꢃ56  
With rising motor velocity, the motor generates an increasing back EMF voltage. The back EMF voltage  
is proportional to the motor velocity. It reduces the PWM voltage effective at the coil resistance and  
thus current decreases. The TMC2226 provides a second velocity dependent factor (PWM_GRAD) to  
compensate for this. The overall effective PWM amplitude (PWM_SCALE_SUM) in this mode automatically  
is calculated in dependence of the microstep frequency as:  
ꢎ푇ꢏ푃  
ꢈꢉꢊ_푆퐶ꢇꢋ퐸_푆푈ꢊ = ꢈꢉꢊ_ꢍ퐹푆 + ꢈꢉꢊ_퐺푅ꢇ퐷 ∗ ꢃ56 ∗  
ꢁ퐿퐾  
With fSTEP being the microstep frequency for 256 microstep resolution equivalent  
and fCLK the clock frequency supplied to the driver or the actual internal frequency  
As a first approximation, the back EMF subtracts from the supply voltage and thus the effective current  
amplitude decreases. This way, a first approximation for PWM_GRAD setting can be calculated:  
∗ ꢄ.46  
ꢁ퐿퐾  
ꢈꢉꢊ_퐺푅ꢇ퐷 = 퐶퐵ꢏ푀ꢐ  
[
] ∗ ꢃ휋 ∗  
ꢑ푎푑  
∗ ꢊ푆ꢈ푅  
CBEMF is the back EMF constant of the motor in Volts per radian/second.  
MSPR is the number of microsteps per rotation, e.g. 51200 = 256µsteps multiplied by 200 fullsteps for a  
1.8° motor.  
Motor current  
PWM scaling  
PWM reaches  
(PWM_SCALE_SUM)  
max. amplitude  
255  
D
A
R
G
Constant motor  
RMS current  
_
M
W
P
Nominal current  
(e.g. sine wave RMS)  
PWM_OFS  
0
0
VPWMMAX  
Velocity  
Figure 6.6 Velocity based PWM scaling (pwm_autoscale=0)  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
41  
Hint  
The values for PWM_OFS and PWM_GRAD can easily be optimized by tracing the motor current with a  
current probe on the oscilloscope. Alternatively, automatic tuning determines these values and they can  
be read out from PWM_OFS_AUTO and PWM_GRAD_AUTO.  
UNDERSTANDING THE BACK EMF CONSTANT OF A MOTOR  
The back EMF constant is the voltage a motor generates when turned with a certain velocity. Often  
motor datasheets do not specify this value, as it can be deducted from motor torque and coil current  
rating. Within SI units, the back EMF constant CBEMF has the same numeric value as the torque constant.  
For example, a motor with a torque constant of 1 Nm/A would have a CBEMF of 1V/rad/s. Turning such a  
motor with 1 rps (1 rps = 1 revolution per second = 6.28 rad/s) generates a back EMF voltage of 6.28V.  
Thus, the back EMF constant can be calculated as:  
퐻ꢔ푙푑ꢕ푛푔ꢖꢔꢑ푞푢ꢗ ꢙꢆ  
퐵ꢏ푀ꢐ  
ꢓ =  
ꢑ푎푑/푠  
ꢃ ∗ 퐼ꢁ푂ꢂ퐿푁푂ꢘꢇꢚ  
ICOILNOM is the motor’s rated phase current for the specified holding torque  
HoldingTorque is the motor specific holding torque, i.e. the torque reached at ICOILNOM on both coils. The  
torque unit is [Nm] where 1Nm = 100Ncm = 1000mNm.  
The BEMF voltage is valid as RMS voltage per coil, thus the nominal current has a factor of 2 in this  
formula.  
UART  
OTP  
6.5 Combine StealthChop and SpreadCycle  
For applications requiring high velocity motion, SpreadCycle may bring more stable operation in the  
upper velocity range. To combine no-noise operation with highest dynamic performance, the TMC2226  
allows combining StealthChop and SpreadCycle based on a velocity threshold (Figure 6.7). A velocity  
threshold (TPWMTHRS) can be preprogrammed to OTP to support this mode even in standalone  
operation. With this, StealthChop is only active at low velocities.  
Chopper mode  
stealthChop  
spreadCycle  
option  
option  
v
TSTEP < TPWMTHRS*16/16  
TSTEP > TPWMTHRS  
0
t
current  
I_RUN  
I_HOLD  
VACTUAL  
~1/TSTEP  
RMS current  
TRINAMIC, B. Dwersteg, 14.3.14  
Figure 6.7 TPWMTHRS for optional switching to SpreadCycle  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
42  
As a first step, both chopper principles should be parameterized and optimized individually (SpreadCycle  
settings may be programmed to OTP memory). In a next step, a transfer velocity has to be fixed. For  
example, StealthChop operation is used for precise low speed positioning, while SpreadCycle shall be  
used for highly dynamic motion. TPWMTHRS determines the transition velocity. Read out TSTEP when  
moving at the desired velocity and program the resulting value to TPWMTHRS. Use a low transfer  
velocity to avoid a jerk at the switching point.  
A jerk occurs when switching at higher velocities, because the back-EMF of the motor (which rises with  
the velocity) causes a phase shift of up to 90° between motor voltage and motor current. So when  
switching at higher velocities between voltage PWM and current PWM mode, this jerk will occur with  
increased intensity. A high jerk may even produce a temporary overcurrent condition (depending on the  
motor coil resistance). At low velocities (e.g. 1 to a few 10 RPM), it can be completely neglected for  
most motors. Therefore, consider the switching jerk when choosing TPWMTHRS. Set TPWMTHRS zero if  
you want to work with StealthChop only.  
When enabling the StealthChop mode the first time using automatic current regulation, the motor must  
be at stand still in order to allow a proper current regulation. When the drive switches to StealthChop  
at a higher velocity, StealthChop logic stores the last current regulation setting until the motor returns  
to a lower velocity again. This way, the regulation has a known starting point when returning to a  
lower velocity, where StealthChop becomes re-enabled. Therefore, neither the velocity threshold nor the  
supply voltage must be considerably changed during the phase while the chopper is switched to a  
different mode, because otherwise the motor might lose steps or the instantaneous current might be  
too high or too low.  
A motor stall or a sudden change in the motor velocity may lead to the driver detecting a short circuit  
or to a state of automatic current regulation, from which it cannot recover. Clear the error flags and  
restart the motor from zero velocity to recover from this situation.  
Hint  
Start the motor from standstill when switching on StealthChop the first time and keep it stopped for  
at least 128 chopper periods to allow StealthChop to do initial standstill current control.  
UART  
6.6 Flags in StealthChop  
As StealthChop uses voltage mode driving, status flags based on current measurement respond slower,  
respectively the driver reacts delayed to sudden changes of back EMF, like on a motor stall.  
Attention  
A motor stall, or abrupt stop of the motion during operation in StealthChop can trigger an overcurrent  
condition. Depending on the previous motor velocity, and on the coil resistance of the motor, it  
significantly increases motor current for a time of several 10ms. With low velocities, where the back  
EMF is just a fraction of the supply voltage, there is no danger of triggering the short detection. When  
homing using StallGuard4 to stop the motor upon stall, this is basically avoided.  
6.6.1 Open Load Flags  
In StealthChop mode, status information is different from the cycle-by-cycle regulated SpreadCycle mode.  
OLA and OLB show if the current regulation sees that the nominal current can be reached on both coils.  
-
-
-
A flickering OLA or OLB can result from asymmetries in the sense resistors or in the motor coils.  
An interrupted motor coil leads to a continuously active open load flag for the coil.  
One or both flags are active, if the current regulation did not succeed in scaling up to the full  
target current within the last few fullsteps (because no motor is attached or a high velocity  
exceeds the PWM limit).  
If desired, do an on-demand open load test using the SpreadCycle chopper, as it delivers the safest  
result. With StealthChop, PWM_SCALE_SUM can be checked to detect the correct coil resistance.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
43  
6.6.2 PWM_SCALE_SUM Informs about the Motor State  
Information about the motor state is available with automatic scaling by reading out PWM_SCALE_SUM.  
As this parameter reflects the actual voltage required to drive the target current into the motor, it  
depends on several factors: motor load, coil resistance, supply voltage, and current setting. Therefore,  
an evaluation of the PWM_SCALE_SUM value allows checking the motor operation point. When reaching  
the limit (255), the current regulator cannot sustain the full motor current, e.g. due to a drop in supply  
volage.  
UART  
6.7 Freewheeling and Passive Braking  
StealthChop provides different options for motor standstill. These options can be enabled by setting  
the standstill current IHOLD to zero and choosing the desired option using the FREEWHEEL setting. The  
desired option becomes enabled after a time period specified by TPOWERDOWN and IHOLD_DELAY.  
Current regulation becomes frozen once the motor target current is at zero current in order to ensure  
a quick startup. With the freewheeling options, both freewheeling and passive braking can be realized.  
Passive braking is an effective eddy current motor braking, which consumes a minimum of energy,  
because no active current is driven into the coils. However, passive braking will allow slow turning of  
the motor when a continuous torque is applied.  
Hint  
Operate the motor within your application when exploring StealthChop. Motor performance often is  
better with a mechanical load, because it prevents the motor from stalling due mechanical oscillations  
which can occur without load.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
44  
PARAMETERS RELATED TO STEALTHCHOP  
Parameter  
en_spread_ General disable for use of StealthChop (register 1  
cycle GCONF). The input SPREAD is XORed to this flag.  
TPWMTHRS Specifies the upper velocity for operation in 0 …  
Description  
Setting Comment  
Do not use StealthChop  
0
StealthChop enabled  
StealthChop is disabled if  
StealthChop. Entry the TSTEP reading (time between 1048575 TSTEP falls TPWMTHRS  
two microsteps) when operating at the desired  
threshold velocity.  
PWM_LIM  
Limiting value for limiting the current jerk when 0 … 15  
switching from SpreadCycle to StealthChop. Reduce  
the value to yield a lower current jerk.  
Upper four bits of 8 bit  
amplitude limit  
(Default=12)  
pwm_  
autoscale  
Enable automatic current scaling using current 0  
Forward controlled mode  
Automatic scaling with  
current regulator  
disable, use PWM_GRAD  
from register instead  
enable  
measurement or use forward controlled velocity  
1
0
1
based mode.  
pwm_  
autograd  
Enable automatic tuning of PWM_GRAD_AUTO  
PWM_FREQ PWM frequency selection. Use the lowest setting 0  
fPWM=2/1024 fCLK  
fPWM=2/683 fCLK  
fPWM=2/512 fCLK  
fPWM=2/410 fCLK  
giving good results. The frequency measured at  
1
2
3
each of the chopper outputs is half of the effective  
chopper frequency fPWM  
.
PWM_REG  
PWM_OFS  
User defined PWM amplitude (gradient) for velocity 1 … 15  
based scaling or regulation loop gradient when  
pwm_autoscale=1.  
Results in 0.5 to 7.5 steps  
for PWM_SCALE_AUTO  
regulator per fullstep  
User defined PWM amplitude (offset) for velocity 0 … 255 PWM_OFS=0 disables  
based scaling and initialization value for automatic  
tuning of PWM_OFFS_AUTO.  
linear current scaling  
based on current setting  
PWM_GRAD User defined PWM amplitude (gradient) for velocity 0 … 255 Reset value can be pre-  
based scaling and initialization value for automatic  
programmed by OTP  
tuning of PWM_GRAD_AUTO.  
FREEWHEEL Stand still option when motor current setting is 0  
Normal operation  
zero (I_HOLD=0). Only available with StealthChop  
enabled. The freewheeling option makes the motor  
easy movable, while both coil short options realize  
a passive brake.  
1
2
3
Freewheeling  
Coil short via LS drivers  
Coil short cia HS drivers  
PWM_SCALE Read back of the actual StealthChop voltage PWM -255 …  
(read only) Scaling value  
becomes frozen when  
operating in SpreadCycle  
_AUTO  
scaling correction as determined by the current 255  
regulator. Should regulate to a value close to 0  
during tuning procedure.  
PWM_GRAD Allow monitoring of the automatic tuning and 0 … 255 (read only)  
_AUTO  
PWM_OFS  
_AUTO  
TOFF  
determination of initial values for PWM_OFS and  
PWM_GRAD.  
General enable for the motor driver, the actual 0  
value does not influence StealthChop  
Comparator blank time. This time needs to safely 0  
Driver off  
Driver enabled  
16 tCLK  
1 … 15  
TBL  
cover the switching event and the duration of the  
ringing on the sense resistor. Choose a setting of 1  
or 2 for typical applications. For higher capacitive  
loads, 3 may be required. Lower settings allow  
StealthChop to regulate down to lower coil current  
values.  
1
2
3
24 tCLK  
32 tCLK  
40 tCLK  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
45  
7 SpreadCycle Chopper  
While StealthChop is a voltage mode PWM controlled chopper, SpreadCycle is a cycle-by-cycle current  
control. Therefore, it can react extremely fast to changes in motor velocity or motor load. SpreadCycle  
will give better performance in medium to high velocity range for motors and applications which tend  
to resonance. The currents through both motor coils are controlled using choppers. The choppers work  
independently of each other. In Figure 7.1 the different chopper phases are shown.  
+VM  
+VM  
+VM  
ICOIL  
ICOIL  
ICOIL  
RSENSE  
RSENSE  
RSENSE  
On Phase:  
Fast Decay Phase:  
current flows in  
opposite direction  
of target current  
Slow Decay Phase:  
current re-circulation  
current flows in  
direction of target  
current  
Figure 7.1 Chopper phases  
Although the current could be regulated using only on phases and fast decay phases, insertion of the  
slow decay phase is important to reduce electrical losses and current ripple in the motor. The duration  
of the slow decay phase is specified in a control parameter and sets an upper limit on the chopper  
frequency. The current comparator can measure coil current during phases when the current flows  
through the sense resistor, but not during the slow decay phase, so the slow decay phase is terminated  
by a timer. The on phase is terminated by the comparator when the current through the coil reaches  
the target current. The fast decay phase may be terminated by either the comparator or another timer.  
When the coil current is switched, spikes at the sense resistors occur due to charging and discharging  
parasitic capacitances. During this time, typically one or two microseconds, the current cannot be  
measured. Blanking is the time when the input to the comparator is masked to block these spikes.  
The SpreadCycle chopper mode cycles through four phases: on, slow decay, fast decay, and a second  
slow decay.  
The chopper frequency is an important parameter for a chopped motor driver. A too low frequency  
might generate audible noise. A higher frequency reduces current ripple in the motor, but with a too  
high frequency magnetic losses may rise. Also power dissipation in the driver rises with increasing  
frequency due to the increased influence of switching slopes causing dynamic dissipation. Therefore, a  
compromise needs to be found. Most motors are optimally working in a frequency range of 16 kHz to  
30 kHz. The chopper frequency is influenced by a number of parameter settings as well as by the motor  
inductivity and supply voltage.  
Hint  
A chopper frequency in the range of 16 kHz to 30 kHz gives a good result for most motors when using  
SpreadCycle. A higher frequency leads to increased switching losses.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
46  
UART  
OTP  
7.1 SpreadCycle Settings  
The SpreadCycle (patented) chopper algorithm is a precise and simple to use chopper mode which  
automatically determines the optimum length for the fast-decay phase. The SpreadCycle will provide  
superior microstepping quality even with default settings. Several parameters are available to optimize  
the chopper to the application.  
Each chopper cycle is comprised of an on phase, a slow decay phase, a fast decay phase and a second  
slow decay phase (see Figure 7.3). The two slow decay phases and the two blank times per chopper  
cycle put an upper limit to the chopper frequency. The slow decay phases typically make up for about  
30%-70% of the chopper cycle in standstill and are important for low motor and driver power dissipation.  
Calculation of a starting value for the slow decay time TOFF:  
EXAMPLE:  
Target Chopper frequency: 25kHz.  
Assumption: Two slow decay cycles make up for 50% of overall chopper cycle time  
5ꢅ  
푂ꢐꢐ  
=
= ꢄꢅµ푠  
ꢃ5푘퐻푧 ꢄꢅꢅ  
For the TOFF setting this means:  
ꢖꢍ퐹퐹 = (ꢀ푂ꢐꢐ ∗ 푓 − ꢃ4)/3ꢃ  
ꢁ퐿퐾  
With 12 MHz clock this gives a setting of TOFF=3.0, i.e. 3.  
With 16 MHz clock this gives a setting of TOFF=4.25, i.e. 4 or 5.  
The hysteresis start setting forces the driver to introduce a minimum amount of current ripple into the  
motor coils. The current ripple must be higher than the current ripple which is caused by resistive losses  
in the motor in order to give best microstepping results. This will allow the chopper to precisely regulate  
the current both for rising and for falling target current. The time required to introduce the current  
ripple into the motor coil also reduces the chopper frequency. Therefore, a higher hysteresis setting will  
lead to a lower chopper frequency. The motor inductance limits the ability of the chopper to follow a  
changing motor current. Further the duration of the on phase and the fast decay must be longer than  
the blanking time, because the current comparator is disabled during blanking.  
It is easiest to find the best setting by starting from a low hysteresis setting (e.g. HSTRT=0, HEND=0)  
and increasing HSTRT, until the motor runs smoothly at low velocity settings. This can best be checked  
when measuring the motor current either with a current probe or by probing the sense resistor voltages  
(see Figure 7.2). Checking the sine wave shape near zero transition will show a small ledge between  
both half waves in case the hysteresis setting is too small. At medium velocities (i.e. 100 to 400 fullsteps  
per second), a too low hysteresis setting will lead to increased humming and vibration of the motor.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
47  
Figure 7.2 No ledges in current wave with sufficient hysteresis (magenta: current A, yellow & blue:  
sense resistor voltages A and B)  
A too high hysteresis setting will lead to reduced chopper frequency and increased chopper noise but  
will not yield any benefit for the wave shape.  
Quick Start  
For a quick start, see the Quick Configuration Guide in chapter 16.  
For detail procedure see Application Note AN001 - Parameterization of SpreadCycle  
As experiments show, the setting is quite independent of the motor, because higher current motors  
typically also have a lower coil resistance. Therefore, choosing a low to medium default value for the  
hysteresis (for example, effective hysteresis = 4) normally fits most applications. The setting can be  
optimized by experimenting with the motor: A too low setting will result in reduced microstep accuracy,  
while a too high setting will lead to more chopper noise and motor power dissipation. When measuring  
the sense resistor voltage in motor standstill at a medium coil current with an oscilloscope, a too low  
setting shows a fast decay phase not longer than the blanking time. When the fast decay time becomes  
slightly longer than the blanking time, the setting is optimum. You can reduce the off-time setting, if  
this is hard to reach.  
The hysteresis principle could in some cases lead to the chopper frequency becoming too low, e.g.  
when the coil resistance is high when compared to the supply voltage. This is avoided by splitting the  
hysteresis setting into a start setting (HSTRT+HEND) and an end setting (HEND). An automatic hysteresis  
decrementer (HDEC) interpolates between both settings, by decrementing the hysteresis value stepwise  
each 16 system clocks. At the beginning of each chopper cycle, the hysteresis begins with a value which  
is the sum of the start and the end values (HSTRT+HEND), and decrements during the cycle, until either  
the chopper cycle ends or the hysteresis end value (HEND) is reached. This way, the chopper frequency  
is stabilized at high amplitudes and low supply voltage situations, if the frequency gets too low. This  
avoids the frequency reaching the audible range.  
Hint  
Highest motor velocities sometimes benefit from setting TOFF to 1 or 2 and a short TBL of 1 or 0.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
48  
I
H
D
E
C
target current + hysteresis start  
target current + hysteresis end  
target current  
target current - hysteresis end  
target current - hysteresis start  
on  
sd  
fd  
sd  
t
Figure 7.3 SpreadCycle chopper scheme showing coil current during a chopper cycle  
These parameters control SpreadCycle mode:  
Parameter  
Description  
Setting Comment  
Sets the slow decay time (off time). This setting also  
limits the maximum chopper frequency.  
TOFF  
0
chopper off  
off time setting  
NCLK= 24 + 32*TOFF  
(1 will work with minimum  
1…15  
For operation with StealthChop, this parameter is not  
used, but it is required to enable the motor. In case  
of operation with StealthChop only, any setting is OK.  
Setting this parameter to zero completely disables all  
driver transistors and the motor can free-wheel.  
blank time of 24 clocks)  
TBL  
Comparator blank time. This time needs to safely 0  
16 tCLK  
24 tCLK  
32 tCLK  
cover the switching event and the duration of the  
ringing on the sense resistor. For most applications,  
1
2
a setting of 1 or 2 is good. For highly capacitive  
loads, a setting of 2 or 3 will be required.  
3
40 tCLK  
Hysteresis start setting. This value is an offset from  
the hysteresis end value HEND.  
HSTRT  
HEND  
0…7  
HSTRT=1…8  
This value adds to HEND.  
-3…-1: negative HEND  
0: zero HEND  
Hysteresis end setting. Sets the hysteresis end value  
after a number of decrements. The sum HSTRT+HEND  
must be 16. At a current setting of max. 30 (amplitude  
reduced to 240), the sum is not limited.  
0…2  
3
4…15  
1…12: positive HEND  
Even at HSTRT=0 and HEND=0, the TMC2226 sets a minimum hysteresis via analog circuitry.  
EXAMPLE:  
A hysteresis of 4 has been chosen. You might decide to not use hysteresis decrement. In this case set:  
HEND=6  
HSTRT=0  
(sets an effective end value of 6-3=3)  
(sets minimum hysteresis, i.e. 1: 3+1=4)  
In order to take advantage of the variable hysteresis, we can set most of the value to the HSTRT, i.e. 4,  
and the remaining 1 to hysteresis end. The resulting configuration register values are as follows:  
HEND=0  
HSTRT=6  
(sets an effective end value of -3)  
(sets an effective start value of hysteresis end +7: 7-3=4)  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
49  
8 Selecting Sense Resistors  
Set the desired maximum motor current by selecting an appropriate value for the sense resistor. The  
following table shows the RMS current values which can be reached using standard resistors and motor  
types fitting without additional motor current scaling.  
CHOICE OF RSENSE AND RESULTING MAX. MOTOR CURRENT  
RSENSE [Ω]  
RMS current [A]  
Fitting motor type  
VREF=2.5V (or open),  
(examples)  
IRUN=31,  
vsense=0 (standard)  
1.00  
0.82  
0.75  
0.68  
0.23  
0.27  
0.30  
0.33  
0.44  
0.47  
0.56  
0.66  
0.79  
0.96  
1.15  
1.35  
1.64  
1.92  
2.4*)  
300mA motor  
400mA motor  
0.50  
470m  
390m  
330m  
270m  
220m  
180m  
150m  
120m  
100m  
75m  
500mA motor  
600mA motor  
700mA motor  
800mA motor  
1A motor  
1.2A motor  
1.5A motor  
1.7A motor  
2A motor  
*) Value exceeds upper current rating, scaling down required, e.g. by reduced VREF.  
Sense resistors should be carefully selected. The full motor current flows through the sense resistors.  
Due to chopper operation the sense resistors see pulsed current from the MOSFET bridges. Therefore, a  
low-inductance type such as film or composition resistors is required to prevent voltage spikes causing  
ringing on the sense voltage inputs leading to unstable measurement results. Also, a low-inductance,  
low-resistance PCB layout is essential. Any common GND path for the two sense resistors must be  
avoided, because this would lead to coupling between the two current sense signals. A massive ground  
plane is best. Please also refer to layout considerations in chapter 21.  
The sense resistor needs to be able to conduct the peak motor coil current in motor standstill conditions,  
unless standby power is reduced. Under normal conditions, the sense resistor conducts less than the  
coil RMS current, because no current flows through the sense resistor during the slow decay phases. A  
0.5W type is sufficient for most applications up to 1.2A RMS current.  
Attention  
Be sure to use a symmetrical sense resistor layout and short and straight sense resistor traces of  
identical length. Well matching sense resistors ensure best performance.  
A compact layout with massive ground plane is best to avoid parasitic resistance effects.  
Check the resulting motor current in a practical application and with the desired motor.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
50  
9 Motor Current Control  
The basic motor current is set by the resistance of the sense resistors. Several possibilities allow scaling  
down motor current, e.g. to adapt for different motors, or to reduce motor current in standstill or low  
load situations.  
METHODS FOR SCALING MOTOR CURRENT  
Method  
Pin VREF  
voltage  
Parameters  
VREF input scales 2.5V: 100% …  
IRUN and IHOLD. 0.5V: 20%  
Range  
Primary Use  
-
Fine tuning of motor current to  
fit the motor type  
(chapter 9.1)  
Can be disabled by >2.5V or open: 100%  
GCONF.i_scale_analog <0.5V: not recommended  
-
-
-
Manual tuning via poti  
Delayed or soft power-up  
Standstill current reduction  
(preferred  
only  
with  
SpreadCycle)  
Pin ENN  
Disable  
driver stage  
/
enable 0: Motor enable  
1: Motor disable  
enable 0: Standstill current  
current reduction enabled.  
-
-
Disable  
freewheeling  
Enable current reduction to  
reduce heat up in stand still  
motor  
to  
allow  
Pin PDN_UART Disable  
standstill  
/
reduction to IHOLD  
1: Disable  
OTP memory  
OTP_IHOLD,  
OTP_IHOLDDELAY  
9% to 78% standby  
current.  
Reduction in about  
300ms to 2.5s  
0: Use sense resistors  
1: Internal resistors  
-
-
Program current reduction to  
fit application for highest  
efficiency and lowest heat up  
OTP memory  
otp_internalRsense  
Save two sense resistors on  
BOM, set current by single  
inexpensive 0603 resistor.  
Fine programming of run and  
hold (stand still) current  
UART interface IHOLD_IRUN  
IRUN, IHOLD:  
1/32 to 32/32 of full  
scale current.  
-
-
TPOWERDOWN  
OTP  
Change IRUN for situation  
specific motor current  
Set OTP options  
Set vsense for half power  
dissipation in sense resistor to  
use smaller 0.25W resistors.  
-
-
UART interface CHOPCONF.vsense  
0: Normal, most robust  
1: Reduced voltage level  
flag  
Select the sense resistor to deliver enough current for the motor at full current scale (VREF=2.5V). This  
is the default current scaling (IRUN = 31).  
STANDALONE MODE RMS RUN CURRENT CALCULATION:  
3ꢃ5ꢆ푉  
ꢜꢛꢏꢐ  
ꢃ.5푉  
ꢛ푀ꢎ  
=
ꢎꢏ푁ꢎꢏ + ꢃꢅꢆΩ  
IRUN and IHOLD allow for scaling of the actual current scale (CS) from 1/32 to 32/32 when using UART  
interface, or via automatic standstill current reduction:  
RMS CURRENT CALCULATION WITH UART CONTROL OPTIONS OR HOLD CURRENT SETTING:  
퐶푆 + ꢄ  
3ꢃ  
ꢐꢎ  
ꢛ푀ꢎ  
=
ꢎꢏ푁ꢎꢏ + ꢃꢅꢆΩ  
CS is the current scale setting as set by the IHOLD and IRUN.  
VFS is the full scale voltage as determined by vsense control bit (please refer to electrical characteristics,  
VSRTL and VSRTH). Default is 325mV.  
With analog scaling of VFS (I_scale_analog=1, default), the resulting voltage VFS‘ is calculated by:  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
51  
ꢜꢛꢏꢐ  
ꢃ.5푉  
= 푉  
ꢐꢎ  
ꢐꢎ  
with VVREF the voltage on pin VREF in the range 0V to V5VOUT/2  
Hint  
For best precision of current setting, measure and fine tune the current in the application.  
PARAMETERS FOR MOTOR CURRENT CONTROL  
Parameter  
Description  
Setting Comment  
IRUN  
Current scale when motor is running. Scales coil 0 … 31  
current values as taken from the internal sine wave  
table. For high precision motor operation, work  
with a current scaling factor in the range 16 to 31,  
because scaling down the current values reduces  
the effective microstep resolution by making  
microsteps coarser.  
scaling factor  
1/32, 2/32, … 32/32  
IRUN is full scale (setting  
31) in standalone mode.  
IHOLD  
IHOLD  
DELAY  
Identical to IRUN, but for motor in stand still.  
Allows smooth current reduction from run current 0  
instant IHOLD  
1*218 … 15*218  
clocks per current  
decrement  
to hold current. IHOLDDELAY controls the number  
of clock cycles for motor power down after  
TPOWERDOWN in increments of 2^18 clocks:  
0=instant power down, 1..15: Current reduction  
delay per current step in multiple of 2^18 clocks.  
1 … 15  
Example: When using IRUN=31 and IHOLD=16, 15  
current steps are required for hold current  
reduction. A IHOLDDELAY setting of 4 thus results  
in a power down time of 4*15*2^18 clock cycles, i.e.  
roughly one second at 16MHz clock frequency.  
TPOWER  
DOWN  
Sets the delay time from stand still (stst) detection 0 … 255 0…((2^8)-1) * 2^18 tCLK  
to motor current power down. Time range is about  
0 to 5.6 seconds.  
A minimum setting of 2 is  
required  
to  
tuning  
allow  
of  
automatic  
PWM_OFFS_AUTO  
vsense  
Allows control of the sense resistor voltage range 0  
VFS = 0.32 V  
for full scale current. The low voltage range allows  
1
VFS = 0.18 V  
a reduction of sense resistor power dissipation.  
9.1 Analog Current Scaling VREF  
When a high flexibility of the output current scaling is desired, the analog input of the driver can be  
used for current control, rather than choosing a different set of sense resistors or scaling down the run  
current via the interface using IRUN or IHOLD parameters. This way, a simple voltage divider adapts a  
board to different motors.  
VREF SCALES THE MOTOR CURRENT  
The TMC2226 provides an internal reference voltage for current control, directly derived from the 5VOUT  
supply output. Alternatively, an external reference voltage can be used. This reference voltage becomes  
scaled down for the chopper comparators. The chopper comparators compare the voltages on BRA and  
BRB to the scaled reference voltage for current regulation. When I_scale_analog in GCONF is enabled  
(default), the external voltage on VREF is amplified and filtered and becomes used as reference voltage.  
A voltage of 2.5V (or any voltage between 2.5V and 5V) gives the same current scaling as the internal  
reference voltage. A voltage between 0V and 2.5V linearly scales the current between 0 and the current  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
52  
scaling defined by the sense resistor setting. It is not advised to work with reference voltages below  
about 0.5V to 1V for full scale, because relative analog noise caused by digital circuitry and power  
supply ripple has an increased impact on the chopper precision at low VREF voltages. For best precision,  
choose the sense resistors in a way that the desired maximum current is reached with VREF in the  
range 2V to 2.4V. Be sure to optimize the chopper settings for the normal run current of the motor.  
DRIVING VREF  
The easiest way to provide a voltage to VREF is to use a voltage divider from a stable supply voltage  
or a microcontroller’s DAC output. A PWM signal also allows current control. The PWM becomes  
transformed to an analog voltage using an additional R/C low-pass at the VREF pin. The PWM duty cycle  
controls the analog voltage. Choose the R and C values to form a low pass with a corner frequency of  
several milliseconds while using PWM frequencies well above 10 kHz. VREF additionally provides an  
internal low-pass filter with 3.5kHz bandwidth.  
Hint  
Using a low reference voltage (e.g. below 1V), for adaptation of a high current driver to a low current  
motor will lead to reduced analog performance. Adapt the sense resistors to fit the desired motor  
current for the best result.  
2.5V  
precision  
reference  
1-2.4V for fixed  
current scaling  
0-2.4V for  
current scaling  
0-2.4V for  
current scaling  
Digital  
current  
control  
PWM output  
of µC with  
>20kHz  
5VOUT or precise  
reference voltage  
8 Bit DAC  
R1  
22k  
R2  
R3  
1µ  
R1+R2»10K  
Optional  
digital  
control  
BC847  
100k  
Analog Scaling  
Analog Scaling  
Analog Scaling  
Fixed resistor divider to set current scale  
(use external reference for enhanced precision)  
Precision current scaler  
Simple PWM based current scaler  
Figure 9.1 Scaling the motor current using the analog input  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
53  
UART  
OTP  
10 Internal Sense Resistors  
The TMC2226 provides the option to eliminate external sense resistors. In this mode the external sense  
resistors become omitted (shorted) and the internal on-resistance of the power MOSFETs is used for  
current measurement (see chapter 3.2). As MOSFETs are both, temperature dependent and subject to  
production stray, a tiny external resistor connected from +5VOUT to VREF provides a precise absolute  
current reference. This resistor converts the 5V voltage into a reference current. Be sure to directly attach  
BRA and BRB pins to GND in this mode near the IC package. The mode is enabled by setting  
internal_Rsense in GCONF (OTP option).  
COMPARING INTERNAL SENSE RESISTORS VS. SENSE RESISTORS  
Item  
Ease of use  
Internal Sense Resistors  
Need to set OTP parameter  
before motor enable  
External Sense Resistors  
(+) Default  
Cost  
(+) Save cost for sense resistors  
Slightly reduced  
200mA RMS to 1.4A RMS  
Current precision  
Current Range  
Recommended  
Recommended  
chopper  
(+) Good  
50mA to 2A RMS  
StealthChop or SpreadCycle  
SpreadCycle shows slightly more  
distortion at >1.4A RMS  
StealthChop or SpreadCycle  
While the RDSon based measurements bring benefits concerning cost and size of the driver, it gives  
slightly less precise coil current regulation when compared to external sense resistors. The internal  
sense resistors have a certain temperature dependence, which is automatically compensated by the  
driver IC. However, for high current motors, a temperature gradient between the ICs internal sense  
resistors and the compensation circuit will lead to an initial current overshoot of some 10% during  
driver IC heat up. While this phenomenon shows for roughly a second, it might even be beneficial to  
enable increased torque during initial motor acceleration.  
PRINCIPLE OF OPERATION  
A reference current into the VREF pin is used as reference for the motor current. In order to realize a  
certain current, a single resistor (RREF) can be connected between 5VOUT and VREF (pls. refer the table  
for the choice of the resistor). VREF input resistance is about 0.45kOhm. The resulting current into VREF  
is amplified 3000 times. Thus, a current of 0.33mA yields a motor current of 1.0A peak, or 0.7A RMS. For  
calculation of the reference resistor, the internal resistance of VREF needs to be considered additionally.  
CHOICE OF RREF FOR OPERATION WITHOUT SENSE RESISTORS  
RREF [Ω]  
Peak current [A]  
(CS=31, vsense=0)  
RMS current [A]  
(CS=31, vsense=0)  
6k2  
6k8  
7k5  
8k2  
9k1  
10k  
12k  
15k  
18k  
22k  
27k  
33k  
2.26  
1.92  
1.76  
1.63  
1.49  
1.36  
1.15  
0.94  
0.79  
0.65  
0.60  
0.54  
1.59  
1.35  
1.24  
1.15  
1.05  
0.96  
0.81  
0.66  
0.55  
0.45  
0.42  
0.38  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
54  
vsense=1 allows a lower peak current setting of about 55% of the value yielded with vsense=0 (as  
specified by VSRTH / VSRTL).  
In RDSon measurement mode, connect the BRA and BRB pins to GND using the shortest possible path  
(i.e. shortest possible PCB path). RDSon based measurement gives best results when combined with  
StealthChop. When using SpreadCycle with RDSon based current measurement, slightly asymmetric  
current measurement for positive currents (on phase) and negative currents (fast decay phase) may  
result in chopper noise. This especially occurs at high die temperature and increased motor current.  
Note  
The absolute current levels achieved with RDSon based current sensing may depend on PCB layout  
exactly like with external sense resistors, because trace resistance on BR pins will add to the effective  
sense resistance. Therefore, we recommend to measure and calibrate the current setting within the  
application.  
Thumb rule  
RDSon based current sensing works best for motors with up to 1.4A RMS current. The best results are  
yielded with StealthChop operation in combination with RDSon based current sensing.  
For most precise current control and for best results with SpreadCycle, it is recommended to use external  
1% sense resistors rather than RDSon based current control.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
55  
UART  
11 StallGuard4 Load Measurement  
StallGuard4 provides an accurate measurement of the load on the motor. It is developed for operation  
in conjunction with StealthChop. StallGuard can be used for stall detection as well as other uses at  
loads below those which stall the motor, such as CoolStep load-adaptive current reduction. The  
StallGuard4 measurement value changes linearly over a wide range of load, velocity, and current  
settings, as shown in Figure 11.1. When approaching maximum motor load, the value goes down to a  
motor-specific lower value. This corresponds to a load angle of 90° between the magnetic field of the  
coils and magnets in the rotor. This also is the most energy-efficient point of operation for the motor.  
500  
SG_RESULT reaches compare  
value and indicates danger of  
stall. This point is set by  
stallGuard threshold value  
SGTHRS.  
450  
400  
350  
300  
250  
200  
150  
100  
50  
StallGuard4 reading  
Start value depends  
on motor, velocity  
and operating current  
SG_RESULT  
100% load value depends on  
motor, operating current and  
velocity  
Stall detection  
threshold SGTHRS*2  
high  
Stall Output  
low  
Motor stalls above this point.  
Load angle exceeds 90° and  
available torque sinks.  
0
10  
20  
30  
40  
50  
60  
70  
80  
90 100  
motor load  
(% max. torque)  
Figure 11.1 Function principle of StallGuard4  
Parameter  
Description  
Setting Comment  
SGTHRS  
This value controls the StallGuard4 threshold level 0255 The double of this value is  
for stall detection. It compensates for motor  
specific characteristics and controls sensitivity. A  
higher value gives a higher sensitivity. A higher  
value makes StallGuard4 more sensitive and  
requires less torque to indicate a stall.  
compared to SG_RESULT.  
The stall output becomes  
active if SG_RESULT fall  
below this value.  
Status word Description  
SG_RESULT  
Range  
Comment  
This is the StallGuard4 result. A higher reading 0… 510 Low value: highest load  
indicates less mechanical load. A lower reading  
indicates a higher load and thus a higher load  
angle.  
High value: high load  
In order to use StallGuard4, check the sensitivity of the motor at border conditions.  
11.1 StallGuard4 vs. StallGuard2  
StallGuard4 is optimized for operation with StealthChop, its predecessor StallGuard2 works with  
SpreadCycle. The function is similar: Both deliver a load value, going from a high value at low load, to  
a low value at high load. While StallGuard2 becomes tuned to show a “0”-reading for stall detection,  
StallGuard4 uses a comparison-value to trigger stall detection, rather than shifting SG_RESULT itself.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
56  
11.2 Tuning StallGuard4  
The StallGuard4 value SG_RESULT is affected by motor-specific characteristics and application-specific  
demands on load, coil current, and velocity. Therefore, the easiest way to tune the StallGuard4 threshold  
SGTHRS for a specific motor type and operating conditions is interactive tuning in the actual application.  
INITIAL PROCEDURE FOR TUNING STALLGUARD SGTHRS  
1. Operate the motor at the normal operation velocity for your application and monitor SG_RESULT.  
2. Apply slowly increasing mechanical load to the motor. Check the lowest value of SG_RESULT before  
the motor stalls. Use this value as starting value for SGTHRS (apply half of the value).  
3. Now monitor the StallGuard output signal via DIAG output (configure properly, also set TCOOLTHRS  
to match the lower velocity limit for operation) and stop the motor when a pulse is seen on the  
respective output. Make sure, that the motor is safely stopped whenever it is stalled. Increase  
SGTHRS if the motor becomes stopped before a stall occurs.  
4. The optimum setting is reached when a stall is safely detected and leads to a pulse at DIAG in the  
moment where the stall occurs. SGTHRS in most cases can be tuned for a certain motion velocity  
or a velocity range. Make sure, that the setting works reliable in a certain range (e.g. 80% to 120%  
of desired velocity) and also under extreme motor conditions (lowest and highest applicable  
temperature).  
DIAG is pulsed by StallGuard, when SG_RESULT falls below SGTHRS. It is only enabled in StealthChop  
mode, and when TCOOLTHRS TSTEP > TPWMTHRS  
The external motion controller should react to a single pulse by stopping the motor if desired. Set  
TCOOLTHRS to match the lower velocity threshold where StallGuard delivers a good result.  
SG_RESULT measurement has a high resolution, and there are a few ways to enhance its accuracy, as  
described in the following sections.  
11.3 StallGuard4 Update Rate  
The StallGuard4 measurement value SG_RESULT is updated with each full step of the motor. This is  
enough to safely detect a stall, because a stall always means the loss of four full steps.  
11.4 Detecting a Motor Stall  
To safely detect a motor stall, the stall threshold must be determined using a specific SGTHRS setting  
and a specific motor velocity or velocity range. Further, the motor current setting has a certain influence  
and should not be modified, once optimum values are determined. Therefore, the maximum load needs  
to be determined the motor can drive without stalling. At the same time, monitor SG_RESULT at this  
load. The stall threshold should be a value safely within the operating limits, to allow for parameter  
stray. More refined evaluation may also react to a change of SG_RESULT rather than comparing to a  
fixed threshold. This will rule out certain effects which influence the absolute value.  
11.5 Limits of StallGuard4 Operation  
StallGuard4 does not operate reliably at extreme motor velocities: Very low motor velocities (for many  
motors, less than one revolution per second) generate a low back EMF and make the measurement  
unstable and dependent on environment conditions (temperature, etc.). Other conditions will also lead  
to a poor response of the measurement value SG_RESULT to the motor load. Very high motor velocities,  
in which the full sinusoidal current is not driven into the motor coils also leads to poor response. These  
velocities are typically characterized by the motor back EMF exceeding the supply voltage.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
57  
UART  
12 CoolStep Operation  
CoolStep is an automatic smart energy optimization for stepper motors based on the motor mechanical  
load, making them “green”.  
12.1 User Benefits  
Energy efficiency  
consumption decreased up to 75%  
improved mechanical precision  
for motor and driver  
Motor generates less heat  
Less cooling infrastructure  
Cheaper motor  
does the job!  
CoolStep allows substantial energy savings, especially for motors which see varying loads or operate  
at a high duty cycle. Because a stepper motor application needs to work with a torque reserve of 30%  
to 50%, even a constant-load application allows significant energy savings because CoolStep  
automatically enables torque reserve when required. Reducing power consumption keeps the system  
cooler, increases motor life, and allows reducing cost in the power supply and cooling components.  
Reducing motor current by half results in reducing power by a factor of four.  
12.2 Setting up for CoolStep  
CoolStep is controlled by several parameters, but two are critical for understanding how it works:  
Parameter  
Description  
Range  
Comment  
SEMIN  
4-bit unsigned integer that sets a lower threshold. 0  
disable CoolStep  
threshold is SEMIN*32  
Once SGTHRS has been  
determined, use  
1/16*SGTHRS+1  
If SG_RESULT goes below this threshold, CoolStep  
increases the current to both coils. The 4-bit SEMIN  
value is scaled by 32 to cover the lower half of the  
range of the 10-bit SG value. (The name of this  
parameter is derived from SmartEnergy, which is an  
earlier name for CoolStep.)  
1…15  
as a starting point for  
SEMIN.  
SEMAX  
4-bit unsigned integer that controls an upper 0…15  
threshold. If SG is sampled equal to or above this  
threshold enough times, CoolStep decreases the  
current to both coils. The upper threshold is (SEMIN  
+ SEMAX + 1)*32.  
threshold is  
(SEMIN+SEMAX+1)*32  
0 to 2 recommended  
Figure 12.1 shows the operating regions of CoolStep:  
-
-
-
The black line represents the SG_RESULT measurement value.  
The blue line represents the mechanical load applied to the motor.  
The red line represents the current into the motor coils.  
When the load increases, SG_RESULT falls below SEMIN, and CoolStep increases the current. When the  
load decreases, SG_RESULT rises above (SEMIN + SEMAX + 1) * 32, and the current is reduced.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
58  
motor current reduction area  
current setting I_RUN  
(upper limit)  
SEMAX+SEMIN+1  
SEMIN  
½ or ¼ I_RUN  
motor current increment area  
stall possible  
(lower limit)  
0=maximum load  
Zeit  
load  
angle  
load angle optimized  
load angle optimized  
optimized  
Figure 12.1 CoolStep adapts motor current to the load  
Five more parameters control CoolStep and one status value is returned:  
Parameter  
Description  
Range  
Comment  
SEUP  
Sets the current increment step. The current 0…3  
becomes incremented for each measured StallGuard  
value below the lower threshold.  
step width is  
1, 2, 4, 8  
SEDN  
Sets the number of StallGuard readings above the 0…3  
upper threshold necessary for each current  
decrement of the motor current.  
number of StallGuard  
measurements per  
decrement:  
32, 8, 2, 1  
SEIMIN  
Sets the lower motor current limit for CoolStep 0  
operation by scaling the IRUN current setting.  
0: 1/2 of IRUN  
Attention: use IRUN≥10  
Operate well above the minimum motor current as  
determined for StealthChop current regulation.  
1
1: 1/4 of IRUN  
Attention: use IRUN≥20  
TCOOLTHRS Lower velocity threshold for switching on CoolStep 1…  
and stall output. Below this velocity CoolStep 2^20-1  
becomes disabled (not used in STEP/DIR mode).  
Adapt to the lower limit of the velocity range where  
StallGuard gives a stable result.  
Specifies lower CoolStep  
velocity by comparing  
the threshold value to  
TSTEP  
TPWMTHRS Upper velocity threshold value for CoolStep and 1…  
stop on stall. Above this velocity the driver switches 2^20-1  
to SpreadCycle. This also disables CoolStep and  
StallGuard.  
This setting typically is  
used during chopper  
mode configuration,  
only.  
Status  
word  
Description  
Range  
Comment  
This status value provides the actual motor current  
scale as controlled by CoolStep. The value goes up  
to the IRUN value and down to the portion of IRUN  
as specified by SEIMIN.  
CSACTUAL  
0…31  
1/32, 2/32, … 32/32  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
59  
12.3 Tuning CoolStep  
CoolStep uses SG_RESULT to operate the motor near the optimum load angle of +90°. The basic setting  
to be tuned is SEMIN. Set SEMIN to a value which safely activates CoolStep current increment before  
the motor stalls. In case SGTHRS has been tuned before, a lower starting value is  
SEMIN = 1+SGTHRS/16.  
The current increment speed is specified in SEUP, and the current decrement speed is specified in SEDN.  
They can be tuned separately because they are triggered by different events that may need different  
responses. The encodings for these parameters allow the coil currents to be increased much more  
quickly than decreased, because crossing the lower threshold is a more serious event that may require  
a faster response. If the response is too slow, the motor may stall. In contrast, a slow response to  
crossing the upper threshold does not risk anything more serious than missing an opportunity to save  
power.  
CoolStep operates between limits controlled by the current scale parameter IRUN and the seimin bit.  
Attention  
When CoolStep increases motor current, spurious detection of motor stall may occur. For best results,  
disable CoolStep during StallGuard based homing.  
In case StallGuard is desired in combination with CoolStep, try increasing coolStep lower threshold  
SEMIN as required.  
12.3.1 Response Time  
For fast response to increasing motor load, use a high current increment step SEUP. If the motor load  
changes slowly, a lower current increment step can be used to avoid motor oscillations.  
Hint  
The most common and most beneficial use is to adapt CoolStep for operation at the typical system  
target operation velocity and to set the velocity thresholds according. As acceleration and decelerations  
normally shall be quick, they will require the full motor current, while they have only a small  
contribution to overall power consumption due to their short duration.  
12.3.2 Low Velocity and Standby Operation  
Because CoolStep is not able to measure the motor load in standstill and at very low RPM, a lower  
velocity threshold is provided for enabling CoolStep. It should be set to an application specific default  
value. Below this threshold the normal current setting via IRUN respectively IHOLD is valid.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
60  
13 STEP/DIR Interface  
The STEP and DIR inputs provide a simple, standard interface compatible with many existing motion  
controllers. The MicroPlyer step pulse interpolator brings the smooth motor operation of high-resolution  
microstepping to applications originally designed for coarser stepping.  
13.1 Timing  
Figure 13.1 shows the timing parameters for the STEP and DIR signals, and the table below gives their  
specifications. Only rising edges are active. STEP and DIR are sampled and synchronized to the system  
clock. An internal analog filter removes glitches on the signals, such as those caused by long PCB traces.  
If the signal source is far from the chip, and especially if the signals are carried on cables, the signals  
should be filtered or differentially transmitted.  
+VCC_IO  
DIR  
SchmittTrigger  
tSH  
tSL  
tDSH  
tDSU  
STEP  
or DIR  
Input  
83k  
0.56 VCC_IO  
0.44 VCC_IO  
STEP  
Internal  
Signal  
C
Input filter  
R*C = 20ns +-30%  
Figure 13.1 STEP and DIR timing, Input pin filter  
STEP and DIR interface timing  
Parameter  
AC-Characteristics  
clock period is tCLK  
Symbol Conditions  
Min  
Typ  
Max  
Unit  
step frequency (at maximum  
microstep resolution)  
fSTEP  
½ fCLK  
fullstep frequency  
STEP input minimum low time  
fFS  
tSL  
fCLK/512  
max(tFILTSD  
tCLK+20)  
max(tFILTSD  
tCLK+20)  
,
,
100  
100  
ns  
ns  
STEP input minimum high time  
tSH  
DIR to STEP setup time  
DIR after STEP hold time  
STEP and DIR spike filtering time  
*)  
tDSU  
tDSH  
tFILTSD  
20  
20  
13  
ns  
ns  
ns  
rising and falling  
edge  
20  
30  
STEP and DIR sampling relative  
to rising CLK input  
tSDCLKHI  
before rising edge  
of CLK input  
tFILTSD  
ns  
*) These values are valid with full input logic level swing, only. Asymmetric logic levels will increase  
filtering delay tFILTSD, due to an internal input RC filter.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
61  
13.2 Changing Resolution  
The TMC2226 includes an internal microstep table with 1024 sine wave entries to generate sinusoidal  
motor coil currents. These 1024 entries correspond to one electrical revolution or four fullsteps. The  
microstep resolution setting determines the step width taken within the table. Depending on the DIR  
input, the microstep counter is increased (DIR=0) or decreased (DIR=1) with each STEP pulse by the step  
width. The microstep resolution determines the increment respectively the decrement. At maximum  
resolution, the sequencer advances one step for each step pulse. At half resolution, it advances two  
steps. Increment is up to 256 steps for fullstepping. The sequencer has special provision to allow  
seamless switching between different microstep rates at any time. When switching to a lower microstep  
resolution, it calculates the nearest step within the target resolution and reads the current vector at  
that position. This behavior especially is important for low resolutions like fullstep and halfstep, because  
any failure in the step sequence would lead to asymmetrical run when comparing a motor running  
clockwise and counterclockwise.  
EXAMPLES:  
Fullstep:  
Cycles through table positions: 128, 384, 640 and 896 (45°, 135°, 225° and 315° electrical  
position, both coils on at identical current). The coil current in each position corresponds  
to the RMS-Value (0.71 * amplitude). Step size is 256 (90° electrical)  
Half step:  
The first table position is 64 (22.5° electrical), Step size is 128 (45° steps)  
Quarter step: The first table position is 32 (90°/8=11.25° electrical), Step size is 64 (22.5° steps)  
This way equidistant steps result and they are identical in both rotation directions. Some older drivers  
also use zero current (table entry 0, 0°) as well as full current (90°) within the step tables. This kind of  
stepping is avoided because it provides less torque and has a worse power dissipation in driver and  
motor.  
Step position  
table position  
64  
current coil A  
38.3%  
current coil B  
92.4%  
Half step 0  
Full step 0  
Half step 1  
Half step 2  
Full step 1  
Half step 3  
Half step 4  
Full step 2  
Half step 5  
Half step 6  
Full step 3  
Half step 7  
128  
192  
320  
384  
448  
576  
640  
704  
832  
896  
960  
70.7%  
92.4%  
92.4%  
70.7%  
38.3%  
-38.3%  
-70.7%  
-92.4%  
-92.4%  
-70.7%  
-38.3%  
70.7%  
38.3%  
-38.3%  
-70.7%  
-92.4%  
-92.4%  
-70.7%  
-38.3%  
38.3%  
70.7%  
92.4%  
See chapter 3.4 for resolution settings available in stand-alone mode.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
62  
13.3 MicroPlyer Step Interpolator and Stand Still Detection  
For each active edge on STEP, MicroPlyer produces microsteps at 256x resolution, as shown in Figure  
13.2. It interpolates the time in between of two step impulses at the step input based on the last step  
interval. This way, from 2 microsteps (128 microstep to 256 microstep interpolation) up to 256 microsteps  
(full step input to 256 microsteps) are driven for a single step pulse.  
The step rate for the interpolated 2 to 256 microsteps is determined by measuring the time interval of  
the previous step period and dividing it into up to 256 equal parts. The maximum time between two  
microsteps corresponds to 220 (roughly one million system clock cycles), for an even distribution of 256  
microsteps. At 12 MHz system clock frequency, this results in a minimum step input frequency of roughly  
12 Hz for MicroPlyer operation. A lower step rate causes a standstill event to be detected. At that  
frequency, microsteps occur at a rate of (system clock frequency)/216 ~ 256 Hz. When a stand still is  
detected, the driver automatically begins standby current reduction if selected by pin PDN.  
Attention  
MicroPlyer only works perfectly with a jitter-free STEP frequency.  
STEP  
Interpolated  
0
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66  
microstep  
Motor  
angle  
2^20 tCLK  
STANDSTILL  
(stst) active  
Figure 13.2 MicroPlyer microstep interpolation with rising STEP frequency (Example: 16 to 256)  
In Figure 13.2, the first STEP cycle is long enough to set the stst bit standstill. Detection of standstill  
will enable the standby current reduction. This bit is cleared on the next STEP active edge. Then, the  
external STEP frequency increases. After one cycle at the higher rate MicroPlyer adapts the interpolated  
microstep rate to the higher frequency. During the last cycle at the slower rate, MicroPlyer did not  
generate all 16 microsteps, so there is a small jump in motor angle between the first and second cycles  
at the higher rate.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
63  
13.4 Index Output  
An active INDEX output signals that the sine curve of motor coil A is at its positive zero transition. This  
correlates to the zero point of the microstep sequence. Usually, the cosine curve of coil B is at its  
maximum at the same time. Thus, the index signal is active once within each electrical period, and  
corresponds to a defined position of the motor within a sequence of four fullsteps. The INDEX output  
this way allows the detection of a certain microstep pattern, and thus helps to detect a position with  
more precision than a stop switch can do.  
Current  
COIL A  
COIL B  
0
Time  
INDEX  
STEPS  
Current  
Time  
Time  
Figure 13.3 Index signal at positive zero transition of the coil A sine curve  
Hint  
The index output allows precise detection of the microstep position within one electrical wave, i.e.  
within a range of four fullsteps. With this, homing accuracy and reproducibility can be enhanced to  
microstep accuracy, even when using an inexpensive home switch.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
64  
UART  
14 Internal Step Pulse Generator  
The TMC22xx family integrates a high-resolution step pulse generator, allowing motor motion via the  
UART interface. However, no velocity ramping is provided. Ramping is not required, if the target motion  
velocity is smaller than the start & stop frequency of the motor. For higher velocities, ramp up the  
frequency in small steps to accelerate the motor, and ramp down again to decelerate the motor. Figure  
14.1 shows an example motion profile ramping up the motion velocity in discrete steps. Choose the  
ramp velocity steps considerably smaller than the maximum start velocity of the motor, because motor  
torque drops at higher velocity, and motor load at higher velocity typically increases.  
motor  
stop  
v
acceleration  
constant velocity  
deceleration  
Target Velocity  
e
l
i
f
o
r
p
l
a
c
i
t
e
r
o
e
h
T
Stop velocity  
Start velocity  
0
t
VACTUAL  
Figure 14.1 Software generated motion profile  
PARAMETER VS. UNITS  
Parameter / Symbol  
Unit  
calculation / description / comment  
fCLK[Hz]  
[Hz]  
clock frequency of the TMC2226 in [Hz]  
v[Hz] = VACTUAL[2226] * ( fCLK[Hz]/2 / 2^23 )  
With internal oscillator:  
µstep velocity v[Hz]  
µsteps / s  
v[Hz] = VACTUAL[2226] * 0.715Hz  
microstep resolution in number of microsteps  
(i.e. the number of microsteps between two  
fullsteps normally 256)  
USC microstep count  
counts  
v[rps] = v[Hz] / USC / FSC  
FSC: motor fullsteps per rotation, e.g. 200  
rotations per second v[rps]  
rotations / s  
TSTEP = fCLK / fSTEP  
The time reference for velocity threshold is  
referred to the actual microstep frequency of the  
step input respectively velocity v[Hz].  
VACTUAL[2226] = ( fCLK[Hz]/2 / 2^23 ) / v[Hz]  
With internal oscillator:  
TSTEP, TPWMTHRS  
-
Two’s complement  
signed internal  
velocity  
VACTUAL  
VACTUAL[2226] = 0.715Hz / v[Hz]  
Hint  
To monitor internal step pulse execution, program the INDEX output to provide step pulses  
(GCONF.index_step). It toggles upon each step. Use a timer input on your CPU to count pulses.  
Alternatively, regularly poll MSCNT to grasp steps done in the previous polling interval. It wraps around  
from 1023 to 0.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
65  
15 Driver Diagnostic Flags  
The TMC2226 drivers supply a complete set of diagnostic and protection capabilities, like short to GND  
protection, short to VS protection and undervoltage detection. A detection of an open load condition  
allows testing if a motor coil connection is interrupted. See the DRV_STATUS table for details.  
15.1 Temperature Measurement  
The driver integrates a four-level temperature sensor (pre-warning and thermal shutdown) for  
diagnostics and for protection of the IC against excess heat. The thresholds can be adapted by UART or  
OTP programming. Heat is mainly generated by the motor driver stages, and, at increased voltage, by  
the internal voltage regulator. Most critical situations, where the driver MOSFETs could be overheated,  
are avoided by the short to GND protection. For many applications, the overtemperature pre-warning  
will indicate an abnormal operation situation and can be used to initiate user warning or power  
reduction measures like motor current reduction. The thermal shutdown is just an emergency measure  
and temperature rising to the shutdown level should be prevented by design.  
TEMPERATURE THRESHOLDS  
Overtemperature Comment  
Setting  
143°C  
(OTPW: 120°C)  
Default setting. This setting is safest to switch off the driver stage before the IC  
can be destroyed by overheating. On a large PCB, the power MOSFETs reach roughly  
150°C peak temperature when the temperature detector is triggered with this  
setting. This is a trip typical point for overtemperature shut down. The  
overtemperature pre-warning threshold of 120°C gives lots of headroom to react  
to high driver temperature, e.g. by reducing motor current.  
150°C  
(OTPW:  
120°C or 143°C)  
Optional setting (OTP or UART). For small PCBs with high thermal resistance  
between PCB and environment, this setting provides some additional headroom.  
The small PCB shows less temperature difference between the MOSFETs and the  
sensor.  
157°C  
(OTPW: 143°C)  
Optional setting (UART). For applications, where a stop of the motor cannot be  
tolerated, this setting provides highest headroom, e.g. at high environment  
temperature ratings. Using the 143°C overtemperature pre-warning to reduce motor  
current ensures that the motor is not switched off by the thermal threshold.  
Attention  
Overtemperature protection cannot in all cases avoid thermal destruction of the IC. In case the rated  
motor current is exceed, e.g. by operating a motor in StealthChop with wrong parameters, or with  
automatic tuning parameters not fitting the operating conditions, excess heat generation can quickly  
heat up the driver before the overtemperature sensor can react. This is due to a delay in heat conduction  
over the IC die.  
After triggering the overtemperature sensor (ot flag), the driver remains switched off until the system  
temperature falls below the pre-warning level (otpw) to avoid continuous heating to the shutdown  
level.  
15.2 Short Protection  
The TMC2226 power stages are protected against a short circuit condition by an additional measurement  
of the current flowing through each of the power stage MOSFETs. This is important, as most short  
circuit conditions result from a motor cable insulation defect, e.g. when touching the conducting parts  
connected to the system ground. The short detection is protected against spurious triggering, e.g. by  
ESD discharges, by retrying three times before switching off the motor.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
66  
Once a short condition is safely detected, the corresponding driver bridge (A or B) becomes switched  
off, and the s2ga or s2gb flag, respectively s2vsa or s2vsb becomes set. In order to restart the motor,  
disable and re-enable the driver. Note, that short protection cannot protect the system and the power  
stages for all possible short events, as a short event is rather undefined and a complex network of  
external components may be involved. Therefore, short circuits should basically be avoided.  
UART  
15.3 Open Load Diagnostics  
Interrupted cables are a common cause for systems failing, e.g. when connectors are not firmly plugged.  
The TMC2226 detects open load conditions by checking, if it can reach the desired motor coil current.  
This way, also undervoltage conditions, high motor velocity settings or short and overtemperature  
conditions may cause triggering of the open load flag, and inform the user, that motor torque may  
suffer. In motor stand still, open load cannot always be measured, as the coils might eventually have  
zero current.  
Open load detection is provided for system debugging.  
In order to safely detect an interrupted coil connection, read out the open load flags at low or nominal  
motor velocity operation, only. If possible, use SpreadCycle for testing, as it provides the most accurate  
test. However, the ola and olb flags have just informative character and do not cause any action of the  
driver.  
15.4 Diagnostic Output  
The diagnostic output DIAG and the index output INDEX provide important status information. An active  
DIAG output shows that the driver cannot work normally, or that a motor stall is detected, when  
StallGuard is enabled. The INDEX output signals the microstep counter zero position, to allow referencing  
(homing) a drive to a certain current pattern. The function set of the INDEX output can be modified by  
UART. Figure 15.1 shows the available signals and control bits.  
StallDetection  
(gated by TPWMTHRS<=TSTEP<=VCOOLTHRS)  
Power-on reset  
DIAG  
Charge pump undervoltage (uv_cp)  
drv_err  
Overtemperature (ot)  
Short circuit (s2vs, s2g) over temperature (ot)  
Q
S
R
Power stage disable (e.g. pin ENN)  
Index pulse  
INDEX  
Overtemperature prewarning (otpw)  
Toggle upon each step  
GCONF.index_otpw  
GCONF.index_step  
Figure 15.1 DIAG and INDEX outputs  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
67  
UART  
OTP  
16 Quick Configuration Guide  
This guide is meant as a practical tool to come to a first configuration. Do a minimum set of  
measurements and decisions for tuning the driver to determine UART settings or OTP parameters. The  
flow-charts concentrate on the basic function set to make a motor run smoothly. Once the motor runs,  
you may decide to explore additional features, e.g. freewheeling in more detail. A current probe on one  
motor coil is a good aid to find the best settings, but it is not a must.  
stealthChop  
Current Setting  
Configuration  
Check hardware  
setup and motor  
RMS current  
GCONF  
clear en_spreadCycle  
(default)  
GCONF  
PWMCONF  
set pwm_autoscale,  
set pwm_autograd  
Sense Resistors  
used?  
set internal_Rsense  
Store to OTP 0.6  
recommended  
N
Y
Y
PWMCONF  
select PWM_FREQ with  
regard to fCLK for 20-  
40kHz PWM frequency  
GCONF  
set I_scale_analog  
(this is default)  
Analog Scaling?  
Set VREF as desired  
CHOPCONF  
N
Enable chopper using basic  
config., e.g.: TOFF=5, TBL=2,  
HSTART=4, HEND=0  
CHOPCONF  
set vsense for max.  
180mV at sense resistor  
(0R15: 1.1A peak)  
Low Current range?  
N
Y
Execute  
automatic  
tuning  
procedure AT  
Set I_RUN as desired up  
to 31, I_HOLD 70% of  
I_RUN or lower  
Set I_HOLD_DELAY to 1  
to 15 for smooth  
standstill current decay  
Move the motor by  
slowly accelerating  
from 0 to VMAX  
operation velocity  
Set TPOWERDOWN up  
to 255 for delayed  
standstill current  
reduction  
Select a velocity  
threshold for switching  
to spreadCycle chopper  
and set TPWMTHRS  
Is performance  
good up to VMAX?  
N
Y
Configure Chopper to  
test current settings  
SC2  
Figure 16.1 Current Setting and first steps with StealthChop  
Hint  
Use the evaluation board to explore settings and to generate the required configuration datagrams.  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
68  
spreadCycle  
Configuration  
SC2  
Try motion above  
TPWMTRHRS, if  
used  
GCONF  
set en_spreadCycle  
CHOPCONF  
Coil current  
overshoot upon  
deceleration?  
PWMCONF  
decrease PWM_LIM (do  
not go below about 5)  
Enable chopper using basic  
config.: TOFF=5, TBL=2,  
HSTART=0, HEND=0  
Y
N
Move the motor by  
slowly accelerating  
from 0 to VMAX  
Go to motor stand  
still and check  
motor current at  
IHOLD=IRUN  
operation velocity  
Monitor sine wave motor  
coil currents with current  
probe at low velocity  
CHOPCONF, PWMCONF  
decrease TBL or PWM  
frequency and check  
Stand still current  
too high?  
Y
impact on motor motion  
N
Current zero  
crossing smooth?  
CHOPCONF  
increase HEND (max. 15)  
N
Optimize spreadCycle  
configuration if TPWMTHRS  
used  
Y
Move motor very slowly or  
try at stand still  
CHOPCONF  
Audible Chopper  
noise?  
decrease TOFF (min. 2),  
try lower / higher TBL or  
reduce motor current  
Y
N
Move motor at medium  
velocity or up to max.  
velocity  
CHOPCONF  
decrease HEND and  
increase HSTART (max.  
7)  
Audible Chopper  
noise?  
Y
Finished  
Figure 16.2 Tuning StealthChop and SpreadCycle  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
69  
Enable CoolStep  
C2  
Monitor CS_ACTUAL and  
motor torque during rapid  
mechanical load increment  
within application limits  
Move the motor at  
desired operation  
velocity  
Is coil  
PWM_SCALE_SUM  
<255 at VMAX?  
Decrease velocity  
(upper limit for  
CoolStep)  
Does CS_ACTUAL reach  
IRUN with load before  
motor stall?  
N
N
Increase SEUP  
Y
Y
Monitor SG_RESULT value  
and check response with  
mechanical load  
Finished  
Does SG_RESULT change  
significantly with changed  
load?  
Increase velocity  
(lower limit for  
CoolStep)  
N
Y
Set TCOOLTHRS  
slightly above TSTEP at  
the selected velocity for  
lower velocity limit  
Set SGTHRS  
to ½ of the minimum  
value seen at  
SG_RESULT before stall.  
COOLCONF  
Enable coolStep basic config.: Set  
SEMIN=1+1/16 SG_RESULT  
Monitor CS_ACTUAL during  
motion in velocity range  
and check response with  
mechanical load  
Does CS_ACTUAL reach  
IRUN with load before  
motor stall?  
Increase SEMIN or  
choose narrower  
velocity limits  
N
Y
C2  
Figure 16.3 Configuration for CoolStep in StealthChop mode  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
70  
OTP programming  
Determine stand still current  
settings (IHOLD, IHOLDDELAY) and  
sense resistor type (internal_Rsense)  
Determine chopper settings  
(CHOPCONF and PWMCONF)  
spreadCycle only  
Y
Go for  
otp_en_spreadCycle=1  
mode?  
N
Find nearest value fitting  
for TPWMTHRS from  
table OTP_TPWMTHRS  
Mix spreadCylce  
and stealthChop?  
Y
N
Find nearest value fitting for  
PWM_GRAD initialization from  
table OTP_PWM_GRAD  
Note all OTP bits to be set  
to 1.  
Choose a bit to be programmed and write  
OTP byte and bit address to OTP_PROG  
including magic code 0xbd  
Wait for 10ms or longer  
N
Are all OTP bits  
programmed?  
Y
All bits set in  
N
Re-Program missing bits  
using 100ms delay time  
OTP_READ?  
Y
Finished  
Figure 16.4 OTP programming  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
71  
17 External Reset  
The chip is loaded with default values during power on via its internal power-on reset. Some of the  
registers are initialized from the OTP at power up. In order to reset the chip to power on defaults, any  
of the supply voltages monitored by internal reset circuitry (VS, +5VOUT or VCC_IO) must be cycled. As  
+5VOUT is the output of the internal voltage regulator, it cannot be cycled via an external source except  
by cycling VS. It is easiest and safest to cycle VCC_IO in order to completely reset the chip. Also, current  
consumed from VCC_IO is low and therefore it has simple driving requirements. Due to the input  
protection diodes not allowing the digital inputs to rise above VCC_IO level, all inputs must be driven  
low during this reset operation. When this is not possible, an input protection resistor may be used to  
limit current flowing into the related inputs.  
18 Clock Oscillator and Input  
The clock is the timing reference for all functions: the chopper frequency, the blank time, the standstill  
power down timing, and the internal step pulse generator etc. The on-chip clock oscillator is calibrated  
in order to provide timing precise enough for most operation cases.  
USING THE INTERNAL CLOCK  
Directly tie the CLK input to GND near to the IC if the internal clock oscillator is to be used. The internal  
clock frequency is factory-trimmed to 12MHz by OTP programming.  
USING AN EXTERNAL CLOCK  
When an external clock is available, any frequency of 8 to 13.4MHz (max. 16MHz) can be used to clock  
the TMC2226. The duty cycle of the clock signal has to be near 50%, especially for high frequencies.  
Ensure minimum high or low input time for the pin (refer to electrical characteristics). Make sure, that  
the clock source supplies clean CMOS output logic levels and steep slopes when using a high clock  
frequency. The external clock input is enabled with the first positive polarity seen on the CLK input.  
Modifying the clock frequency is an easy way to adapt the StealthChop chopper frequency or to  
synchronize multiple drivers. Working with a very low clock frequency down to 4 MHz can help reducing  
power consumption and electromagnetic emissions, but it will sacrifice some performance.  
Use an external clock source to synchronize multiple drivers, or to get precise motor operation with the  
internal pulse generator for motion. The external clock frequency selection also allows modifying the  
power down timing and the chopper frequency.  
Hint  
Switching off the external clock frequency would stop the chopper and could lead to an overcurrent  
condition. Therefore, TMC2226 has an internal timeout of 32 internal clocks. In case the external clock  
fails, it switches back to internal clock.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
72  
19 Absolute Maximum Ratings  
The maximum ratings may not be exceeded under any circumstances. Operating the circuit at or near  
more than one maximum rating at a time for extended periods shall be avoided by application design.  
Parameter  
Symbol  
Min  
Max  
Unit  
Supply voltage operating with inductive load  
Supply and bridge voltage max. *)  
I/O supply voltage  
digital supply voltage (when using external supply)  
Logic input voltage  
VREF input voltage (Do not exceed both, VCC_IO and  
5VOUT by more than 10%, as this enables a test mode)  
Maximum current to / from digital pins  
and analog low voltage I/Os  
VVS  
-0.5  
32  
33  
5.5  
5.5  
VVIO+0.5  
6
V
V
V
V
V
V
VVMAX  
VVIO  
V5VOUT  
VI  
-0.5  
-0.5  
-0.5  
-0.5  
VVREF  
IIO  
+/-10  
mA  
5V regulator output current (internal plus external load)  
5V regulator continuous power dissipation (VVM-5V) * I5VOUT P5VOUT  
Power bridge repetitive output current  
Junction temperature  
Storage temperature  
I5VOUT  
25  
0.5  
3
150  
150  
4
mA  
W
A
°C  
°C  
kV  
IOx  
TJ  
TSTG  
VESDAP  
-50  
-55  
ESD-Protection for interface pins in application (Human  
body model, HBM)  
ESD-Protection for handling (Human body model, HBM)  
VESD  
1
kV  
*) Stray inductivity of GND and VS connections will lead to ringing of the supply voltage when driving  
an inductive load. This ringing results from the fast switching slopes of the driver outputs in  
combination with reverse recovery of the body diodes of the output driver MOSFETs. Even small trace  
inductivities as well as stray inductivity of sense resistors can easily generate a few volts of ringing  
leading to temporary voltage overshoot. This should be considered when working near the maximum  
voltage.  
20 Electrical Characteristics  
20.1 Operational Range  
Parameter  
Symbol  
TJ  
VVS  
Min  
Max  
Unit  
Junction temperature  
-40  
5.5  
6
125  
29  
29  
°C  
V
V
Supply voltage (using internal +5V regulator)  
Supply voltage (using internal +5V regulator) for OTP  
programming  
VVS  
Supply voltage (internal +5V regulator bridged: V5VOUT=VVS)  
I/O supply voltage  
I/O supply voltage during standby  
VCC voltage when using optional external source (supplies VVCC  
digital logic and charge pump)  
VVS  
VVIO  
VVIO  
4.7  
3.00  
1.50  
4.6  
5.4  
V
V
V
V
5.25  
5.25  
5.25  
RMS motor coil current per coil (value for design guideline) IRMS  
RMS motor coil current per coil with duty cycle limit, e.g. 1s IRMS  
on, 1s standby (value for design guideline)  
1.6  
2.0  
A
A
Peak output current per motor coil output (sine wave peak) IOx  
using external or internal current sensing  
2.8  
A
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
73  
20.2 DC and Timing Characteristics  
DC characteristics contain the spread of values guaranteed within the specified supply voltage range  
unless otherwise specified. Typical values represent the average value of all parts measured at +25°C.  
Temperature variation also causes stray to some values. A device with typical values will not leave  
Min/Max range within the full temperature range.  
Power supply current  
DC-Characteristics  
VVS = VVSA = 24.0V  
Parameter  
Symbol Conditions  
Min  
Typ  
Max Unit  
Total supply current, standby  
Total supply current, driver  
disabled IVS  
IS  
IS  
ENN=0V, VREF=0V  
fCLK=12MHz  
160  
7
300  
10  
µA  
mA  
Total supply current, operating,  
IVS  
IS  
fCLK=12MHz, 35kHz  
chopper, no load  
fCLK variable,  
additional to IVS0  
fCLK=12MHz, 35kHz  
chopper  
no load on outputs,  
inputs at VIO or GND  
Excludes pull-down  
resistors  
7.5  
0.3  
4.5  
15  
mA  
mA/MHz  
Supply current, driver disabled,  
dependency on CLK frequency  
Internal current consumption  
from 5V supply on VCC pin  
IO supply current (typ. at 3.3V)  
IVS  
IVCC  
IVIO  
mA  
µA  
30  
Motor driver section  
DC- and Timing-Characteristics  
VVS = 24.0V  
Parameter  
Symbol Conditions  
Min  
Typ  
Max Unit  
RDSON lowside MOSFET  
RONL  
measure at 200mA,  
25°C, static state  
measure at 200mA,  
25°C, static state  
measured at 700mA  
load current  
(resistive load)  
measured at 700mA  
load current  
0.170  
0.21  
0.21  
150  
RDSON highside MOSFET  
slope, MOSFET turning on  
RONH  
tSLPON  
0.170  
60  
35  
35  
ns  
slope, MOSFET turning off  
tSLPOFF  
60  
150  
250  
ns  
(resistive load)  
OXX pulled to GND  
Current sourcing, driver off  
IOIDLE  
120  
180  
µA  
Charge pump  
DC-Characteristics  
Parameter  
Symbol Conditions  
Min  
Typ  
Max Unit  
Charge pump output voltage  
VVCP-VVS  
VVCP-VVS  
fCP  
operating, typical  
fchop<40kHz  
using internal 5V  
regulator voltage  
4.0  
VVCC  
0.22  
3.6  
-
VVCC  
V
Charge pump voltage threshold  
for undervoltage detection  
Charge pump frequency  
3.3  
4.0  
V
1/16  
fCLKOSC  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
74  
Linear regulator  
DC-Characteristics  
VVS = VVSA = 24.0V  
Parameter  
Symbol Conditions  
Min  
Typ  
Max Unit  
Output voltage  
V5VOUT  
I5VOUT = 0mA  
TJ = 25°C  
4.80  
5.0  
5.25  
V
Output resistance  
R5VOUT  
Static load  
1
Deviation of output voltage over V5VOUT(DEV) I5VOUT = 5mA  
the full temperature range  
+/-30  
+/-100  
+/-30  
mV  
TJ = full range  
Deviation of output voltage over V5VOUT(DEV) I5VOUT = 5mA  
+/-15  
mV /  
10V  
the full supply voltage range  
VVS = variable  
Clock oscillator and input  
Parameter  
Timing-Characteristics  
Symbol Conditions  
Min  
Typ  
Max Unit  
MHz  
Clock oscillator frequency  
(factory calibrated)  
fCLKOSC  
fCLKOSC  
fCLKOSC  
fCLK  
tJ=-50°C  
tJ= 25°C  
tJ=150°C  
Typ. at 40%/60%  
dutycycle, Max at  
50% dutycycle  
CLK driven to  
0.1 VVIO / 0.9 VVIO  
CLK driven high  
11.7  
12.0  
12.1  
11.5  
4
12.5  
MHz  
MHz  
MHz  
External clock frequency  
(operating)  
10-13.4  
16  
External clock high / low level  
time  
External clock first pulse to  
trigger switching to external CLK tCLKL  
External clock timeout detection xtimeout  
in cycles of internal fCLKOSC  
tCLKH  
tCLKL  
tCLKH  
/
/
16  
30  
32  
ns  
ns  
25  
External clock stuck  
at low or high  
48  
cycles  
fCLKOSC  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
75  
Detector levels  
Parameter  
DC-Characteristics  
Symbol Conditions  
Min  
Typ  
Max Unit  
VVS undervoltage threshold for  
RESET  
VUV_VS  
VVS rising  
3.5  
4.2  
4.6  
V
V5VOUT undervoltage threshold for VUV_5VOUT  
RESET  
VVCC_IO undervoltage threshold for VUV_VIO  
RESET  
V5VOUT rising  
3.5  
2.55  
0.3  
2.5  
2
V
VVCC_IO rising (delay  
typ. 10µs)  
2.1  
3.0  
V
VVCC_IO undervoltage detector  
hysteresis  
VUV_VIOHYST  
V
Short to GND detector threshold VOS2G  
(VVS - VOx)  
2
3
2.3  
2
V
Short to VS detector threshold  
(VOx)  
VOS2VS  
1.6  
0.8  
V
Short detector delay  
tS2G  
High side output  
clamped to VSP-3V  
1.3  
µs  
(high side / low side switch on  
to short detected)  
Overtemperature prewarning  
120°C  
Overtemperature shutdown or  
prewarning 143°C (appr. 153°C IC  
peak temp.)  
tOTPW  
tOT143  
Temperature rising  
Temperature rising  
100  
128  
120  
143  
140  
163  
°C  
°C  
Overtemperature shutdown  
150°C (appr. 160°C IC peak temp.)  
Overtemperature shutdown  
157°C (appr. 167°C IC peak temp.)  
Difference between temperature tOTDIFF  
detector and power stage  
tOT150  
tOT157  
Temperature rising  
Temperature rising  
135  
142  
150  
157  
10  
170  
177  
°C  
°C  
°C  
Power stage causing  
high temperature,  
normal 4 Layer PCB  
temperature, slow heat up  
Sense resistor voltage levels  
DC-Characteristics  
fCLK=16MHz  
Symbol Conditions  
Parameter  
Min  
Typ  
Max Unit  
mV  
Sense input peak threshold  
voltage (low sensitivity)  
VSRTL  
vsense=0  
325  
csactual=31  
CUR_A/B=248  
Hyst.=0; IBRxy=0  
vsense=1  
csactual=31  
CUR_A/B=248  
Hyst.=0; IBRxy=0  
I_scale_analog=0,  
vsense=0  
Sense input peak threshold  
voltage (high sensitivity)  
VSRTH  
180  
mV  
Sense input tolerance / motor  
current full scale tolerance  
-using internal reference  
ICOIL  
-5  
-2  
+5  
+2  
%
%
Sense input tolerance / motor  
current full scale tolerance  
-using external reference voltage  
ICOIL  
I_scale_analog=1,  
VAIN=2V, vsense=0  
Internal resistance from pin BRxy RBRxy  
to internal sense comparator  
20  
mΩ  
(additional to sense resistor)  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
76  
Digital pins  
DC-Characteristics  
Parameter  
Symbol Conditions  
Min  
-0.3  
Typ  
Max Unit  
Input voltage low level  
Input voltage high level  
Input Schmitt trigger hysteresis  
VINLO  
0.3 VVIO  
VVIO+0.3  
V
V
V
VINHI  
0.7 VVIO  
VINHYST  
0.12  
VVIO  
Output voltage low level  
Output voltage high level  
Input leakage current  
VOUTLO  
VOUTHI  
IILEAK  
IOUTLO = 2mA  
IOUTHI = -2mA  
0.2  
V
VVIO-0.2  
-10  
V
10  
µA  
kΩ  
kΩ  
pF  
Pullup / pull-down resistors  
RPU/RPD  
132  
166  
100  
3.5  
200  
120  
Pull-down resistor STANDBY pin RPD  
80  
Digital pin capacitance  
C
AIN/IREF input  
Parameter  
DC-Characteristics  
Symbol Conditions  
Min  
Typ  
Max Unit  
400 kΩ  
AIN_IREF input resistance to 2.5V RAIN  
(=5VOUT/2)  
Measured to GND  
(internalRsense=0)  
260  
330  
AIN_IREF input voltage range for VAIN  
linear current scaling  
Measured to GND  
(IscaleAnalog=1)  
0
0.5-2.4 V5VOUT/2  
V5VOUT/2  
V
V
AIN_IREF open input voltage  
level  
VAINO  
Open circuit voltage  
(internalRsense=0)  
AIN_IREF input resistance to  
RIREF  
Measured to GND  
0.3  
0.45  
0.60  
kΩ  
GND for reference current input  
(internalRsense=1)  
AIN_IREF current amplification  
for reference current to coil  
current at maximum setting  
Motor current full-scale tolerance ICOIL  
-using RDSon measurement  
IREFAMPL  
IIREF = 0.25mA  
3000  
Times  
%
Internal_Rsense=1,  
vsense=0,  
-10  
+10  
(value for design guideline to  
calculate reproduction of certain  
motor current & torque)  
IIREF = 0.25mA (after  
reaching thermal  
balance)  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
77  
20.3 Thermal Characteristics  
The following table shall give an idea on the thermal resistance of the package. The thermal resistance  
for a four-layer board will provide a good idea on a typical application. Actual thermal characteristics  
will depend on the PCB layout, PCB type and PCB size. The thermal resistance will benefit from thicker  
CU (inner) layers for spreading heat horizontally within the PCB. Also, air flow will reduce thermal  
resistance.  
A thermal resistance of 26K/W for a typical board means, that the package is capable of continuously  
dissipating 3.8W at an ambient temperature of 25°C with the die temperature staying below 125°C. Note,  
that a thermally optimized layout is required.  
Parameter  
Symbol Conditions  
Typ  
Unit  
Typical power dissipation  
PD  
StealthChop or SpreadCycle, 1.4A RMS  
2.8  
W
in two phase motor, sinewave, 40 or  
20kHz chopper, 24V, 90°C peak surface  
of package (motor QSH4218-035-10-  
027, short time operation)  
Typical power dissipation  
PD  
StealthChop or SpreadCycle, 1.0A RMS  
in two phase motor, sinewave, 40 or  
20kHz chopper, 24V, 70°C peak surface  
of package (motor QSH4218-035-10-  
027)  
1.4  
26  
6
W
Thermal resistance junction to  
ambient on a multilayer board  
RTMJA  
Dual signal and two internal power  
plane board (2s2p) as defined in  
JEDEC EIA JESD51-5 and JESD51-7  
(FR4, 35µm CU, 70mm x 133mm,  
d=1.5mm)  
K/W  
K/W  
HTSSOP28  
Thermal resistance junction to  
case  
RTJC  
Junction to heat slug of package  
Table 20.1 Thermal characteristics TMC2226  
Note  
A spread-sheet for calculating TMC2226 power dissipation is available on www.trinamic.com.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
78  
21 Layout Considerations  
21.1 Exposed Die Pad  
The TMC2226 uses its die attach pad to dissipate heat from the drivers and the linear regulator to the  
board. For best electrical and thermal performance, use a reasonable amount of solid, thermally  
conducting vias between the die attach pad and the ground plane. The printed circuit board should  
have a solid ground plane spreading heat into the board and providing for a stable GND reference.  
21.2 Wiring GND  
All signals of the TMC2226 are referenced to their respective GND. Directly connect all GND pins under  
the device to a common ground area (GND and die attach pad). The GND plane right below the die  
attach pad should be treated as a virtual star point. For thermal reasons, the PCB top layer shall be  
connected to a large PCB GND plane spreading heat within the PCB.  
Attention  
Especially the sense resistors are susceptible to GND differences and GND ripple voltage, as the  
microstep current steps make up for voltages down to 0.5 mV. No current other than the sense resistor  
current should flow on their connections to GND and to the TMC2226. Optimally place them close to  
the IC, with one or more vias to the GND plane for each sense resistor. The two sense resistors for one  
coil should not share a common ground connection trace or vias, as also PCB traces have a certain  
resistance.  
21.3 Supply Filtering  
The 5VOUT output voltage ceramic filtering capacitor (2.2 to 4.7 µF recommended) should be placed as  
close as possible to the 5VOUT pin, with its GND return going directly to the die pad or the nearest  
GND pin. This ground connection shall not be shared with other loads or additional vias to the GND  
plane. Use as short and as thick connections as possible.  
The motor supply pins VS should be decoupled with an electrolytic capacitor (47 μF or larger is  
recommended) and a ceramic capacitor, placed close to the device.  
Take into account that the switching motor coil outputs have a high dV/dt. Thus capacitive stray into  
high resistive signals can occur, if the motor traces are near other traces over longer distances.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
79  
21.4 Layout Example TMC2226  
Schematic  
Placement (Excerpt)  
Top Layout (Excerpt, showing die pad vias)  
The complete schematics and layout data for all TMC22xx evaluation boards are available on the  
TRINAMIC website.  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
80  
22 Package Mechanical Data  
22.1 Dimensional Drawings HTSSOP28  
Figure 22.1 Dimensional drawings HTSSOP28  
www.trinamic.com  
 
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
81  
Parameter  
[mm] Ref  
Min  
0.05  
0.90  
0.34  
0.2  
0.19  
0.19  
0.13  
0.12  
0.12  
9.60  
Nom  
Max  
1.2  
total thickness  
stand off  
mold thickness  
mold thickness over LF  
lead width  
width w/o plating  
(optional plating)  
lead frame thickness  
thickness w/o plating  
(optional plating)  
body size X  
exposed die pad size Y  
width over pins  
body size Y  
A
A1  
A2  
A3  
b
b1  
b2  
c
c1  
c2  
D
D1  
E
E1  
E2  
e
0.15  
1.10  
0.54  
0.29  
0.25  
0.25  
0.18  
0.14  
0.14  
9.80  
1.00  
0.44  
0.22  
0.13  
9.70  
6.20REF  
6.40  
4.40  
2.75REF  
0.65  
6.20  
4.30  
6.60  
4.50  
exposed die pad size X  
lead pitch  
lead  
0.55  
0.45  
0.75  
0.75  
L
0.60  
lead length  
L1  
L2  
R
R1  
S
1.00REF  
0.25BSC  
0.09  
0.09  
0.20  
0°  
lead stand off  
8°  
10°  
10°  
10°  
12°  
12°  
12°  
14°  
14°  
14°  
1  
2  
3  
22.2 Package Codes  
Type  
Package  
Temperature range  
Code & marking  
TMC2226-SA  
TMC… -T  
HTSSOP28 (RoHS)  
-40°C ... +125°C  
TMC2226-SA  
-T suffix denotes tape on reel packed products  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
82  
23 Table of Figures  
FIGURE 1.1 TMC2226 BASIC APPLICATION BLOCK DIAGRAM......................................................................................................4  
FIGURE 1.2 STAND-ALONE DRIVER WITH PRE-CONFIGURATION....................................................................................................5  
FIGURE 1.3 ENERGY EFFICIENCY WITH COOLSTEP (EXAMPLE)......................................................................................................7  
FIGURE 1.4 AUTOMATIC MOTOR CURRENT POWER DOWN..........................................................................................................8  
FIGURE 2.2 TMC2226 PINNING TOP VIEW TYPE: HTSSOP 28, 9.7X6.4MM² OVER PINS, 0.65MM PITCH.............................9  
FIGURE 3.1 STANDARD APPLICATION CIRCUIT...........................................................................................................................11  
FIGURE 3.2 APPLICATION CIRCUIT USING RDSON BASED SENSING...........................................................................................12  
FIGURE 3.3 5V ONLY OPERATION..............................................................................................................................................12  
FIGURE 3.4 SIMPLE ESD ENHANCEMENT AND MORE ELABORATE MOTOR OUTPUT PROTECTION..................................................14  
FIGURE 4.1 ATTACHING THE TMC2226 TO A MICROCONTROLLER UART..................................................................................17  
FIGURE 4.2 ADDRESSING MULTIPLE TMC2226 VIA SINGLE WIRE INTERFACE USING ANALOG SWITCHES..................................18  
FIGURE 6.1 MOTOR COIL SINE WAVE CURRENT WITH STEALTHCHOP (MEASURED WITH CURRENT PROBE)..................................35  
FIGURE 6.2 STEALTHCHOP2 AUTOMATIC TUNING PROCEDURE ...................................................................................................36  
FIGURE 6.3 SCOPE SHOT: GOOD SETTING FOR PWM_REG.......................................................................................................38  
FIGURE 6.4 SCOPE SHOT: TOO SMALL SETTING FOR PWM_REG DURING AT#2.......................................................................38  
FIGURE 6.5 SUCCESSFULLY DETERMINED PWM_GRAD(_AUTO) AND PWM_OFS(_AUTO)...................................................38  
FIGURE 6.6 VELOCITY BASED PWM SCALING (PWM_AUTOSCALE=0).........................................................................................40  
FIGURE 6.7 TPWMTHRS FOR OPTIONAL SWITCHING TO SPREADCYCLE...................................................................................41  
FIGURE 7.1 CHOPPER PHASES ...................................................................................................................................................45  
FIGURE 7.2 NO LEDGES IN CURRENT WAVE WITH SUFFICIENT HYSTERESIS (MAGENTA: CURRENT A, YELLOW & BLUE: SENSE  
RESISTOR VOLTAGES A AND B).........................................................................................................................................47  
FIGURE 7.3 SPREADCYCLE CHOPPER SCHEME SHOWING COIL CURRENT DURING A CHOPPER CYCLE............................................48  
FIGURE 9.1 SCALING THE MOTOR CURRENT USING THE ANALOG INPUT......................................................................................52  
FIGURE 11.1 FUNCTION PRINCIPLE OF STALLGUARD4..............................................................................................................55  
FIGURE 12.1 COOLSTEP ADAPTS MOTOR CURRENT TO THE LOAD...............................................................................................58  
FIGURE 13.1 STEP AND DIR TIMING, INPUT PIN FILTER .........................................................................................................60  
FIGURE 13.2 MICROPLYER MICROSTEP INTERPOLATION WITH RISING STEP FREQUENCY (EXAMPLE: 16 TO 256).....................62  
FIGURE 13.3 INDEX SIGNAL AT POSITIVE ZERO TRANSITION OF THE COIL A SINE CURVE..........................................................63  
FIGURE 14.1 SOFTWARE GENERATED MOTION PROFILE .............................................................................................................64  
FIGURE 15.1 DIAG AND INDEX OUTPUTS...............................................................................................................................66  
FIGURE 16.1 CURRENT SETTING AND FIRST STEPS WITH STEALTHCHOP....................................................................................67  
FIGURE 16.2 TUNING STEALTHCHOP AND SPREADCYCLE..........................................................................................................68  
FIGURE 16.3 CONFIGURATION FOR COOLSTEP IN STEALTHCHOP MODE....................................................................................69  
FIGURE 16.4 OTP PROGRAMMING ............................................................................................................................................70  
FIGURE 22.2 DIMENSIONAL DRAWINGS HTSSOP28................................................................................................................80  
www.trinamic.com  
TMC2226 DATASHEET (Rev. 1.06 / 2020-MAY-18)  
83  
24 Revision History  
Version Date  
Author  
BD= Bernhard Dwersteg  
Description  
V1.03  
V1.04  
V1.05  
V1.06  
2019-Jun-25  
BD  
First version for TMC2226  
Added order codes  
Changed layout example for TMC2226  
2020-Feb-17  
2020-Mar-31  
2020-May-18  
BD  
BD  
BD  
Corrected pinning numbers 23, 24 in table to match diagram  
Table 24.1 Document Revisions  
25 References  
[TMC2226-EVAL] TMC22xx Evaluation board: Manuals, software and PCB data available on  
www.trinamic.com  
Trinamic Application Note 001 - Parameterization of SpreadCycle™,  
[AN001]  
www.trinamic.com  
Calculation sheet  
TMC2226_Calculations.xlsx www.trinamic.com  
www.trinamic.com  

相关型号:

TMC2226-SA-T

POWER DRIVER FOR STEPPER MOTORS INTEGRATED CIRCUITS
TRINAMIC

TMC22290R2C

Color Signal Encoder, CMOS, PQCC44, PLASTIC, LCC-44
RAYTHEON

TMC223

Micro Stepping Stepper Motor Controller
TRINAMIC

TMC223-LI

IC MOTOR DRIVER SER 32QFN
TRINAMIC

TMC223-SI

Micro Stepping Stepper Motor Controller
TRINAMIC

TMC2242A

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
FAIRCHILD

TMC2242A

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
CADEKA

TMC2242AKTC

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
FAIRCHILD

TMC2242AKTC

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
CADEKA

TMC2242AKTC1

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
FAIRCHILD

TMC2242AKTC1

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
CADEKA

TMC2242AKTC2

Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
FAIRCHILD