beautypg.com

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

Page 17

background image

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.