
18
TMC222 DATASHEET (V. 1.12 / March 7, 2011)
Copyright 2004-2011 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
GetFullStatus2
IC in-frame
response
IC in-frame
response
IC in-frame
response
IC in-frame
response
IC in-frame
response
IC in-frame
response
GetOTPParam
OTP refresh;
IC in-frame
OTP refresh;
IC in-frame
OTP refresh;
IC in-frame
OTP refresh;
IC in-frame
OTP refresh;
IC in-frame
OTP refresh;
IC in-frame
GetFullStatus1
[attempt to clear
<TSD> and <HS>
flags]
IC in-frame
response
IC in-frame
response
IC in-frame
response
IC in-frame
response
IC in-frame
response
IC 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
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”)