18
TMC211 DATASHEET (V. 1.04 / January 7, 2005)
Stopped
GotoPos
RunInit
SoftStop
HardStop
ShutDown
Sleep
State →
motor stopped,
Ihold in coils
motor motion
ongoing
no influence on
RAM and
motor
motor forced to motor stopped,
no
Command
↓
GetActualPos
decelerating
stop
H-bridges in
Hi-Z
power
(note 1)
TagPos
LIN in-frame
response
OTP refresh;
LIN in-frame
LIN in-frame
response
OTP refresh;
LIN in-frame
LIN in-frame
response
OTP refresh;
LIN in-frame
LIN in-frame
response
OTP refresh;
LIN in-frame
LIN in-frame
response
OTP refresh;
LIN in-frame
LIN in-frame
response
OTP refresh;
LIN in-frame
LIN in-frame
response;
GetOTPParam
GetFullStatus
or GetStatus
[attempt to clear
<TSD>and <HS>
flags]
if (<TSD>or
<HS>) = ‘1’
then
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
→ Stopped
OTP refresh;
OTP to RAM;
AccShapereset
(note 3)
OTP refresh;
OTP to RAM;
AccShape
reset
ResetToDefault
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
[ActPosand TagPos
AccShapereset AccShapereset
AccShapereset AccShapereset
are not altered]
SetMotorParam
RAM update
RAM update
RAM update
RAM update
RAM update
RAM update
[Master takes care
about proper update]
TagPosand
ActPosreset
TagPosupdated;
→GotoPos
TagPosand
ResetPosition
ActPosreset
SetPosition
TagPosupdated TagPosupdated
TagPosupdated TagPosupdated
If <SecEn>= ‘1’ If <SecEn>= ‘1’
SetPositionShor
t
TagPosupdated;
→GotoPos
[half-step mode only)]
If <SecEn>= ‘1’
then TagPos=
SecPos;
GotoSecurePosit
ion
then TagPos=
then TagPos=
SecPos
SecPos
→GotoPos
RunInit
→RunInit
→HardStop;
<StepLoss>=
‘1’
→HardStop;
<StepLoss>=
‘1’
→HardStop;
<StepLoss>=
‘1’
HardStop
SoftStop
Sleepor LIN
timeout
→SoftStop
If <SecEn>= ‘1’ No action;
No action;
If <SecEn>= ‘1’
then TagPos=
SecPos
else → SoftStop
then TagPos=
SecPos;
<Sleep>flag will <Sleep>flag will
[ ⇒ <Sleep>= ‘1’,
reset by any LIN
command received
later ]
See note 9
be evaluated
be evaluated
when motor
stops
→Sleep
will be evaluated when motor
after RunInit
stops
HardStop
[ ⇔ (<CPFail>or
<UV2>or <ElDef>) =
‘1’ ⇒ <HS>= ‘1’ ]
→Shutdown
→HardStop
→HardStop
→HardStop
Thermal shutdown
→Shutdown
→SoftStop
→Stopped
→SoftStop
→Stopped
[ <TSD>= ‘1’ ]
→Stopped;
TagPos
=ActPos
→Stopped;
TagPos
=ActPos
n.a.
n.a.
n.a.
Motion finished
Table 8: Priority Encoder
Color code:
Command ignored
Transition to another state
Master is responsible for proper update (see note 7)
Notes:
1
2
Leaving Sleep state is equivalent to Power on reset.
After Power on reset, the Shutdown state is entered. The Shutdown state can only be left after a GetStatus or a
GetFullStatuscommand (so that the Master could read the <VddReset>flag).
3
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. AccShapeis forced
to ‘1’ during second motion even if a ResetToDefaultcommand is issued during a RunInit sequence, in which case
AccShapeat ‘0’ will be taken into account after the RunInit sequence.
Copyright © 2004-2005 TRINAMIC Motion Control GmbH & Co. KG