3 running in normal operation, Running in normal operation, Nd 0 – PNI SENtral MandM User Manual
Page 17

PNI Sensor Corporation
Doc #1020129 revE
SENtral M&M Technical Datasheet
Page 16
Establish the quaternion output data rate, where the quaternion output data rate equals
GyroRate divided by QRateDivisor. The default for QRateDivisor is 0x00, which is
interpreted as ‘1’ and results in the quaternion output data rate equaling GyroRate.
Establish how SENtral’s orientation and sensor data is to be output. The
AlgorithmControl register allows the user to select either quaternion or Euler angles
(heading, pitch, and roll) for orientation outputs, and either scaled or raw sensor data
outputs. The defaults are quaternions and scaled sensor data.
Establish which events will trigger an interrupt to the host by configuring the
EnableEvent register. PNI specifically recommends enabling bit [1], the Error
interrupt bit, in addition to whichever other interrupts the user wants.
Example steps to do this are below:
Write 0x1E0A0F to the MagRate register. Since SENtral automatically increments to
the next register, this also populates the AccelRate and GyroRate registers. This sets
MagRate to 100 Hz, AccelRate to 100 Hz, and GyroRate to 150 Hz.
Write 0x02 to the QRateDivisor Register. This sets the quaternion output data rate to
be half the GyroRate. This step is optional, as the default register value of 0x00 sets
the quaternion output data rate equal to GyroRate.
Write 0x06 to the AlgorithmControl register. This enables heading, pitch, and roll
orientation outputs and raw sensor data outputs. This step is optional, as the default
register value of 0x00 results in outputs of quaternions and scaled sensor data.
Write 0x07 to the EnableEvents register. This sets the host to receive interrupts from
SENtral whenever the quaternion results registers (QX, QY, QZ, and QW) are
updated, an error has been detected, or SENtral has been Reset but the Configuration
File has not been uploaded. If the host regularly will poll SENtral, rather than run in
an interrupt-driven manner, it is not necessary to set the EnableEvents register.
Note: It is necessary to set the MagRate, AccelRate, AND GyroRate registers to non-zero values for
the SENtral algorithm to function properly and to obtain reliable orientation and scaled sensor data. If
a [Sensor]Rate register is left as 0x00 after power-up, or is changed to 0x00, this effectively disables
that sensor within the SENtral algorithm. Also, the CalStatus, MagTransient, and AlgorithmSlow bits
become undefined.
4.3 Running in Normal Operation
After performing the steps listed above, SENtral is ready to start generating orientation data.
The registers used to run in Normal Operation are given in Table 4-2, the steps to follow
comes after this, and a flow diagram is given in Figure 4-3.