AMIS-30623 LIN Microstepping Motordriver
Data Sheet
15.2.10.1.
Priority Encoder
The table below describes the state management performed by the main control block.
Table 21: 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
Master is responsible for proper update (see note 7)
AMI Semiconductor – June 2006, Rev 3.0
www.amis.com
33