TMC223 DATASHEET (V. 1.06 / August 21, 2017)
1
TMC223 – DATASHEET
Micro Stepping Stepper Motor
Controller / Driver with Two Wire Serial Interface
and Sensorless Stall Detection
OB1
OB1
GND
GND
26
25
24
VBAT
SWI
VBAT
NC
VCP
CPP
CPN
TMC 223
QFN32
8
VCP
12
13
14
15
16
NC
11
HW
10
GND
9
open
VBAT
TST
11
GND
12
SCL
9
10
VDD
OB2
CPN
CPP
VBAT
VBAT
SDA
13
23
GND
22
14
21
OB1
VBAT
OA1
VBAT
15
OB2
20
OA2
OB2
19
16
OA1
18
GND
17
OA1
7
HW
27
6
8
28
5
7
GND
29
17
TMC223
6
open
30
4
TST
31
3
5
32
2
4
VBAT
18
1
VDD
GND
TRINAMIC
3
SWI
OA2
19
SCL
OA2
20
2
GND
1
SDA
GND
TRINAMIC Motion Control GmbH & Co. KG
Hamburg, Germany
Top view
1 Features
The TMC223 is a combined micro-stepping stepper motor motion controller and driver with RAM and
OTP memory and integrated sensorless stall detection. The RAM or OTP memory is used to store
motor parameters and configuration settings. The TMC223 allows up to four bit of micro stepping and
a coil current of up to 800 mA. After initialization it performs all time critical tasks autonomously based
on target positions and velocity parameters. Communications to a host takes place via a two wire serial
interface. Together with an inexpensive micro controller the TMC223 forms a complete motion control
system. The main benefits of the TMC223 are:
•
•
•
•
Motor driver
• Controls one stepper motor with four bit micro stepping
• Programmable Coil current up to 800 mA / Supply voltage range operating range 8V ... 29V
• Fixed frequency PWM current control with automatic selection of fast and slow decay mode
• Full step frequencies up to 1 kHz
• High temperature, open circuit, short, over-current and under-voltage diagnostics
Motion controller
• Internal 16-bit wide position counter
• Configurable speed and acceleration settings
• Build-in ramp generator for autonomous positioning and speed control
• On-the-fly alteration of target position
• reference switch input available for read out
Two wire serial interface
• Transfer rates up to 350 kbps
• Diagnostics and status information as well as motion parameters accessible
• Field-programmable node addresses (32)
Sensorless Stall Detection
o GetFullStatus1 & GetFullStatus2 with parameters concerning stall detection
o SetStallParam to set stall detection parameters
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
2
Life support policy
TRINAMIC Motion Control GmbH & Co. KG does
not authorize or warrant any of its products for
use in life support systems, without the specific
written consent of TRINAMIC Motion Control
GmbH & Co. KG.
Life support systems are equipment intended to
support or sustain life, and whose failure to
perform, when properly used in accordance with
instructions provided, can be reasonably
expected to result in personal injury or death.
© TRINAMIC Motion Control GmbH & Co. KG 2017
Information given in this data sheet is believed to
be accurate and reliable. However no
responsibility is assumed for the consequences
of its use nor for any infringement of patents or
other rights of third parties which may result form
its use.
Specifications subject to change without notice.
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
3
Table of Contents
1
FEATURES ...................................................................................................................................... 1
2
GENERAL DESCRIPTION .............................................................................................................. 5
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Block Diagramm ........................................................................................................................ 5
Position Controller / Main Control ............................................................................................. 5
Stepper Motor Driver ................................................................................................................. 5
Two Wire Serial Interface.......................................................................................................... 5
Sensorless Stall Detection ........................................................................................................ 6
Miscellaneous ........................................................................................................................... 6
Pin and Signal Descriptions ...................................................................................................... 7
3
TYPICAL APPLICATION ................................................................................................................. 8
4
ORDERING INFORMATION ........................................................................................................... 8
5
FUNCTIONAL DESCRIPTION ........................................................................................................ 9
5.1
Position Controller and Main Controller .................................................................................... 9
5.1.1
Stepping Modes ................................................................................................................. 9
5.1.2
Velocity Ramp .................................................................................................................... 9
5.1.3
Examples for different Velocity Ramps ............................................................................ 10
5.1.4
Vmax Parameter .............................................................................................................. 11
5.1.5
Vmin Parameter ............................................................................................................... 12
5.1.6
Acceleration Parameter ................................................................................................... 12
5.1.7
Position Ranges ............................................................................................................... 13
5.1.8
Secure Position ................................................................................................................ 13
5.1.9
External Switch ................................................................................................................ 13
5.1.10 Motor Shutdown Management ......................................................................................... 14
5.1.11 Reference Search / Position initialization ......................................................................... 15
5.1.12 Temperature Management .............................................................................................. 16
5.1.13 Battery Voltage Management .......................................................................................... 17
5.1.14 Internal handling of commands and flags ........................................................................ 18
5.2
RAM and OTP Memory ........................................................................................................... 20
5.2.1
RAM Registers ................................................................................................................. 20
5.2.2
Status Flags ..................................................................................................................... 21
5.2.3
OTP Memory Structure .................................................................................................... 22
5.3
Stepper Motor Driver ............................................................................................................... 22
5.3.1
Coil current shapes .......................................................................................................... 23
5.3.2
Transition Irun to Ihold ..................................................................................................... 24
5.3.3
Chopper Mechanism ........................................................................................................ 25
6
TWO-WIRE SERIAL INTERFACE................................................................................................. 26
6.1
Physical Layer ......................................................................................................................... 26
6.2
Communication on Two Wire Serial Bus Interface ................................................................. 26
6.3
Physical Address of the circuit ................................................................................................ 27
6.4
Write data to TMC223 ............................................................................................................. 27
6.5
Read data from TMC223 ........................................................................................................ 28
6.6
Timing characteristics of the serial interface ........................................................................... 29
6.7
Application Commands Overview ........................................................................................... 30
6.8
Command Description ............................................................................................................ 31
6.8.1
GetFullStatus1 ................................................................................................................. 31
6.8.2
GetFullStatus2 ................................................................................................................. 32
6.8.3
GetOTPParam ................................................................................................................. 32
6.8.4
GotoSecurePosition ......................................................................................................... 33
6.8.5
HardStop .......................................................................................................................... 33
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
4
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
6.8.6
ResetPosition ................................................................................................................... 33
6.8.7
ResetToDefault ................................................................................................................ 34
6.8.8
RunInit .............................................................................................................................. 34
6.8.9
SetMotorParam ................................................................................................................ 35
6.8.10 SetStallParam .................................................................................................................. 35
6.8.11 SetOTPParam .................................................................................................................. 36
6.8.12 SetPosition ....................................................................................................................... 37
6.8.13 SoftStop ........................................................................................................................... 37
6.9
Positioning Task Example ....................................................................................................... 38
7
SENSORLESS STALL DETECTION............................................................................................. 39
7.1
7.2
7.3
8
Stall Detection Flags ............................................................................................................... 39
Stall Detection Parameters...................................................................................................... 40
Example of Stall Detection Parameter Setting ........................................................................ 42
FREQUENTLY ASKED QUESTIONS ........................................................................................... 43
8.1
8.2
8.3
8.4
9
Using the bus interface............................................................................................................ 43
General problems when getting started .................................................................................. 43
Using the device ...................................................................................................................... 44
Finding the reference position ................................................................................................. 45
PACKAGE OUTLINE ..................................................................................................................... 46
9.1
9.2
10
10.1
11
11.1
11.2
11.3
11.4
SOIC-20 .................................................................................................................................. 46
QFN32 ..................................................................................................................................... 47
PACKAGE THERMAL RESISTANCE........................................................................................ 48
SOIC-20 Package ................................................................................................................ 48
ELECTRICAL CHARACTERISTICS .......................................................................................... 49
Absolute Maximum Ratings ................................................................................................. 49
Operating Ranges................................................................................................................ 49
DC Parameters .................................................................................................................... 49
AC Parameters .................................................................................................................... 51
REVISION HISTORY ............................................................................................................................. 52
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5
2 General Description
2.1
Block Diagramm
SWI
SDA
SCL
HW
TST
OA1
Two Wire
Serial
Interface
Decoder
Position Controller
OB1
DACs
Main control
& Registers
OTP + ROM
PWM
regulator
Y
VBAT
Voltage
Regulator
Oscillator
Charge Pump
VDD
VCP
2.2
Reference Voltage
&
Thermal Monitoring
CP2 CP1
Position Controller / Main Control
Motor parameters, e.g. acceleration, velocity and position parameters are passed to the main control
block via the serial interface. These information are stored internally in RAM or OTP memory and are
accessible by the position controller. This block takes over all time critical tasks to drive a stepper
motor to the desired position under abiding the desired motion parameters.
The main controller gets feedback from the stepper motor driver block and is able to arrange internal
actions in case of possible problems. Diagnostics information about problems and errors are
transferred to the serial interface block.
2.3
Stepper Motor Driver
Two H-bridges are employed to drive both windings of a bipolar stepper motor. The internal transistors
can reach an output current of up to 800 mA. The PWM principle is used to force the given current
through the coils. The regulation loop performs a comparison between the sensed output current and
the internal reference. The PWM signals to drive the power transistors are derived from the output of
the current comparator.
2.4
OA2
Sinewave
table
Serial
Interface
Controller
Test
PWM
regulator
X
Two Wire Serial Interface
Communication between a host and the TMC223 takes places via the two wire bi-directional serial
interface. Motion instructions and diagnostics information are provided to or from the Main Control
block. It is possible to connect up to 32 devices on the same bus. Slave addresses are programmable
via OTP memory or an external pin.
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
OB2
6
2.5
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
Sensorless Stall Detection
The TMC223 is equipped with a sensorless stall detection, to be used for noiseless reference search
without reference switch and motion monitoring purposes as detection of motor blocking.
2.6
Miscellaneous
Besides the main blocks the TMC223 contains the following:
• an internal charge pump used to drive the high side transistors.
• an internal oscillator running at 4 MHz +/- 10% to clock the two wire serial interface, the
positioning unit, and the main control block
• internal voltage reference for precise referencing
• a 5 Volts voltage regulator to supply the digital logic
• protection block featuring Thermal Shutdown, Power-On-Reset, etc.
• optional PWM jitter for reduction of EMI
• two programmable PWM frequencies (23 kHz and 46 kHz)
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
GND
GND
13
VBAT
VBAT
VCP
CPP
CPN
TMC 223
QFN32
8
SDA
24
GND
NC
23
14
SWI
22
VBAT
OB1
VBAT
21
15
VBAT
OB2
20
OA2
VBAT
OB2
19
16
OA1
18
GND
OA1
17
OA1
17
11
VCP
Name
SOIC20
QFN32
SDA
SCL
VDD
GND
1
2
3
4,7,14,17
TST
open
HW
5
6
8
8
9
10
11,14,25,26,
31,32
12
13
15
CPN
CPP
VCP
VBAT
OB2
OB1
OA2
OA1
SWI
9
10
11
12, 19
13
15
16
18
20
12
13
14
15
16
NC
11
10
HW
10
CPP
9
GND
VBAT
open
12
TST
9
GND
OB2
CPN
NC
25
7
8
HW
26
6
GND
27
5
7
28
18
TMC223
6
open
29
4
TST
30
3
5
31
2
GND
32
1
4
VBAT
SCL
3
VDD
OB1
TRINAMIC
SCL
SWI
OB1
19
OA2
2
OA2
20
GND
1
SDA
GND
Pin and Signal Descriptions
VDD
2.7
7
Top view
Description
SDA Serial Data input/output
SCL Serial Clock input
internal supply (needs external decoupling capacitor)
ground, heat sink
test pin (to be tied to ground in normal operation)
must be left open
hard-wired serial interface address bit input
Hint: The SWI is not a logic level input as usual; it needs to
be connected via 1K resistor either to +VBAT or GND;
17
negative connection of external charge pump capacitor
18
positive connection of external charge pump capacitor
19
connection of external charge pump filter capacitor
3-5,20-22 battery voltage supply
23,24
negative end of phase B coil
27,28
positive end of phase B coil
29,30
negative end of phase A coil
1,2
positive end of phase A coil
6
reference switch input;
Hint: The SWI is not a logic level input as usual; it needs to
be connected via 1K resistor either to +VBAT or GND;
7,16
internally not connected (shields when connected to ground)
Table 1: TMC223 Signal Description
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
8
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
3 Typical Application
External
Switch
Two wire serial Interface
1
SDA
SWI
20
Connect to
GND or VBAT
SWI
1k /1/4W
2.7 nF
2
SCL
VBAT
19
3
VDD
OA1
18
4
GND
GND
17
5
TST
OA2
16
6
open
OB1
15
GND
GND
14
100 nF
100 nF
1 µF
Tantalum
7
Connect to
GND or VBAT
M
VBAT
8...29 V
8
HW
OB2
13
9
CPN
VBAT
12
10
CPP
VCP
11
1k /1/4W
100 nF
220 nF
16 V
220 nF
16 V
100 µF
Figure 1: TMC223 Typical Application
Notes :
•
•
•
•
•
Resistors tolerance +- 5%
2.7nF capacitors: 2.7nF is the minimum value, 10nF is the maximum value
the 1µF and 100µF must have a low ESR value
100nF capacitors must be close to pins VBB and VDD
220nF capacitors must be as close as possible to pins CPN, CPP, V CP and VBB to reduce EMC radiation.
4 Ordering Information
Part No.
TMC223-SI
TMC223-LI
Package
SOIC-20
QFN32
Peak Current
800mA
800mA
Table 2: Ordering Information
www.trinamic.com
Temperature Range
-40°C..125°C
-40°C..125°C
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
9
5 Functional Description
5.1
Position Controller and Main Controller
5.1.1
Stepping Modes
The TMC223 supports up to 16 micro steps per full step, which leads to smooth and low torque ripple
motion of the stepping motor. Four stepping modes (micro step resolutions) are selectable by the user
(see also Table 11):
•
•
•
•
5.1.2
Half step Mode
1/4 Micro stepping
1/8 Micro stepping
1/16 Micro stepping
Velocity Ramp
A common velocity ramp where a motor drives to a desired position is shown in the figure below. The
motion consists of a acceleration phase, a phase of constant speed and a final deceleration phase.
Both the acceleration and the deceleration are symmetrical. The acceleration factor can be chosen
from a table with 16 entries. (Table 5: Acc Parameter on page 12). A typical motion begins with a start
velocity Vmin. During acceleration phase the velocity is increased until Vmax is reached. After
acceleration phase the motion is continued with velocity Vmax until the velocity has to be decreased in
order to stop at the desired target position. Both velocity parameters Vmin and Vmax are
programmable, whereas Vmin is a programmable ratio of Vmax. (See Table 3: Vmax Parameter on
page 11 and Table 4: Vmin on page 12). The user has to take into account that Vmin is not allowed to
change while a motion is ongoing. Vmax is only allowed to change under special circumstances. (See
5.1.4 Vmax Parameter on page 11).
The peak current value to be fed to each coil of the stepper-motor is selectable from a table with 16
possible values. It has to be distinguished between the run current Irun and the hold current Ihold. Irun
is fed through the stepper motor coils while a motion is performed, whereas Ihold is the current to hold
the stepper motor before or after a motion. More details about Irun and Ihold can be found in 5.3.1. and
5.3.2.
Velocity resp. acceleration parameters are accessable via the serial interface. These parameters are
written via the SetMotorParam command (see 6.8.9) and read via the GetFullStatus1 command (see
6.8.1).
Velocity V
[FS/s]
Vmax
Vmin
Xstart
State of Motion
No
Movement
Acceleration
Phase
Xtarget
Constant Velocity
Deceleration
Phase
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
No
Movement
time
[s]
10
5.1.3
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
Examples for different Velocity Ramps
The following figures show some examples of typical motions under different conditions:
Velocity V
Vmax
Vmin
Xstart
Xtarget_1
Xtarget_2
time
Figure 2: Motion with change of target position
Velocity V
Vmax
Vmin
Xstart
Xtarget_1
Xtarget_2
time
Figure 3: Motion with change of target position while in deceleration phase
Velocity V
Vmax
Vmin
Xstart
Xtarget
time
Figure 4: Short Motion Vmax is not reached
Velocity V
Vmax
Vmin
Xstart
Xtarget_1
Xtarget_2
time
Figure 5: Linear Zero crossing (change of target position in opposite direction)
The motor crosses zero velocity with a linear shape. The velocity can be smaller than the programmed
Vmin value during zero crossing. Linear zero crossing provides very low torque ripple to the stepper
motor during crossing.
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.1.4
11
Vmax Parameter
The desired maximum velocity Vmax can be chosen from the table below:
Vmax
index
Vmax
[FS/s]
Vmax
group
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
99
136
167
197
213
228
243
273
303
334
364
395
456
546
729
973
A
B
C
D
Half-Step
Mode
[half-steps/s]
197
273
334
395
425
456
486
546
607
668
729
790
912
1091
1457
1945
Stepping Mode
1/4 micro
1/8 micro
stepping
stepping
[micro-steps/s]
[micro-steps/s]
395
546
668
790
851
912
973
1091
1213
1335
1457
1579
1823
2182
2914
3891
790
1091
1335
1579
1701
1823
1945
2182
2426
2670
2914
3159
3647
4364
5829
7782
1/16 micro
stepping
[micro-steps/s]
1579
2182
2670
3159
3403
3647
3891
4364
4852
5341
5829
6317
7294
8728
11658
15564
Table 3: Vmax Parameter
Under special circumstances it is possible to change the Vmax parameters while a motion is ongoing.
All 16 entries for the Vmax parameter are divided into four groups A, B, C and D. When changing
Vmax during a motion take care that the new Vmax value is within the same group. Background: The
TMC223 uses an internal pre-divider for positioning calculations. Within one group the pre-divider is
equal. When changing Vmax between different groups during a motion, correct positioning is not
ensured anymore.
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
12
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.1.5
Vmin Parameter
The minimum velocity parameter is a programmable ratio between 1/32 and 15/32 of Vmax. It is also
possible to set Vmin to the same velocity as Vmax by setting Vmin index to zero. The table below
shows the possible rounded values of Vmin given within unit [FS/s].
Vmin Vmax
index factor
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
1/32
2/32
3/32
4/32
5/32
6/32
7/32
8/32
9/32
10/32
11/32
12/32
13/32
14/32
15/32
Vmax group [A...D] and Vmax index [0…15]
A
B
C
0
1
2
3
4
5
6
7
8
9
10 11 12
99 136 167 197 213 228 243 273 303 334 364 395 456
3
4
5
6
6
7
7
8
8
10 10 11 13
6
8
10 11 12 13 14 15 17 19 21 23 27
9 12 15 18 19 21 22 25 27 30 32 36 42
12 16 20 24 26 28 30 32 36 40 44 48 55
15 21 26 30 32 35 37 42 46 52 55 61 71
18 25 30 36 39 42 45 50 55 61 67 72 84
22 30 36 43 46 50 52 59 65 72 78 86 99
24 33 41 49 52 56 60 67 74 82 90 97 112
28 38 47 55 59 64 68 76 84 94 101 111 128
30 42 52 61 66 71 75 84 94 103 112 122 141
34 47 57 68 72 78 83 94 103 114 124 135 156
37 50 62 73 79 85 91 101 112 124 135 147 170
40 55 68 80 86 92 98 111 122 135 147 160 185
43 59 72 86 92 99 106 118 132 145 158 172 198
46 64 78 92 99 107 114 128 141 156 170 185 214
13
546
15
30
50
65
84
99
118
134
153
168
187
202
221
236
256
D
14
729
19
42
65
88
111
134
156
179
202
225
248
271
294
317
340
15
973
26
57
88
118
149
179
210
240
271
301
332
362
393
423
454
Table 4: Vmin values [FS/s] for all Vmin index – Vmax index combinations
5.1.6
Acceleration Parameter
The acceleration parameter can be chosen from a wide range of available values as described in the
table below. Please note that the acceleration parameter is not to change while a motion is ongoing.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
99
14785
Acc index
Acceleration Values in [FS/s2] dependent on Vmax
Vmax [FS/s]
136 167 197 213 228 243 273 303 334 364 395 456 546 729 973
49
106
473
218
735
1004
3609
6228
8848
11409
13970
16531
19092
21886
24447
27008
29570
34925
29570
40047
Table 5: Acc Parameter
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
13
The amount of equivalent full steps during acceleration phase can be computed by the next equation:
2 V min 2
Nstep V max
2 Acc
5.1.7
Position Ranges
Position information is coded by using two’s complement format. Depending on the stepping mode
(See 5.1.1) the position ranges are as listed in the following table:
Stepping Mode
Half-stepping
1/4 micro-stepping
1/8 micro-stepping
1/16 micro-stepping
Position Range
-4096…+4095
(-212…+212-1)
-8192…+8191
(-213…+213-1)
-16384…+16383
(-214…+214-1)
-32768…+32767
(-215…+215-1)
Full range excursion
8192 half-steps
213
16384 micro-steps
214
32768 micro-steps
215
65536 micro-steps
216
Table 6: Position Ranges
Target positions can be programmed via serial interface by using the SetPosition command (see
6.8.12). The actual motor position can be read by the GetFullStatus2 command (see 6.8.2).
5.1.8
Secure Position
The GotoSecurePosition command drives the motor to a pre-programmed secure position (see 6.8.4).
The secure position is programmable by the user. Secure position is coded with 11 bits, therefore the
resolution is lower than for normal positioning commands, as shown in the following table.
Stepping Mode
Half-stepping
1/4 micro stepping
1/8 micro stepping
1/16 micro stepping
Secure Position Resolution
4 half steps
8 micro steps (1/4th)
16 micro steps (1/8th)
32 micro steps (1/16th)
Table 7: Secure Position Resolution
5.1.9
External Switch
Pin SWI (see Figure 1, on page 8) will attempt to source and sink current in/from the external switch
pin. This is to check whether the external switch is open or closed, resp. if the pin is connected to
ground or Vbat. The status of the switch can be read by using the GetFullStatus1 command. As long
as the switch is open, the flag is set to zero.
The ESW flag just represents the status of the input switch. The SWI input is intended as a physical
interface for a mechanical switch that requires a cleaning current for proper operation. The SWI input
detects if the switch is open or connected either to ground or to Vbat. The SWI input is not a digital
logic level input. The status of the switch does not automatically perform actions as latching of the
actual position. Those actions have to be realized by the application software.
Important Hint: The SWI is not a logic level input as usual; it needs to be connected via 1K resistor
either to +VBAT or GND;
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
14
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.1.10 Motor Shutdown Management
The TMC223 is set into motor shutdown mode as soon as one of the following condition occurs:
•
•
•
•
The chip temperature rises above the thermal shutdown threshold Ttsd. See 5.1.12 Temperature
Management on Page 16
The battery voltage drops below UV2 See 5.1.13 Battery Voltage Management on Page 17.
An electrical problem occurred, e.g. short circuit, open circuit, etc. In case of such an problem flag
is set to one.
Charge pump failure, indicated by flag set to one.
During motor shutdown the following actions are performed by the main controller:
•
•
H-bridges are set into high impedance mode
The target position register TagPos is loaded with the contents of the actual position register
ActPos.
The two-wire-serial-interface remains active during motor shutdown. To leave the motor shutdown
state the following conditions must be true:
•
•
Conditions which led to a motor shutdown are not active anymore
A GetFullStatus1 command is performed via serial interface.
Leaving the motor shutdown state initiates the following
•
•
•
H-bridges in Ihold mode
Clock for the motor control digital circuitry is enabled
The charge pump is active again
Now the TMC223 is ready to execute any positioning command.
IMPORTANT NOTE:
First, a GetFullStatus1 command has to be executed after power-on to activate the TMC223.
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
15
5.1.11 Reference Search / Position initialization
A stepper motor does not provide information about the actual position of the motor. Therefore it is
recommended to perform a reference drive after power-up or if a motor shutdown happened in case of
a problem. The RunInit command initiates the reference search. The RunInit command consists of a
Vmin and Vmax parameter and also position information about the end of first and second motion
(6.8.8 RunInit).
A reference drive consists of two motions (Figure 6: RunInit): The first motion is to drive the motor into
a stall position or a reference switch. The first motion is performed under compliance of the selected
Vmax and Vmin parameter and the acceleration parameter specified in the RAM. The second motion
has got a rectangular shape, without a acceleration phase and is to drive the motor out of the stall
position or slowly towards the stall position again to compensate for the bouncing of the faster first
motion to stop as close to the stall position as possible. The maximum velocity of the second motion
equals to Vmin. The positions of Pos1 and Pos2 can be chosen freely (Pos1 > Pos2 or Pos1 < Pos2).
After the second motion the actual position register is set to zero. Finally, the secure position will be
traveled to if it is enabled (different from the most negative decimal value of –1024).
Once the RunInit command is started it can not be interrupted by any other command except a
condition occurs which leads to a motor shutdown (See 5.1.10 Motor Shutdown Management) or a
HardStop command is received. Furthermore the master has to ensure that the target position of the
first motion is not equal to the actual position of the stepper motor and that the target positions of the
first and the second motion are not equal. This is very important otherwise the circuit goes into a
deadlock state. Once the circuit finds itself in a deadlock state only a HardStop command followed by a
GetFullStatus1 command will cause the circuit to leave the deadlock state.
Velocity V
[FS/s]
2nd Motion
1st Motion
Vmax
Vmin
Pos1
Figure 6: RunInit
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
Pos2
Position X
[FS]
16
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.1.12 Temperature Management
The TMC223 provides an internal temperature monitoring. The circuit goes into shutdown mode if the
temperature exceeds threshold Ttsd, furthermore two thresholds are implemented to generate a
temperature pre-warning.
Low Temperatur
= "01"
= '0'
= '0'
T° < Tlow
T° > Tlow
Normal Temp.
= "00"
= '0'
= '0'
T° < Ttw &
GetFullStatus1
T° < Ttw &
GetFullStatus1
T° > Ttw
Thermal Warning
= "10"
= '1'
= '0'
T° > Ttw
Post
Thermal Warning
= "00"
= '1'
= '0'
T° < Ttw
T° > Ttsd
Thermal Shutdown
= "11"
= '1'
= '1'
SoftStop, if motion
Motion = disabled
T° > Ttsd
T° < Ttsd
Post Thermal
Shutdown 1
= "10"
= '1'
= '1'
Motion = disabled
T° > Ttw
T° < Ttw
Post Thermal
Shutdown 2
= "00"
= '1'
= '1'
Motion = disabled
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
17
5.1.13 Battery Voltage Management
The TMC223 provides an internal battery voltage monitoring. The circuit goes into shutdown mode if
the battery voltage falls below threshold UV2, furthermore one threshold UV1 is implemented to
generate a low voltage warning.
Vbat > UV1 &
GetFullStatus1
Vbat > UV1 &
GetFullStatus1
Normal Voltage
= '0'
= '0'
Motion = enabled
Vbat > UV1
Vbat < UV1
Low Voltage
= '0'
= '0'
Motion = enabled
Vbat < UV2
(no Motion)
Vbat < UV2
(Motion)
Stop Mode 1
Stop Mode 2
= '1'
= '0'
Motion = disabled
= '1'
= '1'
HardStop
Motion = disabled
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
18
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.1.14 Internal handling of commands and flags
The internal handling of commands and flags differs. Commands are handled with different priorities
depending on the current state and the current status of internal flags, see figure below. SetPosition or
GotoSecurePosition commands are ignored as long as the flag is set. Details can be
found in Table 8: Priority Encoder.
Note: A HardStop command is sent by the master or triggered internally in case of an electrical defect
or over temperature.
A description of the available commands can be found in 6.8 Command Description. A list of the
internal flags can be found in 5.2.2 Status Flags.
As an example: When the circuit drives the motor to its programmed target position, state “GotoPos” is
entered. There are three events which can cause to leave this state: HardStop command received,
SoftStop command received or target position reached. If all three events occur at the same time the
HardStop command is executed since it has the highest priority. The Motion finished event (target
position reached) has the lowest priority and thus will only cause transition to “Stopped” state when
both other events do not occur.
RunInit
Thermal Shutdown
HardStop
Motion finished
Power On
Reset
RunInit
SoftStop
HardStop
Thermal Shutdown
SoftStop
HardStop
HardStop
Motion finished
HardStop
Thermal Shutdown
GotoSecurePosition
Stopped
ShutDown
GetFullStatus1
AND + = 0
SetPosition
GotoPos
Motion finished
Motion finished
Figure 7: Internal handling of commands and flags
www.trinamic.com
Priorities
High
Low
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
State
Command
GetFullStatus2
GetOTPParam
19
Stopped
GotoPos
RunInit
SoftStop
HardStop
ShutDown
motor stopped,
Ihold in coils
motor motion
ongoing
no influence on
RAM and
TagPos
motor
decelerating
motor forced to
stop
I²C in-frame
response
OTP refresh;
I²C in-frame
I²C in-frame
response
OTP refresh;
I²C in-frame
I²C in-frame
response
OTP refresh;
I²C in-frame
I²C in-frame
response
OTP refresh;
I²C in-frame
I²C in-frame
response
OTP refresh;
I²C in-frame
I²C in-frame
response
I²C in-frame
response
I²C in-frame
response
I²C in-frame
response
I²C in-frame
response
motor stopped,
H-bridges in
Hi-Z
I²C in-frame
response
OTP refresh;
I²C in-frame
I²C in-frame
response;
if ( or
) = ‘1’
then
Stopped
OTP refresh;
OTP to RAM;
AccShape reset
OTP refresh;
OTP to RAM;
AccShape reset
OTP refresh;
OTP to RAM;
AccShape reset
(note 2)
OTP refresh;
OTP to RAM;
AccShape reset
OTP refresh;
OTP to RAM;
AccShape reset
OTP refresh;
OTP to RAM;
AccShape reset
RAM update
RAM update
RAM update
RAM update
RAM update
RAM update
GetFullStatus1
[attempt to clear
and
flags]
ResetToDefault
[ActPos and TagPos
are not altered]
SetMotorParam
[Master takes care
about proper update]
TagPos and
ActPos reset
TagPos updated;
SetPosition
GotoPos
If = ‘1’
GotoSecurePosi then TagPos =
tion
SecPos;
GotoPos
RunInit
RunInit
TagPos and
ActPos reset
ResetPosition
HardStop
SoftStop
HardStop
TagPos updated TagPos updated
If = ‘1’ If = ‘1’
then TagPos = then TagPos =
SecPos
SecPos
HardStop;
=
‘1’
SoftStop
HardStop;
=
‘1’
HardStop;
=
‘1’
HardStop
[ ( or
or ) =
‘1’ = ‘1’ ]
Thermal shutdown
[ = ‘1’ ]
Shutdown
HardStop
HardStop
Shutdown
SoftStop
SoftStop
Motion finished
n.a.
Stopped
Stopped
Stopped;
TagPos
=ActPos
Stopped;
TagPos
=ActPos
n.a.
Table 8: Priority Encoder
Color code:
Command ignored
Transition to another state
Master is responsible for proper update (see note 5)
Notes:
1
2
3
4
5
6
After Power on reset, the Shutdown state is entered. The Shutdown state can only be left after a GetFullStatus1
command (so that the Master could read the flag).
A RunInit sequence runs with a separate set of RAM registers. The parameters which are not specified in a RunInit
command are loaded with the values stored in RAM at the moment the RunInit sequence starts. AccShape is forced to
‘1’ during second motion even if a ResetToDefault command is issued during a RunInit sequence, in which case
AccShape at ‘0’ will be taken into account after the RunInit sequence. A GetFullStatus1 command will return the
default parameters for Vmax and Vmin stored in RAM.
Shutdown state can be left only when and flags are reset.
Flags can be reset only after the master could read them via a GetFullStatus1 command, and provided the physical
conditions allow for it (normal temperature, correct battery voltage and no electrical or charge pump defect).
A SetMotorParam command sent while a motion is ongoing (state GotoPos) should not attempt to modify Acc and
Vmin values. This can be done during a RunInit sequence since this motion uses its own parameters, the new
parameters will be taken into account at the next SetPosition command.
= ‘1’ when register SecPos is loaded with a value different from the most negative value (i.e. different from
0x400 = “100 0000 0000”)
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
20
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
7
flag allows to distinguish whether state Stopped was entered after HardStop/SoftStop or not. is set to
‘1’ when leaving state HardStop or SoftStop and is reset during first clock edge occurring in state Stopped.
While in state Stopped, if ActPos TagPos there is a transition to state GotoPos. This transition has the lowest
priority, meaning that , , etc. are first evaluated for possible transitions.
If is active, then SetPosition and GotoSecurePosition commands are ignored (they will not modify TagPos
register whatever the state) and motion to secure position is forbidden. Other commands like RunInit or ResetPosition
will be executed if allowed by current state. can only be cleared by a GetFullStatus1 command.
8
9
5.2
RAM and OTP Memory
Some RAM registers (e.g. Ihold, Irun) are initialized with the content of the OTP (One Time
Programmable) memory. The content of RAM registers that are initialized via OTP can be changed
afterwards. This allows user initialization default values, whereas the default values are one time
programmable by the user. Some OTP bits are address bits of the TMC223.
5.2.1
RAM Registers
Register
Mnemonic
Actual Position
ActPos
Length
(bit)
16
Target Position
TagPos
16
Acceleration
Shape
AccShape
1
Coil Peak Current
Irun
4
Coil Hold Current
Ihold
4
Minimum Velocity
Vmin
4
Maximum Velocity
Vmax
4
Shaft
Shaft
1
Acceleration /
Deceleration
Acc
4
Secure Position
SecPos
11
Stepping Mode
StepMode
2
www.trinamic.com
Related commands
Comment
GetFullStatus2
ResetPosition
SetPosition
GetFullStatus2
ResetPosition
GetFullStatus1
SetMotorParam
ResetToDefault
GetFullStatus1
SetMotorParam
ResetToDefault
GetFullStatus1
SetMotorParam
ResetToDefault
GetFullStatus1
SetMotorParam
ResetToDefault
GetFullStatus1
SetMotorParam
ResetToDefault
GetFullStatus1
SetMotorParam
ResetToDefault
GetFullStatus1
SetMotorParam
ResetToDefault
Actual Position of the Stepper Motor. 16-bit
signed
Target Position of the Stepper Motor. 16-bit
signed
GetFullStatus2
ResetToDefault
GetFullStatus1
GetFullStatus2
ResetToDefault
Reset
State
0x0000
0 = Acceleration with Acc Parameter.
1 = Velocity set to Vmin, without
acceleration
Coil current when motion is ongoing
(Table 12: Irun / Ihold Settings)
Coil current when motor stands still
(Table 12: Irun / Ihold Settings)
Start Velocity of the stepper motor
(Table 4: Vmin )
Target Velocity of the stepper motor
(Table 3: Vmax Parameter)
Direction of motion
Parameter for acceleration
(Table 5: Acc Parameter)
Target Position for GotoSecurePosition
command (6.8.4 GotoSecurePosition); 11
MSBs of 16-bit position (LSBs fixed to ‘0’)
Micro stepping mode
(5.1.1 Stepping Modes)
OTP
Memory
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.2.2
21
Status Flags
The table below shows the flags which are accessable by the serial interface in order to receive
information about the internal status of the TMC223.
Flag
Digital supply
Reset
Over current in coil
A
Over current in coil
B
StepLoss
Mnemonic
VddReset
Length
(bit)
1
OVC1
1
OVC2
1
StepLoss
1
SecEn
1
ElDef
1
Temperature Info
Tinfo
2
Thermal Warning
TW
1
Thermal Shutdown
TSD
1
Motion
3
ESW
1
CPFail
1
HS
1
Secure position
enabled
Electrical Defect
Motion Status
External Switch
Status
Charge Pump
failure
Electrical flag
Related
Comment
Command
GetFullStatus1 Set to ‘1’ after power-up or after a micro-cut in the supply
voltage to warn that RAM contents may have been lost.
Is set to ‘0’ after GetFullStatus1 command.
GetFullStatus1 Set to ‘1’ if an over current in coil #1 was detected. Is set to
‘0’ after GetFullStatus1 command.
GetFullStatus1 Set to ‘1’ if an over current in coil #2 was detected. Is set to
‘0’ after GetFullStatus1 command.
GetFullStatus1 Set to ‘1’ when under voltage, over current or over
temperature event was detected. Is set to ‘0’ after
GetFullStatus1 command. SetPosition and
GotoSecurePosition commands are ignored when
= 1
‘0’ if SecPos = “100 0000 0000”
Internal use
‘1’ otherwise
GetFullStatus1 Set to ‘1’ if open circuit or a short was detected, (
or ). Is. Is set to ‘0’ after GetFullStatus1 command.
GetFullStatus1 Indicates the chip temperature
“00” = normal temperature
“01 = low temperature warning
“10” = high temperature warning
“11” = motor shutdown
GetFullStatus1 Set to one if temperature raises above 145 °C. Is set to ‘0’
after GetFullStatus1 command.
GetFullStatus1 Set to one if temperature raises above 155° C. Is set to ‘0’
after GetFullStatus1 command and Tinfo = “00”.
GetFullStatus1 Indicates the actual behavior of the position controller.
“000”: Actual Position = Target Position; Velocity = 0
“001”: Positive Acceleration; Velocity > 0
“010”: Negative Acceleration; Velocity > 0
“011”: Acceleration = 0 Velocity = maximum pos Velocity
“100”: Actual Position /= Target Position; Velocity = 0
“101”: Positive Acceleration; Velocity < 0
“110”: Positive Acceleration; Velocity < 0
“111”: Acceleration = 0 Velocity = maximum neg Velocity
GetFullStatus1 Indicates the status of the external switch.
‘0’ = open
‘1’ = close
GetFullStatus1 ‘0’ charge pump OK
‘1’ charge pump failure
Internal use
or or
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
Reset
state
‘1’
‘0’
‘0’
‘0’
n.a.
‘0’
“00”
‘0’
‘0’
“000”
‘0’
‘0’
‘0’
22
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.2.3
OTP Memory Structure
The table below shows where the OTP parameters are stored in the OTP memory.
Note: If the OTP memory has not been programmed, or if the RAM has not be programmed by a
SetMotorParam command, or if anyhow = ‘1’, any positioning command will be ignored, in
order to avoid any consequence due to unwanted RAM content. Please check that the correct supply
voltage is applied to the circuit before zapping the OTP (See: Table 27: DC Parameters Supply and
Voltage regulator on page 50), otherwise the circuit will be destroyed.
OTP
Address
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
OTP Bit Order
4
3
7
6
5
OSC3
OSC2
TSD2
AbsThr2
Irun2
Vmax2
SecPos9
SecPos6
DelThr2
OSC1
TSD1
AbsThr1
Irun1
Vmax1
SecPos8
SecPos5
DelThr1
AbsThr3
Irun3
Vmax3
SecPos10.
SecPos7
DelThr3
OSC0
TSD0
AbsThr0
Irun0
Vmax0
Shaft
SecPos4
DelThr0
IREF3
BG3
AD3
Ihold3
Vmin3
Acc3
SecPos3
StepMode1
2
1
0
IREF2
BG2
AD2
Ihold2
Vmin2
Acc2
SecPos2
StepMode0
IREF1
BG1
AD1
Ihold1
Vmin1
Acc1
IREF0
BG0
AD0
Ihold0
Vmin0
Acc0
LOCKBT
LOCKBG
Table 9: OTP Memory Structure
Parameters stored at address 0x00 and 0x01 and bit LOCKBT are already programmed in the OTP
memory at circuit delivery, they correspond to the calibration of the circuit and are just documented
here as an indication. Each OPT bit is at ‘0’ when not zapped. Zapping a bit will set it to ‘1’. Thus only
bits having to be at ‘1’ must be zapped. Zapping of a bit already at ‘1’ is disabled, to avoid any damage
of the Zener diode. It is important to note that only one single OTP byte can be programmed at the
same time (see command SetOTPParam).
Once OTP programming is completed, bit LOCKBG can be zapped, to disable unwanted future
zapping, otherwise any OTP bit at ‘0’ could still be zapped.
LOCKBT
Lock bit
(zapped before delivery)
LOCKBG
Protected byte
0x00 to 0x01
0x02 to 0x07
Table 10: OTP Lock bits
The command used to load the application parameters via the serial bus into the RAM prior to an OTP
Memory programming is SetMotorParam. This allows for a functional verification before using a
SetOTPParam command to program and zap separately one OTP memory byte. A GetOTPParam
command issued after each SetOTPParam command allows to verify the correct byte zapping.
5.3
Stepper Motor Driver
The StepMode parameter in SetMotorParam command (6.8.9 SetMotorParam on page 35) is used to
select between different stepping modes. Following modes are available:
StepMode parameter
00
01
10
11
Mode
Half Stepping
1/4 µStepping
1/8 µStepping
1/16 µStepping
Table 11: StepMode
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.3.1
23
Coil current shapes
The next four figures show the current shapes fed to each coil of the motor in different stepping
modes.
i
t
Figure 8: Coil Current for Half Stepping Mode
i
t
Figure 9: Coil Current for 1/4 Micro Stepping Mode
i
t
Figure 10: Coil Current for 1/8 Micro Stepping Mode
i
t
Figure 11: Coil Current for 1/16 Micro Stepping Mode
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
24
5.3.2
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
Transition Irun to Ihold
At the end of a motor motion the actual coil currents Irun are maintained in the coils at their actual DC
level for a quarter of an electrical period (two half steps) at minimum velocity. Afterwards the currents
are then set to their hold values Ihold. The figure below illustrates the mechanism:
i
t
I = Irun
I = Ihold
Figure 12: Transition Irun to Ihold
Both currents Irun and Ihold are parameterizeable using the command SetMotorParam. 16 values are
available for Irun current and 16 values for Ihold current. The table below shows the corresponding
current values.
Hint: The peak current of TMC223 is 0mA for setting Ihold = 0xF.
Irun / Ihold setting
(hexadecimal)
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xA
0xB
0xC
0xD
0xE
0xF
Peak Current
[mA]
59
71
84
100
119
141
168
200
238
283
336
400
476
566
673
0
Table 12: Irun / Ihold Settings
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
5.3.3
25
Chopper Mechanism
The chopper frequency is fixed as specified in chapter 11.4 AC Parameters on page 51. The TMC223
uses an intelligent chopper algorithm to provide a smooth operation with low resonance. The TMC223
uses internal measurements to derive current flowing through coils. If the current is less than the
desired current, the TMC223 switches a H-bridge in a way that the current will increase. Otherwise if
the current is too high, the H-bridge will be switched to decrease the current. For decreasing two
modes are available, slow decay and fast decay, whereas fast decay decreases the current faster than
slow decay. The figure below shows the chopper behavior.
Figure 13: Different Chopper Cycles with Fast and Slow Decay
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
26
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
6 Two-Wire Serial Interface
6.1
Physical Layer
Both SDA and SCL lines are connected to positive supply voltage via a current source or pull-up
resistor (see figure below). When there is no traffic on the bus both lines are high. Analog glitch filters
are implemented to suppress spikes with a length of up to 50 ns.
+ 5V
SDA line
SCL line
SCL_IN
SCL_IN
SDA_IN
SCL_OUT
SDA_OUT
SCL_OUT
TMC222
SDA_IN
SDA_OUT
Master
Figure 14: Two Wire Serial Interface - Physical Layer
6.2
Communication on Two Wire Serial Bus Interface
Each datagram starts with a Start condition and ends with a Stop condition. Both conditions are unique
and cannot be confused with data. A high to low transition on the SDA line while SCL is high indicates
a Start condition. A low to high transition on the SDA line while SCL is high defines a Stop condition
(see figure below).
SDA
SCL
STOP
condition
START
condition
Figure 15: Two Wire Serial Interface - Start / Stop Conditions
The SCL clock is always generated by the master. On every rising transition of the SCL line the data
on SDA is valid. Data on SDA line is only allowed to change as long as SCL is low (see figure below).
SDA
SCL
data line
stable,
data valid
data change
allowed
Figure 16: Two Wire Serial Interface - Bit transfer
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
27
Every byte put on the SDA line must have a length of 8 bits, where the most significant bit (MSB) is
transferred first. The number of bytes that can be transmitted to the TCM222 is restricted to 8 bytes.
Each byte is followed by an acknowledge bit, which is issued by the receiving node (see figure below).
SDA
MSB
SCL
1
ACK
2
7
8
ACK
9
1
9
STOP
condition
START
condition
Figure 17: Two Wire Serial Interface - Data Transfer
6.3
Physical Address of the circuit
The circuit must be provided with a physical address in order to discriminate this circuit from other
ones on the serial bus. This address is coded on seven bits (two bits are internally hardwired to ‘1’),
yielding the theoretical possibility of 32 different circuits on the same bus. It is a combination of four
OTP memory bits (see Table 9: OTP Memory Structure) and one hardwired address bit (pin HW). HW
must either be connected to ground or Vbat. When HW is not connected and left floating correct
functionality of the serial interface is not guaranteed. Pin HW uses the same principle to check whether
it is connected to ground or Vbat like the SWI input (see 5.1.9 External Switch).
The TMC223 supports a “general call” address. Therefore the circuit is addressable using either the
physical slave address or address “000 0000”.
AD6
AD5
'1'
'1'
AD4
AD3
AD2
AD1
AD0
Physical address
HW2
OTP Memory
Hardwired Bit
OTP_AD3 OTP_AD2 OTP_AD1 OTP_AD0
(Connect to 0 or 1)
Figure 18: Two Wire Serial Interface - Physical Address resp. Address Field
With un-programmed OTP address bits (OTP_AD3=o, OTP_AD2=o, OTP_AD1=o, OTP_AD0=o) and
HW='0' (pin HW @ GND), the slave address resp. the address field of the TMC223 for reading is
11oooo01 (0xC1, 193) and for writing the slave address resp. the address field is 11oooo00 (0xC0,
192). The LSB of the address field selects read (='1') and write (='0'). With un-programmed OTP
address bits and HW='1' (pin HW @ Vbat), the slave address resp. the address field of the TMC223
for reading is 11oooo11 (0xC3, 195) and for writing the salve address resp. the address field is
11oooo10 (0xC2, 194).
Important Hint: The HW is not a logic level input as usual; it needs to be connected via 1K resistor
either to +VBAT or GND;
6.4
Write data to TMC223
A complete datagram consists of the following: a Start condition, the slave address (7 bit), a read/write
bit (‘0’ = write, ‘1’ = read), an acknowledge bit, a number of data bytes (8 bit) each followed by an
acknowledge bit, and a Stop condition. The acknowledge bit is used to signal to the transmitter the
correct reception of the preceding byte, in this case the TMC223 pulls the SDA line low.
The TMC223 reads the incoming data at SDA with every rising edge of the SCL line. To finish the
transmission the master has to transmit a Stop condition. Some commands for the TMC223 are
supporting eight bytes of data, other commands are transmitting two bytes of data.
Copyright © 2007-2017 TRINAMIC Motion Control GmbH & Co. KG
28
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
S
R/W A
Slave addr
'0' (Write)
master to slave
DATA
DATA
A
A
P
(n Bytes + acknowledge)
S: Start Condition
P: Stop Condition
A: Acknowledge (SDA low)
A: not Acknowledge (SDA high)
slave to master
Figure 19: Two Wire Serial Interface - Writing Data to Slave
6.5
Read data from TMC223
When reading data from a slave two datagrams are needed. The first datagram consists of two bytes
of data. The first byte consists of the slave address and the write bit. The second byte consists of the
address of an internal register of the TMC223. The internal register address is stored in the circuits
RAM. The second datagram consists of the slave address and the read bit. Then the master can read
the data bits on the SDA line with every rising edge of the SCL line. After each byte of data the master
has to acknowledge correct data reception by pulling SDA low. The last byte must not be
acknowledged by the master so that the slave knows the end of transmission (see figure below).
Dump Internal Address to Slave
S
Slave addr
R/W A
internal addr
A
DATA
A
P
'0' (Write)
Read Data from Slave
S
Slave addr
R/W A
'1' (Read)
master to slave
slave to master
DATA
A
P
(n Bytes + acknowledge)
S: Start Condition
P: Stop Condition
A: Acknowledge (SDA low)
A: not Acknowledge (SDA high)
Figure 20: Two Wire Serial Interface - Read Data from Slave
www.trinamic.com
TMC223 DATASHEET (V. 1.06 / August 21, 2017)
6.6
29
Timing characteristics of the serial interface
START
START
STOP
START
SDA
tf
tLOW
tr
tSU;DAT
tf
tHD;STA
tr
tBUF
SCL
tHD;STA
tHD;DAT
tHIGH
tSU;STA
tSU;STO
Figure 21: Definition of Timing
Parameter
Symbol
Low level input voltage:
Fixed input levels
High level input voltage:
Fixed input levels
Pulse width of spikes which must be
suppressed by the input filter
Capacitance for each I/O pin
SCL Clk frequency GetFullStatus2)
November 25, 2009 (LL) Hint concerning connecting exposed ground for cooling
added (section 9.2, page 47); operating supply voltage range
(VbbT85 parameter added for temperature < 85°C (VbbT85),
Table 27, page 50)
December 11, 2009 (LL) Hint concerning sensorless stall detection stop and
flag added (section 7.1, page 39).
1.05
1.06
March 7, 2011 (LL) Hints concerning usage of HW pin and SWI pin added
section 5.1.9 External Switch, page 13, section 6.3 Physical
Address of the circuit, page 27;
August 21, 2017 (LL) Hold current corrected in Table 12: Irun / Ihold Settings on
page 24; hint added that the peak current of TMC223 is 0mA
for setting Ihold = 0xF.
Please refer to www.trinamic.com for updated data sheets and application notes on this
product and on other products.
The TMCtechLIB CD-ROM including data sheets, application notes, schematics of evaluation
boards, software of evaluation boards, source code examples, parameter calculation
spreadsheets, tools, and more is available from TRINAMIC Motion Control GmbH & Co. KG by
request to info@trinamic.com
www.trinamic.com