English
Language : 

AMIS-30621 Datasheet, PDF (13/43 Pages) AMI SEMICONDUCTOR – LIN Microstepping Motordriver
AMIS-30621 LIN Microstepping Motordriver
Data Sheet
9.2.1.2 Position Initialization
After power-up or when a Vdd reset has been
acknowledged to the master, a position initialization of the
stepper-motor can be requested by the application, by use
of the RunInit command (see § 9.2.2.11). The position
initialization is performed by the position controller under
the control of the Main control block. This operation cannot
be interrupted or influenced by any further command. A
position initialization can only be interrupted
by the occurrence of the conditions driving to a Motor
shutdown (see § 9.2.2.8) or by a HardStop command. On
the other hand, sending a RunInit command while a
motion is already ongoing is not recommended.
A position initialization consists of 2 successive motions, as
illustrated below.
The first motion is done with the specified Vmin and Vmax
velocities in the RunInit command, with the acceleration
(deceleration) parameter already in RAM, to a position
Pos1[15:0] also specified in RunInit. The goal here is to
perform a motion large enough to reach a stall position
(considered to be the reference position).
Then a second motion to a position Pos2[15:0] is done at
the specified Vmin velocity in the RunInit command (no
acceleration). The purpose of this second motion is to
confirm with a low velocity the positioning of the motor at
the stall position, assuming that the stepper motor may
have bounced against the stall position. Therefore, Pos2
should only be a few half or micro steps further than Pos1,
in order to perform a displacement of at least one electrical
period.
Once the second motion is achieved, the ActPos register
(see § 0) is reset to zero, to set the reached position as the
reference position, whereas TagPos register is not
changed.
Notes
(0) The priority encoder (see § 9.2.2.12) is describing the
management of states and commands. The notes below
are to be considered illustrative.
(1) The last SetPosition(Short) command issued during
an initialization sequence will be kept in memory and
executed afterwards. This applies also for the
commands Sleep and SetMotorParam and
GotoSecurePosition.
(2) Commands such as GetActualPos or GetStatus will
be executed while the position initialization is running.
This applies also for a dynamic ID assignment LIN frame
(see § 9.2.4.6.4).
(3) An initialization sequence starts by setting TagPos register
to SecPos value, provided secure position is enabled
otherwise TagPos is reset to zero.
(4) The acceleration/deceleration value applied during an
initialization sequence is the one stored in RAM before the
RunInit command is sent. The same applies for Shaft
bit, but not for Irun, Ihold and StepMode, which can
be changed during an initialization sequence.
(5) The Pos1, Pos2, Vmax, and Vmin values programmed in
a RunInit command apply only for a this initialization
sequence. All further positioning will use the parameters
stored in RAM (programmed for instance by a former
SetMotorParam command).
(6) Commands ResetPosition, RunInit and SoftStop
will be ignored while an initialization sequence is
ongoing, and will not be executed afterwards.
(7) A SetMotorParam command should not be sent during
an initialization sequence.
(8) If for some reason ActPos equals Pos1[15:0] at the
moment the RunInit command is issued, the circuit will
enter in deadlock state. Therefore, the application should
check the actual position by a GetPosition or a
GetFullStatus command prior to an initialization.
Another solution may consist in programming a value out
of the stepper motor range for Pos1[15:0].
AMI Semiconductor - Rev. 1.4
www.amis.com
13