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).
3)
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. AccShapeis forced to ‘1’ during second motion even if a ResetToDefaultcommand 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 Vmaxand Vminstored in RAM.
4)
5)
6)
The <Sleep> flag is set to ‘1’ when a LIN timeout or a Sleepcommand 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).
7)
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.
8)
9)
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)
2)
Transition to state Sleep if (<SecEn> = ‘0’) or ((<SecEn> = ‘1’) and (ActPos= SecPos)) or <Stop> = ‘1’
Otherwise transition to state GotoPos, with TagPos = SecPos
10) <SecEn> = ‘1’ when register SecPosis 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, SetPositionShortand GotoSecurePositioncommands are ignored (they will not modify TagPosregister
whatever the state), and motion to secure position is forbidden after a Sleepcommand or a LIN timeout (the circuit will go into Sleep state immediately, without
positioning to secure position). Other command like DualPositionor ResetPositionwill be executed if allowed by current state. <StepLoss> can only be
cleared by a GetStatusor GetFullStatus command.
Thermal Shutdown
POR
RunInit
SoftStop
HardStop
HardStop
Thermal ShutDown
SoftStop
RunInit
HardStop
Motion finished
HardStop
Motion Finished
GotoSecPos
HardStop
Thermal Shutdown
SetPosition
ShutDown
Stopped
GotoPos
Motion Finished
<Sleep>
OR LIN timeout
Motion Finished
Any LIN command
Priorities
1
2
3
4
Sleep
<Sleep> AND (not<SecEn> OR
<SecEn> AND ActPos = SecPos
OR <Stop>)
Figure 19: State Diagram
Remark: IF “SleepEn”=0, then the red arrow from stopped state to sleep state does not exist.
AMI Semiconductor – June 2006, Rev 3.0
34
www.amis.com