English
Language : 

33970 Datasheet, PDF (24/36 Pages) Freescale Semiconductor, Inc – Dual Gauge Driver Integrated Circuit with Improved Damping Algorithms
FUNCTIONAL DEVICE OPERATION
LOGIC COMMANDS AND REGISTERS
Table 20. Coil Step Value
* Denotes normalized values.
The motor is stepped by providing index commands at
intervals. The time between steps defines the motor velocity,
and the changing time defines the motor acceleration.
The state machine uses a table to define the allowed time
and also the maximum velocity. A useful side effect of the
table is that it also allows the direct determination of the
position at which the velocity should reduce to allow the
motor to stop at the desired position.
The motor equations of motion are generated as follows.
(The units of position are steps, and velocity and acceleration
are in steps/second and steps/second².)
From an initial position of 0 with an initial velocity (u), the
motor position (s) at a time (t) is:
s
=
ut
+
1
2
at
2
For unit steps, the time between steps is:
⇒ t = − u + u 2 + 2a
a
This defines the time increment between steps when the
motor is initially travelling at a velocity u. In the ROM, this time
is quantized to multiples of the system clock by rounding
upwards, ensuring acceleration never exceeds the allowed
value. The actual velocity and acceleration is calculated from
the time step actually used.
Using
v2 = u2 + 2as
and
v = u + at
and solving for v in terms of u, s, and t gives:
/ v = 2 t - u
The correct value of t to use in this equation is the
quantized value obtained above.
From these equations a set of recursive equations can be
generated to give the allowed time step between motor
indexes when the motor is accelerating from a stop to its
maximum velocity.
Starting from a position p of 0 and a velocity v of 0, these
equations define the time interval between steps at each
position. To drive the motor at maximum performance, index
commands are given to the motor at these intervals. A table
is generated giving the time step ∆t at an index position n.
p0 = 0
v0 = 0
∆t n
=
⎡
⎢
−
v
n −1
+
⎢
v
2
n −1
+
2a
⎤
⎥
a
⎥
⎢
⎥
where ⎡ ⎤ indicates rounding up.
vn
=
2
∆t n
− v n−1
Pn = n
Note Pn = n. This means on the n th step the motor has
indexed by n positions and has been accelerating steadily at
the maximum allowed rate. This is critical because it also
indicates the minimum distance the motor must travel while
decelerating to a stop. For example, the stopping distance is
also equal to the current value of n.
The algorithm of pointer movement can be summarized in
two steps:
1. The pointer is at the previously commanded position
and is not moving.
2. A command to move to a pointer position (other than
the current position) has been received. Timed index
pulses are sent to the motor driver at an ever-
increasing rate, according to the time steps in
Table 21, until:
a. The maximum velocity (default or selected) is
reached after which the step time intervals will no
longer decrease; or,
b. The distance in steps that remain to travel are less
than the current step time index value. The motor
then decelerates by increasing the step times
according to Table 21 until the commanded position
is reached. The state machine controls the
deceleration so that the pointer reaches the
commanded position efficiently.
An example of the velocity table for a particular motor is
provided in Table 21. This motor’s maximum speed is
4800 microsteps/s (at 12 microsteps/degrees), and its
maximum acceleration is 54000 microsteps/s2. The table is
quantized to a 1.0 MHz clock.
Table 21. Velocity Table
Velocity Time Between Velocity
Position
Steps (µs) (µSteps/s)
0
0
0.00
1
27217
36.7
Velocity Time Between Velocity
Position Steps (µs) (µSteps/s)
76
380
2631.6
77
377
2652.5
Velocity Time Between Velocity
Position Steps (µs) (µSteps/s)
152
257
3891.1
153
256
3906.3
33970
24
Analog Integrated Circuit Device Data
Freescale Semiconductor