
AMIS-30623 LIN Microstepping Motordriver
Data Sheet
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
GetFullStatus
command (so that the master could read the
<
VddReset
> flag).
A DualPosition sequence runs with a separate set of RAM registers. The parameters that are not specified in a DualPosition command are loaded with the values
stored in RAM at the moment the DualPosition sequence starts.
AccShape
is forced to ‘1’ during second motion even if a
ResetToDefault
command is issued
during a DualPosition sequence, in which case
AccShape
at ‘0’ will be taken into account after the DualPosition sequence. A
GetFullStatus
command will
return the default parameters for
Vmax
and
Vmin
stored in RAM.
The <
Sleep
> flag is set to ‘1’ when a LIN timeout or a
Sleep
command occurs. It is reset by the next LIN command (<
Sleep
> is cancelled if not activated yet).
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
GetStatus
or
GetFullStatus
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
DualPosition sequence since this motion uses its own parameters, the new parameters will be taken into account at the next SetPosition or SetPositionShort
command.
Some transitions like GotoPos
→
Sleep are actually done via several states: GotoPos
→
SoftStop
→
Stopped
→
Sleep (see diagram below).
Two transitions are possible from state Stopped when <Sleep> = ‘1’:
1)
Transition to state Sleep if (<
SecEn
> = ‘0’) or ((<
SecEn
> = ‘1’) and (
ActPos
=
SecPos
)) or <
Stop
> = ‘1’
2)
Otherwise transition to state GotoPos, with
TagPos = SecPos
10) <
SecEn
> = ‘1’ when register
SecPos
is loaded with a value different from the most negative value (i.e. different from 0x400 = “100 0000 0000”)
11) <
Stop
> flag allows to distinguish whether state stopped was entered after HardStop/SoftStop or not. <
Stop
> is set to ‘1’ when leaving state HardStop or SoftStop
and is reset during first clock edge occurring in state Stopped.
12) Command for dynamic assignment of Ids is decoded in all states except sleep and has not effect on the current state
13) While in state stopped, if ActPos
→
TagPos there is a transition to state GotoPos. This transition has the lowest priority, meaning that <
Sleep
>, <
Stop
>, <
TSD
>,
etc. are first evaluated for possible transitions.
14) If <
StepLoss
> is active, then
SetPosition, SetPositionShort
and
GotoSecurePosition
commands are ignored (they will not modify
TagPos
register
whatever the state), and motion to secure position is forbidden after a
Sleep
command or a LIN timeout (the circuit will go into Sleep state immediately, without
positioning to secure position). Other command like
DualPosition
or
ResetPosition
will be executed if allowed by current state. <
StepLoss
> can only be
cleared by a
GetStatus
or
GetFullStatus
command.
3)
4)
5)
6)
7)
8)
9)
HardStop
Stopped
GotoPos
ShutDown
Sleep
Thermal Shutdown
HardStop
HardStop
HardStop
RunInit
Motion finished
GotoSecPos
SetPosition
Motion Finished
Motion Finished
Thermal
ShutDown
SoftStop
Any LIN command
<Sleep> AND (not<SecEn> OR
<SecEn> AND ActPos = SecPos
OR <Stop>)
<Sleep>
OR LIN timeout
HardStop
Thermal Shutdown
RunInit
SoftStop
Priorities
1
2
3
4
Motion Finished
POR
Figure 19: State Diagram
Remark:
IF “SleepEn”=0, then the red arrow from stopped state to sleep state does not exist.
34
AMI Semiconductor
– June 2006, Rev 3.0
www.amis.com