AMIS-30621 LIN Micro-stepping Motor Driver
Data Sheet
Master is responsible for proper update (see Note 7)
Notes:
1)
2)
Leaving sleep state is equivalent to POR.
After POR, the shutdown state is entered. The shutdown state can only be left after GetFullStatuscommand (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
POWER
ON
DUAL-
POSITION
SOFTSTOP
HardStop
HardStop
HARDSTOP
Thermal Shutdown
SoftStop
Motion
Finished
HardStop
GotoSecPos
SetPos
GetStatus
GetFullStatus
STOPPED
GOTOPOS
SHUTDOWN
Thermal
shutdown
HardStop
Motion
Finished
Any LIN command
<Sleep>or
LIN timeout
<Sleep>AND [ not<SecEn>
Motion Finished
OR <SecEn>AND ActPos
SecPosOR <Sleep>]
=
SLEEP
PC20070303.4
Figure 18: State Diagram
AMI Semiconductor – Sept. 2007, Rev 1.5
31
www.amis.com