TMC223 DATASHEET (V. 1.05 / March 7, 2011)
19
Stopped
motor stopped,
Ihold in coils
GotoPos
motor motion
ongoing
RunInit
SoftStop
motor
decelerating
HardStop
motor forced to
stop
ShutDown
State →
Command
no influence on
RAM and
TagPos
motor stopped,
H-bridges in
Hi-Z
↓
GetFullStatus2
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
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
I²C in-frame
response;
GetOTPParam
GetFullStatus1
if (<TSD>or
<HS>) = ‘1’
then
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
[attempt to clear
<TSD> and <HS>
flags]
→ Stopped
OTP refresh;
OTP to RAM;
AccShapereset
(note 2)
ResetToDefault
OTP refresh; OTP refresh;
OTP to RAM; OTP to RAM;
AccShapereset AccShapereset
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
AccShapereset AccShapereset AccShapereset
OTP refresh;
OTP to RAM;
[ActPosand TagPos
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
ActPosreset
ResetPosition
SetPosition
TagPosupdated TagPosupdated
If <SecEn> = ‘1’ If <SecEn> = ‘1’
If <SecEn> = ‘1’
then TagPos
SecPos;
→GotoPos
=
GotoSecurePosi
tion
then TagPos = then TagPos
SecPos SecPos
=
RunInit
→RunInit
→HardStop;
<StepLoss>=
‘1’
→HardStop;
<StepLoss>=
‘1’
→HardStop;
<StepLoss>=
‘1’
HardStop
SoftStop
HardStop
→SoftStop
[ ⇔ (<CPFail>or
<UV2>or <ElDef>) =
‘1’ ⇒ <HS>= ‘1’ ]
→Shutdown
→HardStop
→HardStop
→HardStop
Thermal shutdown
→Shutdown
→SoftStop
→Stopped
→SoftStop
→Stopped
[ <TSD> = ‘1’ ]
→Stopped;
TagPos
→Stopped;
TagPos
Motion finished
n.a.
n.a.
=ActPos
=ActPos
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
4
Shutdown state can be left only when <TSD> and <HS> 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.
5
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”)
Copyright © 2007-2009 TRINAMIC Motion Control GmbH & Co. KG