ADIS16300
Rev. A | Page 14 of 16
DIAGNOSTICS
Self-Test
Self-test offers the opportunity 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, which 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. MSC_CTRL[9:8]
(DIN = 0xB502 or 0xB501) provides manual control over the
self-test function. Table 20 gives an example test flow for using
this option.
Table 20. 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, 4-tap averaging filter.
Delay = 50 ms.
0x0400 Read GYRO_OUT.
0x0600 Read XACCL_OUT.
0x0800 Read YACCL_OUT.
0x0A00 Read ZACCL_OUT.
0xB502 MSC_CTRL[9] = 1, gyroscope negative self-test.
Delay = 50 ms.
0x0400 Read GYRO_OUT.
Determine whether the bias in the gyroscope
output changes according to the expectation set
in Table 2.
0xB501 MSC_CTRL[9:8] = 01, gyroscope/accelerometer
positive self-test.
Delay = 50 ms.
0x0400 Read GYRO_OUT.
0x0600 Read XACCL_OUT.
0x0800 Read YACCL_OUT.
0x0A00 Read ZACCL_OUT
Determine whether the bias in the gyroscope and
accelerometers changed according to the expect-
ation set in Table 2.
0xB500 MSC_CTRL[15:8] = 0x00.
Zero motion provides results that are more reliable. The settings
in Table 2 0 are flexible and provide opportunity for optimization
around speed and noise influence. For example, lowering the
filtering taps enables lower delay times but increases the oppor-
tunity for noise influence.
Memory Test
Setting MSC_CTRL[11] = 1 (DIN = 0xB508) does a check-sum
verification of the flash memory locations. The pass/fail criteria
load into the DIAG_STAT[6] register.
Status
The error flags provide indicator functions for common system
level issues. All of the flags clear (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. DIAG_STAT[1:0]
does not require a read of this register to return to zero. If the
power supply voltage goes back into range, these two flags clear
automatically.
Table 21. DIAG_STAT Bit Descriptions
Bit Description
[15] Z-axis accelerometer self-test failure
1 = error condition, 0 = normal operation
[14] Y-axis accelerometer self-test failure
1 = error condition, 0 = normal operation
[13] X-axis accelerometer self-test failure
1 = error condition, 0 = normal operation
[12:11] Not used
[10] Gyroscope self-test failure
1 = error condition, 0 = normal operation
[9] Alarm 2 status
1 = active, 0 = inactive
[8] Alarm 1 status
1 = active, 0 = inactive
[7] Not used
[6] Flash test, check-sum flag
1 = failure, 0 = normal operation
[5] Self-test diagnostic error flag
1 = error condition, 0 = normal operation
[4] Sensor overrange
1 = error condition, 0 = normal operation
[3] SPI communications failure
1 = error condition, 0 = normal operation
[2] Flash update failed
1 = error condition, 0 = normal operation
[1] Power supply above 5.25 V
1 = power supply ≥ 5.25 V, 0 = power supply ≤ 5.25 V
[0] Power supply below 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 25 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, established by the SMPL_PRD register.
See Table 26 for an example of how to configure the sensor for
this type of function.