
Analog Integrated Circuit Device Data
Freescale Semiconductor
31
33976
FUNCTIONAL DEVICE OPERATION
LOGIC COMMANDS AND REGISTERS
Some applications may require a guaranteed maximum
pointer velocity and acceleration. Guaranteeing these
maximums requires that the nominal internal clock frequency
falls below 1.0 MHz. The frequency range of the calibrated
clock will always be below 1.0 MHz if PECCR bit PE4 is
logic [0] prior to initiating a calibration command, followed by
an 8.0
μ
s reference pulse. The frequency will be centered at
1.0 MHz if bit D4 is logic [1].
The
33976 can be fooled into calibrating faster or slower
than the optimal frequency by sending a calibration pulse
longer or shorter than the intended 8.0
μ
s. As long as the
calibration divisor remains between 4 and 15 there will be no
clock calibration flag. For applications requiring a slower
calibrated clock — e.g., a motor designed with a gear ratio of
120:1 (8 microsteps/deg) — he user will have to provide a
longer calibration pulse. The device allows a SPI-selectable
slowing of the internal oscillator, using the PECCR command,
so that the calibration divisor safely falls within the 4-to-15
range when calibrating with a longer time reference. For
example, for the 120:1 motor, the pulse would be 12
μ
s
instead of 8.0
μ
s. The result of this slower calibration results
in the longer step times necessary to generate pointer
movements meeting acceleration and velocity requirements.
The resolution of the pointer positioning decreases from
0.083 deg/microstep (180:1) to 0.125 deg/microstep (120:1)
while the pointer sweep range increases from approximately
340 degrees to over 500 degrees.
Note
Be aware that a fast calibration could result in
violations of the motor acceleration and velocity maximums,
resulting in missed steps.
Pointer Deceleration
Constant acceleration and deceleration of the pointer
produces relatively choppy movements when compared to
those of an air core gauge. Modifying the velocity position
ramp during deceleration can create the desired damped
movement. This modification is accomplished by adding
repetitive steps at several of the last velocity position step
values as the pointer decelerates. The 33976 allows the user
to tailor the response characteristics to the application with
three independent ramp characteristic variables. The RS,
HCP and HC variables can be used to change the slowest
velocity position steps, the number of Hold Counts, and the
number of ramp positions to which the Hold Counts apply.
More information is available in the RMPSEL description and
in the example shown in
Figure 11
. If the maximum
acceleration and deceleration of the pointer is desired, the
Hold Counts can be disabled dynamically by either writing a
logic [1] to the global Hold Count Disable bit, PECCR bit PE5,
or to the HE0 or HE1 bits of the POS0R or POS1R,
respectively.
Figure 11. Deceleration Ramp
Return to Zero Calibration
Many step motor applications require that the IC detect
when the motor is stalled after commanded to return to the
zero position for calibration purposes. The stalling occurs
when the pointer hits the end stop on the gauge bezel, which
is usually at the
zero
position. It is important that when the
pointer reaches the end stop it immediately stops without
bouncing away.
The 33976 device provides the ability to automatically and
independently return each of the two pointers to the zero
position via the RTZR and RTZCR SPI commands. An
automatic RTZ is initiated using the RZ0, RZ1, and RZ2 bits
provided the RZ4 bit is a logic [0]. Unconditional RTZ
movement is initiated using the RZ0, RZ1, and RZ2 bits
provided the RZ4 bit is a logic [1]. During an RTZ event, all
commands related to the gauge being returned are ignored
until the pointer has successfully zeroed or the RTZR bit RZ1
is written to disable the event. Once an RTZ event is initiated,
the device reports back via the SO pin that an RTZ is
underway.
The RTZCR command is used to set the RTZ pointer
speed, choose an appropriate blanking time, and preload the
integration accumulator with an appropriate offset. On
reaching the end stop, the device reports back to the
First Velocity w/ Hold Counts = HCP
×
8 + RS = 8 + 0 = 8
24
23
22
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
1
2
3
4
5
6
7
8
9
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Position
= 0
POSITION
MICROSTEPS
HCP = 1
Initial Velocity Position = RS + 1 = 0 + 1 = 1
Last Velocity w/ Hold Counts = RS + 2 = 0 + 2 = 2
Hold Counts per Step = HC = 3
VELOCITY
Acceeae
Deceeae
For this example:
RS = 0
HC = 3