36
GET_PHASE_INFO can be used. The 'phase initialization not
completed' bit will indicate when the procedure is finished. After the
initialization procedure is completed the motor should be enabled
(MTR_ON cmd) if the chipset is to be run in closed loop mode.
Hall-based Initialization Sequence
SET_PHASE_CNTS uuuu
Set #of encoder counts per electrical
cycle
Set Hall sensor signal interpretation
Set phase initialization method to
Hall-sensor based
Performthe initialization
SET_HALL_SENSE vvvv
SET_PHASE_HALL
INIT_PHASE
This sequence will cause the chipset to read the Hall sensor signals
and initialize the phasing immediately. The motor will not move as a
result of this sequence, and no delay is required for further motor
operations to be performed.
Mcrostepping Initialization Sequence
SET_PHASE_CNTS 512
Set #of encoder counts per electrical
cycle to 512 (dec.)
Set chipset for mcrostepping mode
Set capture mode to index (not
necessary if already so set)
Clear axis status
Clear out any previous captures
Turn motor on (not necessary if
already on)
Set motor command value
Set rotation distance a bit more than 1
full motor rotation (assumng 4-pole
motor
Set velocity
Set acceleration
start the motion
SET_PHASE_MICRO
SET_CAPT_INDEX
CLR_STATUS
GET_CAPT
MTR_ON
SET_BUF_MTR_CMD xxxx
SET_POS 560
SET_VEL yyyy
SET_ACC zzzz
UPDATE
This sequence will cause the motor to make a move of somewhat more
than 1 rotation. After the update the host should poll the status word
(GET_STATUS cmd) until a capture occurs and then immediately send
a SET_PHASE command, followed by a SET_PHASE_OFFSET
command, each loaded with the phase angle required to init. the
phasing.
See the following section of this manual entitled "Adjusting the
commutation angle" for more information on determning the correct
phase set value.
Once the SET_PHASE and SET_PHASE_OFFSET commands have
been sent by the host the chipset should be initialized for normal
commutation operation. This means the phasing mode should be set to
encoder-based (SET_PHASE_ENC cmd.) and the correct #of encoder
counts per electrical cycle should be set (SET_PHASE_CNTS cmd.)
Direct-Set Initialization Sequence
SET_PHASE_CNTS xxxx
Set #of encoder counts per electrical
cycle (hex)
Set phase angle based on information
fromexternal sensor
SET_PHASE xxxx
This sequence will directly set the phase angle to a value determned
by another sensor. The set value must be between 0 and the #of
encoder counts per electrical cycle.
Adjusting The Commutation Angle
The MC1231A supports the ability to change the motor's commutation
angle directly, both when the motor is stationary and when it is in
motion. Although this is not generally required it can be useful during
testing, or during commutation initialization when the mcrostepping or
direct-set methods are used.
To change the commutation angle when the motor is stationary use the
command SET_PHASE.
To change the commutation angle while the motor is moving the index
pulse is required, and a different command, SET_PHASE_OFFSET, is
used which only takes effect when an index pulse occurs. The following
description provides some background on this function.
After phase initialization has occurred the correct commutation angle is
stored by the chipset as the offset fromthe index mark (in encoder
counts) to the phase A maximumoutput value (commutation 'zero'
location). This 16-bit offset register can be read using the command
GET_PHASE_OFFSET.
The following chart shows the relationship between the phase A
commutation 'zero' location, the index location, and the phase offset
value. For a given motor the index pulse shown in this figure could have
been located anywhere within the phase cycle since it will usually vary
in position frommotor to motor. Only motors that have been
mechanically assembled such that the index position is referenced to
the motor windings will have a consistent index position relative to the
commutation zero location.
90
180
270
360
Commutation
'Zero' Location
Index
Pulse
Phase Offset
Phase A
Waveform
Before phase initialization has occurred the phase offset register will
have a value of ffff (hex). Once phase initialization has occurred and the
motor has been rotated such that at least one index pulse has been