ADIS16360/ADIS16365
Rev. D | Page 15 of 20
DIAGNOSTICS
Self-Test
The self-test function allows the user to verify the mechanical
integrity of each MEMS sensor. It applies an electrostatic force
to each sensor element, which results in mechanical displace-
ment that simulates a response to actual motion. Table 1 lists
the expected response for each sensor and provides pass/fail
criteria.
Set MSC_CTRL[10] = 1 (DIN = 0xB504) to run the internal
self-test routine, which exercises all inertial sensors, measures
each response, makes pass/fail decisions, and reports them to
error flags in the DIAG_STAT register. MSC_CTRL[10] resets
itself to 0 after completing the routine. The MSC_CTRL[9:8] bits
provide manual control over the self-test function for investiga-
tion of potential failures. Table 25 outlines an example test flow
for using this option to verify the x-axis gyroscope function.
Table 25. Manual Self-Test Example Sequence
DIN Description
0xB601 SMPL_PRD[7:0] = 0x01, sample rate = 819.2 SPS.
0xB904 SENS_AVG[15:8] = 0x04, gyro range = ±300°/sec.
0xB802 SENS_AVG[7:0] = 0x02, four-tap averaging filter.
Delay = 50 ms.
0x0400 Read XGYRO_OUT.
0xB502 MSC_CTRL[9:8] = 10, gyroscope negative self-test.
Delay = 50 ms.
0x0400 Read XGYRO_OUT.
Determine whether the bias in the gyroscope
output changed according to the self-test response
specified in Table 1.
0xB501 MSC_CTRL[9:8] = 01, gyroscope/accelerometer
positive self-test.
Delay = 50 ms.
0x0400 Read XGYRO_OUT.
Determine whether the bias in the gyroscope
output changed according to the self-test response
specified in Table 1.
0xB500 MSC_CTRL[15:8] = 0x00.
Zero motion provides results that are more reliable. The set-
tings in Table 25 are flexible and allow for optimization around
speed and noise influence. For example, using fewer filtering
taps decreases delay times but increases the possibility of noise
influence.
Memory Test
Setting MSC_CTRL[11] = 1 (DIN = 0xB508) performs a check-
sum verification of the flash memory locations. The pass/fail
result is loaded into DIAG_STAT[6].
Status
The error flags provide indicator functions for common
system level issues. All of the flags are cleared (set to 0) after
each DIAG_STAT register read cycle. If an error condition
remains, the error flag returns to 1 during the next sample
cycle. The DIAG_STAT[1:0] bits do not require a read of this
register to return to 0. If the power supply voltage goes back
into range, these two flags are cleared automatically.
Table 26. DIAG_STAT Bit Descriptions
Bits Description (Default = 0x0000)
[15] Z-axis accelerometer self-test failure (1 = fail, 0 = pass)
[14] Y-axis accelerometer self-test failure (1 = fail, 0 = pass)
[13] X-axis accelerometer self-test failure (1 = fail, 0 = pass)
[12] Z-axis gyroscope self-test failure (1 = fail, 0 = pass)
[11] Y-axis gyroscope self-test failure (1 = fail, 0 = pass)
[10] X-axis gyroscope self-test failure (1 = fail, 0 = pass)
[9] Alarm 2 status (1 = active, 0 = inactive)
[8] Alarm 1 status (1 = active, 0 = inactive)
[7] Not used
[6] Flash test, checksum flag (1 = fail, 0 = pass)
[5] Self-test diagnostic error flag (1 = fail, 0 = pass)
[4] Sensor overrange (1 = fail, 0 = pass)
[3] SPI communication failure (1 = fail, 0 = pass)
[2] Flash update failure (1 = fail, 0 = pass)
[1] Power supply > 5.25 V
1 = power supply > 5.25 V, 0 = power supply ≤ 5.25 V
[0] Power supply < 4.75 V
1 = power supply < 4.75 V, 0 = power supply ≥ 4.75 V
Alarm Registers
The alarm function provides monitoring for two independent
conditions. The ALM_CTRL register provides control inputs
for data source, data filtering (prior to comparison), static
comparison, dynamic rate-of-change comparison, and output
indicator configurations. The ALM_MAGx registers establish
the trigger threshold and polarity configurations. Table 30 gives
an example of how to configure a static alarm. The ALM_SMPLx
registers provide the numbers of samples to use in the dynamic
rate-of-change configuration. The period equals the number in
the ALM_SMPLx register multiplied by the sample period time,
which is established by the SMPL_PRD register. See Table 31 for
an example of how to configure the sensor for this type of function.