TMC2226-SA [TRINAMIC]
POWER DRIVER FOR STEPPER MOTORS INTEGRATED CIRCUITS;型号: | TMC2226-SA |
厂家: | 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 MicroPlyer™ interpolation
StealthChop2™ silent motor operation
SpreadCycle™ highly dynamic motor control chopper
StallGuard4™ load and stall detection for StealthChop
CoolStep™ current 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.
StealthChop2™ No-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.
SpreadCycle™ High-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 0… 255 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
相关型号:
TMC2242AKTC
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
FAIRCHILD
TMC2242AKTC2
Digital Half-Band Interpolating/Decimating Filter 12-bit In/16-bit Out, 60 MHz
FAIRCHILD
©2020 ICPDF网 联系我们和版权申明