Datasheet

TMC223 DATASHEET (V. 1.00 / May 3rd, 2007) 19
Copyright © 2007 TRINAMIC Motion Control GmbH & Co. KG
State
Stopped GotoPos RunInit SoftStop HardStop ShutDown
Command
motor stopped,
Ihold in coils
motor motion
ongoing
no influence on
RAM and
TagPos
motor
decelerating
motor forced to
stop
motor stopped,
H-bridges in
Hi-Z
GetActualPos
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
I²C in-frame
response
GetOTPParam
OTP refresh;
I²C in-frame
OTP refresh;
I²C in-frame
OTP refresh;
I²C in-frame
OTP refresh;
I²C in-frame
OTP refresh;
I²C in-frame
OTP refresh;
I²C in-frame
GetFullStatus1
[attempt to clear
<TSD> and <HS>
flags]
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
I²C in-frame
response;
if (<TSD> or
<HS>) = ‘1’
then
Stopped
ResetToDefault
[ActPos and TagPos
are not altered]
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
SetMotorParam
[Master takes care
about proper update]
RAM update RAM update RAM update RAM update RAM update RAM update
ResetPosition
TagPos and
ActPos reset
TagPos and
ActPos reset
SetPosition
TagPos updated;
GotoPos
TagPos updated TagPos updated
GotoSecurePosi
tion
If <SecEn> = ‘1’
then TagPos =
SecPos;
GotoPos
If <SecEn> = ‘1’
then TagPos =
SecPos
If <SecEn> = ‘1’
then TagPos =
SecPos
RunInit
RunInit
HardStop
HardStop;
<StepLoss> =
‘1’
HardStop;
<StepLoss> =
‘1’
HardStop;
<StepLoss> =
‘1’
SoftStop
SoftStop
HardStop
[ (<CPFail> or
<UV2> or <ElDef>) =
‘1’ <HS> = ‘1’ ]
Shutdown
HardStop
HardStop
HardStop
Thermal shutdown
[ <TSD> = ‘1’ ]
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 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 <VddReset> flag).
2 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.
3 Shutdown state can be left only when <TSD> and <HS> flags are reset.
4 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).
5 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.
6 <SecEn> = ‘1’ when register SecPos is loaded with a value different from the most negative value (i.e. different from
0x400 = “100 0000 0000”)