ADIS16400/ADIS16405
Rev. B | Page 13 of 20
Magnetometer Soft-Iron Correction (Scale Factor)
The soft-iron correction factor for the magnetometer provides
the opportunity to change the scale factor for each individual axis.
Table 13. XMAGN_SIF, YMAGN_SIF, ZMAGN_SIF
Bits Description Default = 0x0800
[15:12] Not used.
[11:0]
Data bits. Binary, linear scale adjustment factor
between 0x0000 (0x) and 0x3FFF (2x).
Gyroscope Automatic Bias Null Calibration
Set GLOB_CMD[0] = 1 (DIN = 0xBE01) to execute this function,
which measures the gyroscope outputs and then loads the gyro-
scope offset registers with the opposite values to provide a quick
bias calibration. Then, all sensor data resets to 0, and the flash
memory updates automatically within 50 ms (see Table 14).
Gyroscope Precision Automatic Bias Null Calibration
Set GLOB_CMD[4] = 1 (DIN = 0xBE10) to execute this function,
which takes the sensor offline for 30 sec while it collects a set of
gyroscope data and calculates a more accurate bias correction
factor for each gyroscope. Once calculated, the correction factor
loads into the three gyroscope offset registers, all sensor data
resets to 0, and the flash memory updates automatically within
50 ms (see Table 14).
Restoring Factory Calibration
Set GLOB_CMD[1] = 1 (DIN = 0xBE02) to execute this function,
which resets each user calibration register (see Table 10, Table 1 1,
and Figure 12) to 0x0000, resets all sensor data to 0, and auto-
matically updates the flash memory within 50 ms (see Table 14).
Linear Acceleration Bias Compensation (Gyroscope)
Set MSC_CTRL[7] = 1 (DIN = 0xB486) to enable correction for
low frequency acceleration influences on gyroscope bias. Note
that the DIN sequence also preserves the factory default condi-
tion for the data ready function (see Table 19 ).
OPERATIONAL CONTROL
Global Commands
The GLOB_CMD register provides trigger bits for several
useful functions. Setting the assigned bit to 1 starts each operation,
which returns to the bit to 0 after completion. For example, set
GLOB_CMD[7] = 1 (DIN = 0xBE80) to execute a software reset,
which stops the sensor operation and runs the device through
its start-up sequence. This includes loading the control registers
with their respective flash memory locations prior to producing
new data. Reading the GLOB_CMD registers (DIN = 0x3E00)
starts the burst mode read sequence.
Table 14. GLOB_CMD
Bits Description
[15:8] Not used
[7] Software reset command
[6:5] Not used
[4] Precision autonull command
[3] Flash update command
[2] Auxiliary DAC data latch
[1] Factory calibration restore command
[0] Autonull command
Internal Sample Rate
The SMPL_PRD register provides discrete sample rate settings,
using the bit assignments in Table 15 and the following equation:
t
S
= t
B
× (N
S
+ 1),
When SMPL_PRD[7:0] = 0x0A, the sample rate = 149 SPS.
Table 15. SMPL_PRD
Bits Description Default = 0x0001
[15:8] Not used
[7]
Time base (t
B
)
0 = 0.61035 ms, 1 = 18.921 ms
[6:0]
Increment setting (N
S
)
Internal sample period = t
S
= t
B
× (N
S
+ 1)
The default sample rate setting of 819.2 SPS preserves the
sensor bandwidth and provides optimal performance. For
systems that value slower sample rates, simply read the device at
a slower rate and keep the internal sample rate at 819.2 SPS. Use
the programmable filter (SENS_AVG) to reduce the bandwidth
along with the reduced read rates. The data-ready function
(MSC_CTRL) can drive an interrupt routine that uses a counter to
help assure data coherence at the reduced update rates.
Power Management
Setting SMPL_PRD ≥ 0x0A also sets the sensor in low power
mode. For systems that require the lower power dissipation, in-
system characterization helps users to quantify the associated
performance trade-offs. In addition to sensor performance, this
mode affects SPI data rates (see Tabl e 2). Set SLP_CNT[8] = 1
(DIN = 0xBB01) to start the indefinite sleep mode, which requires
a
CS
assertion (high to low), reset, or power cycle to wake up.
Use SLP_CNT[7:0] to put the device in sleep mode for a given
period of time. For example, SLP_CNT[7:0] = 0x64 (DIN =
0xBA64) puts the device to sleep for 50 seconds.
Table 16. SLP_CNT
Bits Description
[15:9] Not used
[8] Indefinite sleep mode, set to 1
[7:0] Programmable sleep time bits, 0.5 sec/LSB
ADIS16400/ADIS16405
Rev. B | Page 14 of 20
Digital Filtering
A programmable low-pass filter provides additional opportunity
for noise reduction on the inertial sensor outputs. This filter
contains two cascaded averaging filters that provide a Bartlett
window, FIR filter response (see Figure 15). For example,
SENS_AVG[2:0] = 100 (DIN = B804) sets each stage tap to 16.
When used with the default sample rate of 819.2 SPS, this
reduces the sensor bandwidth to approximately 16 Hz.
0
–20
–40
–60
–80
–100
–120
–140
0.001 0.01 0.1 1
MAGNITUDE (dB)
FREQUENCY (
f
/
f
S
)
N = 2
N = 4
N = 16
N = 64
07906-015
Figure 15. Bartlett Window FIR Frequency Response
(Taps = 2N + 1, Phase = N Samples)
Dynamic Range
There are three dynamic range settings for the gyroscope. The
lower dynamic range settings (±75°/sec and ±150°/sec) limit the
minimum filter tap sizes to maintain resolution. For example, set
SENS_AVG[10:8] = 010 (DIN = 0xB902) for a measurement
range of ±150°/sec. Because this setting can influence the filter
settings, program SENS_AVG[10:8], then SENS_AVG[2:0] if
more filtering is required.
Table 17. SENS_AVG
Bits Settings Description Default = 0x0402
[15:11] Not used
[10:8] Measurement range (sensitivity) selection
100 ±300°/sec (default condition)
010 ±150°/sec, filter taps ≥ 4 (Bits[2:0] ≥ 0x02)
001 ±75°/sec, filter taps ≥ 16 (Bits[2:0] ≥ 0x04)
[7:3] Not used
[2:0] Number of taps in each stage N = 2
M
INPUT/OUTPUT FUNCTIONS
General-Purpose I/O
DIO1, DIO2, DIO3, and DIO4 are configurable, general-
purpose I/O lines that serve multiple purposes according to the
following control register priority: MSC_CTRL, ALM_CTRL,
and GPIO_CTRL. For example, set GPIO_CTRL = 0x080C
(DIN = 0xB308, and then 0xB20C) to set DIO1 and DIO2 as
inputs and DIO3 and DIO4 as outputs, with DIO3 set low and
DIO4 set high.
Table 18. GPIO_CTRL
Bits Description Default = 0x0000
[15:12] Not used
[11] General-Purpose I/O Line 4 (DIO4) data level
[10] General-Purpose I/O Line 3 (DIO3) data level
[9] General-Purpose I/O Line 2 (DIO2) data level
[8] General-Purpose I/O Line 1 (DIO1) data level
[7:4]
Not used
[3]
General-Purpose I/O Line 4 (DIO4), direction control
1 = output, 0 = input
[2]
General-Purpose I/O Line 3 (DIO3), direction control
1 = output, 0 = input
[1]
General-Purpose I/O Line 2 (DIO2), direction control
1 = output, 0 = input
[0]
General-Purpose I/O Line 1 (DIO1), direction control
1 = output, 0 = input
Input Clock Configuration
The input clock allows for external control over sampling in the
ADIS16400/ADIS16405. Set GPIO_CTRL[3] = 0 (DIN =
0x0B200) and SMPL_PRD[7:0] = 0x00 (DIN = 0xB600) to enable
this function. See Table 2 and Figure 4 for timing information.
Data Ready I/O Indicator
The factory default sets DIO1 as a positive data ready indicator
signal. The MSC_CTRL[2:0] register provides configuration
options for changing this. For example, set MSC_CTRL[2:0] =
100 (DIN = 0xB404) to change the polarity of the data ready
signal for interrupt inputs that require negative logic inputs for
activation. The resulting pulse width is be between 100 μs and
200 μs over all conditions.
Table 19. MSC_CTRL
Bits Description Default = 0x0006
[15:12] Not used
[11]
Memory test (clears on completion)
1 = enabled, 0 = disabled
[10] Internal self-test enable (clears on completion)
1 = enabled, 0 = disabled
[9] Manual self-test, negative stimulus
1 = enabled, 0 = disabled
[8] Manual self-test, positive stimulus
1 = enabled, 0 = disabled
[7] Linear acceleration bias compensation for gyroscopes
1 = enabled, 0 = disabled
[6] Linear accelerometer origin alignment
1 = enabled, 0 = disabled
[5:3]
Not used
[2]
Data ready enable
1 = enabled, 0 = disabled
[1]
Data ready polarity
1 = active high, 0 = active low
[0]
Data ready line select
1 = DIO2, 0 = DIO1
ADIS16400/ADIS16405
Rev. B | Page 15 of 20
Auxiliary DAC
The 12-bit AUX_DAC line can drive its output to within 5 mV
of the ground reference when it is not sinking current. As the
output approaches 0 V, the linearity begins to degrade (~100 LSB
beginning point). As the sink current increases, the nonlinear
range increases. The DAC latch command moves the values of
the AUX_DAC register into the DAC input register, enabling
both bytes to take effect at the same time.
Table 20. AUX_DAC
Bits Description Default = 0x0000
[15:12] Not used.
[11:0]
Data bits. Scale factor = 0.8059 mV/code,
offset binary format, 0 V = 0 codes.
Table 21. Setting AUX_DAC = 1 V
DIN Description
0xB0D9 AUX_DAC[7:0] = 0xD9 (217 LSB).
0xB104 AUX_DAC[15:8] = 0x04 (1024 LSB).
0xBE04
GLOB_CMD[2] = 1.
Move values into the DAC input register, resulting in
a 1 V output level.
DIAGNOSTICS
Self-Test
The self-test function 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 displacement 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) provide
manual control over the self-test function. Tabl e 22 shows an
example test flow for using this option to check the x-axis
gyroscope. Zero motion provides results that are more reliable.
The settings in Tabl e 22 are flexible and provide opportunity for
optimization around speed and noise influence. For example,
using fewer filtering taps decreases delay times but increases the
opportunity for noise influence.
Memory Test
Setting MSC_CTRL[11] = 1 (DIN = 0xB508) performs a
checksum verification of the flash memory locations. The
pass/fail result loads 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 0.
Table 22. Manual Self-Test Example Sequence
DIN Description
0xB601 SMPL_PRD[7:0] = 0x01, sample rate = 819.2 SPS.
0xB904 SENS_AVG[15:8] = 0x04, gyroscope range = ±300°/sec.
0xB802 SENS_AVG[7:0] = 0x02, four-tap averaging filter.
Delay = 50 ms.
0x0400 Read XGYRO_OUT.
0xB502 MSC_CTRL[9] = 1, gyroscope negative self-test.
Delay = 50 ms.
0x0400 Read XGYRO_OUT.
Calculate the positive change from the first reading to
the second reading of XGYRO_OUT, and check to
make sure the change is within the positive self-test
response range specified in Table 1.
0xB501
MSC_CTRL[9:8] = 01, gyroscope/accelerometer
positive self-test.
Delay = 50 ms.
0x0400 Read XGYRO_OUT.
Calculate the negative change from the first reading
to the third reading of XGYRO_OUT, and check to
make sure the change is within the positive self-test
response range specified in Table 1.
0xB500 MSC_CTRL[15:8] = 0x00.
Table 23. DIAG_STAT Bit Descriptions
Bit Description
[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 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)

ADIS16400BMLZ

Mfr. #:
Manufacturer:
Analog Devices Inc.
Description:
IMUs - Inertial Measurement Units High Prec Tri-Axis Inertial Sensor
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union

Products related to this Datasheet