AMIS-30621 LIN Micro-stepping Motor Driver
Data Sheet
14.2.11. Priority Encoder
Table 20 describes the state management performed by the main control block.
Table 20: Priority Encoder
Stopped
GotoPos
DualPosition
SoftStop
HardStop
ShutDown
Sleep
State →
Motor Stopped,
Ihold in Coils
Motor Motion
Ongoing
No Influence on
RAM and
Motor
Decelerating
Motor Forced to Motor Stopped, No Power
Command
Stop
H-bridges in
Hi-Z
(Note 1)
TagPos
↓
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
GetActualPos
GetOTPparam
OTP refresh;
LIN in-frame
response
OTP refresh;
LIN in-frame
response
OTP refresh;
LIN in-frame
response
OTP refresh;
LIN in-frame
response
OTP refresh;
LIN in-frame
response
OTP refresh;
LIN in-frame
response
LIN in-frame
response;
if (<TSD> or
<HS>) = ‘0’
GetFullStatus
or GetStatus
[ attempt to clear <TSD>
and <HS>flags ]
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
LIN in-frame
response
then → Stopped
OTP refresh;
OTP to RAM;
AccShapereset
(note 3)
ResetToDefault
[ ActPosand TagPos
are not altered ]
OTP refresh;
OTP to RAM;
AccShapereset AccShapereset
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
OTP refresh;
OTP to RAM;
AccShapereset AccShapereset AccShapereset
SetMotorParam
[ Master takes care
about proper update ]
RAM update
RAM update
RAM update
RAM update
RAM update
RAM update
TagPosand
ActPosreset
TagPosand
ActPosreset
ResetPosition
SetPosition
TagPosupdated;
→ GotoPos
TagPosupdated TagPosupdated
TagPosupdated TagPosupdated
If <SecEn>= ‘1’ If <SecEn>= ‘1’
SetPositionShort TagPosupdated;
[ half-step mode only) ]
→ GotoPos
If <SecEn>= ‘1’
then TagPos=
SecPos;
GotoSecPosition
then TagPos=
then TagPos=
SecPos
SecPos
→ GotoPos
DualPosition
HardStop
→ DualPosition
→ HardStop;
→ HardStop;
→ HardStop;
<StepLoss>= ‘1’ <StepLoss>= ‘1’ <StepLoss>= ‘1’
SoftStop
→ SoftStop
If <SecEn>= ‘1’
then TagPos=
SecPos;
will be evaluated
after DualPosition
Sleepor LIN timeout
[ ⇒ <Sleep>= ‘1’, reset
by any LIN command
received later ]
No action;
<Sleep>flag will <Sleep>flag will
be evaluated be evaluated
No action;
If <SecEn>= ‘1’
then TagPos=
SecPos
See note 9
→ Sleep
else → SoftStop
when motor stops when motor stops
HardStop
[ ⇔ (<CPFail>or
<UV2>or <ElDef>) =
‘1’ ⇒ <HS>= ‘1’ ]
→ Shutdown
→ HardStop
→ HardStop
→ HardStop
Thermal shutdown
[ <TSD>= ‘1’ ]
→ Shutdown
→ SoftStop
→ Stopped
→ SoftStop
→ Stopped
→ Stopped;
→ Stopped;
Motion finished
n.a.
n.a.
n.a.
TagPos=ActPos TagPos=ActPos
With the following color code:
Command ignored
Transition to another state
AMI Semiconductor – Sept. 2007, Rev 1.5
30
www.amis.com