Tactical Grade Ten Degrees of Freedom Inertial Sensor ADIS16488 Data Sheet FEATURES GENERAL DESCRIPTION Triaxial, digital gyroscope, ±450°/sec dynamic range <±0.05° orthogonal alignment 6°/hr in-run bias stability 0.3°/√hr angular random walk 0.01% nonlinearity Triaxial, digital accelerometer, ±18 g Triaxial, delta angle and delta velocity outputs Triaxial, digital magnetometer, ±2.5 gauss Digital pressure sensor, 300 mbar to 1100 mbar Fast start-up time, ~500 ms Factory-calibrated sensitivity, bias, and axial alignment Calibration temperature range: −40°C to +70°C SPI-compatible serial interface Embedded temperature sensor Programmable operation and control Automatic and manual bias correction controls 4 FIR filter banks, 120 configurable taps Digital I/O: data-ready alarm indicator, external clock Alarms for condition monitoring Power-down/sleep mode for power management Optional external sample clock input: up to 2.4 kHz Single-command self-test Single-supply operation: 3.0 V to 3.6 V 2000 g shock survivability Operating temperature range: −40°C to +85°C The ADIS16488 iSensor® device is a complete inertial system that includes a triaxis gyroscope, a triaxis accelerometer, triaxis magnetometer, and pressure sensor. Each inertial sensor in the ADIS16488 combines industry-leading iMEMS® technology with signal conditioning that optimizes dynamic performance. The factory calibration characterizes each sensor for sensitivity, bias, alignment, and linear acceleration (gyroscope bias). As a result, each sensor has its own dynamic compensation formulas that provide accurate sensor measurements. The ADIS16488 provides a simple, cost-effective method for integrating accurate, multiaxis inertial sensing into industrial systems, especially when compared with the complexity and investment associated with discrete designs. All necessary motion testing and calibration are part of the production process at the factory, greatly reducing system integration time. Tight orthogonal alignment simplifies inertial frame alignment in navigation systems. The SPI and register structure provide a simple interface for data collection and configuration control. The ADIS16488 uses the same footprint and connector system as the ADIS16375, which greatly simplifies the upgrade process. It comes in a module that is approximately 47 mm × 44 mm × 14 mm and has a standard connector interface. APPLICATIONS Platform stabilization and control Navigation Personnel tracking Instrument Robotics FUNCTIONAL BLOCK DIAGRAM DIO1 DIO2 DIO3 DIO4 RST SELF-TEST I/O VDD ALARMS POWER MANAGEMENT GND TRIAXIAL GYRO OUTPUT DATA REGISTERS TRIAXIAL ACCEL CONTROLLLER TRIAXIAL MAGN CALIBRATION AND FILTERS PRESSURE SCLK SPI USER CONTROL REGISTERS DIN DOUT CLOCK ADIS16488 VDD VDDRTC 10277-001 TEMP CS Figure 1. Rev. B Information furnished by Analog Devices is believed to be accurate and reliable. However, no responsibility is assumed by Analog Devices for its use, nor for any infringements of patents or other rights of third parties that may result from its use. Specifications subject to change without notice. No license is granted by implication or otherwise under any patent or patent rights of Analog Devices. Trademarks and registered trademarks are the property of their respective owners. One Technology Way, P.O. Box 9106, Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 www.analog.com Fax: 781.461.3113 ©2011–2012 Analog Devices, Inc. All rights reserved. ADIS16488 Data Sheet TABLE OF CONTENTS Features .............................................................................................. 1 Product Identification................................................................ 19 Applications ....................................................................................... 1 Digital Signal Processing ............................................................... 20 General Description ......................................................................... 1 Gyroscopes/Accelerometers ..................................................... 20 Functional Block Diagram .............................................................. 1 Averaging/Decimation Filter .................................................... 20 Revision History ............................................................................... 2 Magnetometer/Barometer ......................................................... 20 Specifications..................................................................................... 3 FIR Filter Banks .......................................................................... 21 Timing Specifications .................................................................. 5 Calibration ....................................................................................... 23 Absolute Maximum Ratings............................................................ 6 Gyroscopes .................................................................................. 23 ESD Caution .................................................................................. 6 Accelerometers ........................................................................... 24 Pin Configuration and Function Descriptions ............................. 7 Magnetometers ........................................................................... 24 Typical Performance Characteristics ............................................. 8 Barometers .................................................................................. 26 Basic Operation................................................................................. 9 Restoring Factory Calibration .................................................. 26 Register Structure ......................................................................... 9 Point of Percussion Alignment ................................................. 26 SPI Communication ................................................................... 10 Alarms .............................................................................................. 27 Device Configuration ................................................................ 10 Static Alarm Use ......................................................................... 27 Reading Sensor Data .................................................................. 10 Dynamic Alarm Use .................................................................. 27 User Registers .................................................................................. 11 System Controls .............................................................................. 29 Output Data Registers .................................................................... 14 Global Commands ..................................................................... 29 Inertial Sensor Data Format...................................................... 14 Memory Management ............................................................... 29 Rotation Rate (Gyroscope) ........................................................ 14 General-Purpose I/O ................................................................. 29 Acceleration................................................................................. 15 Power Management ................................................................... 30 Delta Angles ................................................................................ 15 Applications Information .............................................................. 32 Delta Velocity .............................................................................. 16 Prototype Interface Board ......................................................... 32 Magnetometers ........................................................................... 17 Installation Tips .......................................................................... 32 Barometer .................................................................................... 17 Outline Dimensions ....................................................................... 33 Internal Temperature ................................................................. 17 Ordering Guide .......................................................................... 33 Status/Alarm Indicators ............................................................. 18 Firmware Revision ..................................................................... 19 REVISION HISTORY 2/12—Rev. A to Rev. B Change to Features Section ............................................................. 1 Changes to Table 3 ............................................................................ 6 Changes to Figure 7 and Figure 8 ................................................... 8 Changes to Delta Angles Section .................................................. 15 Changes to Delta Velocity Section, Table 31, Table 32, Table 33, and Table 34 ..................................................................................... 16 Change to Status/Alarm Indicators Section ................................ 18 Changes to Gyroscopes/Accelerometers Section, Averaging/Decimation Filter Section, Magnetometer/Barometer Section, and Figure 20 .................................................................... 20 Changes to Input Sync/Clock Control Section ........................... 30 Changes to Prototype Interface Board Section and Figure 26 .......................................................................................... 30 12/11—Rev. 0 to Rev. A Changes to Specifications Section ...................................................3 Changes to System/Alarm Indicators Section ............................ 18 Changes to Averaging/Decimation Filter Section ...................... 20 Changes to General-Purpose I/O Section ................................... 29 Changes to Input Sync/Clock Control Section........................... 30 10/11—Revision 0: Initial Version Rev. B | Page 2 of 36 Data Sheet ADIS16488 SPECIFICATIONS TA = 25°C, VDD = 3.3 V, angular rate = 0°/sec, dynamic range = ±450°/sec ± 1 g, 300 mbar to 1100 mbar, unless otherwise noted. Table 1. Parameter GYROSCOPES Dynamic Range Sensitivity Initial Sensitivity Tolerance Sensitivity Temperature Coefficient Misalignment Nonlinearity Initial Bias Error In-Run Bias Stability Angular Random Walk Bias Temperature Coefficient Linear Acceleration Effect on Bias Output Noise Rate Noise Density 3 dB Bandwidth Sensor Resonant Frequency ACCELEROMETERS Dynamic Range Sensitivity Initial Sensitivity Tolerance Sensitivity Temperature Coefficient Misalignment Nonlinearity Initial Bias Error In-Run Bias Stability Velocity Random Walk Bias Temperature Coefficient Output Noise Noise Density 3 dB Bandwidth Sensor Resonant Frequency MAGNETOMETER Dynamic Range Sensitivity Initial Sensitivity Tolerance Sensitivity Temperature Coefficient Misalignment Nonlinearity Initial Bias Error Bias Temperature Coefficient Output Noise Noise Density 3 dB Bandwidth Test Conditions/Comments Min Typ ±450 x_GYRO_OUT and x_GYRO_LOW (32-bit) 3.052 × 10−7 −40°C ≤ TA ≤ +70°C, 1 σ Axis-to-axis Axis-to-frame (package) Best-fit straight line, FS = 450°/sec 1σ 1σ 1σ −40°C ≤ TA ≤ +70°C, 1 σ Any axis, 1 σ (CONFIG[7] = 1) No filtering f = 25 Hz, no filtering ±35 ±0.05 ±1.0 0.01 ±0.2 6.25 0.3 ±0.0025 0.009 0.16 0.0066 330 18 Max Unit ±480 °/sec °/sec/LSB % ppm/°C Degrees Degrees % of FS °/sec °/hr °/√hr °/sec/°C °/sec/g °/sec rms °/sec/√Hz rms Hz kHz ±1 Each axis ±18 x_ACCL_OUT and x_ACCL_LOW (32-bit) 1.221 × 10−8 −40°C ≤ TA ≤ +85°C, 1 σ Axis-to-axis Axis-to-frame (package) Best-fit straight line, ±10 g Best-fit straight line, ±18 g 1σ 1σ 1σ −40°C ≤ TA ≤ +85°C No filtering f = 25 Hz, no filtering ±25 ±0.035 ±1.0 0.1 0.5 ±16 0.1 0.029 ±0.1 1.5 0.067 330 5.5 ±0.5 ±2.5 g g/LSB % ppm/°C Degrees Degrees % of FS % of FS mg mg m/sec/√hr mg/°C mg rms mg/√Hz rms Hz kHz 1σ 275 gauss mgauss/LSB % ppm/°C Axis to axis Axis to frame (package) Best fit straight line 0 gauss stimulus −40°C ≤ TA ≤ +85°C, 1 σ 0.25 0.5 0.5 ±15 0.3 0.45 0.054 330 Degrees Degrees % of FS mgauss mgauss/°C mgauss mgauss/√Hz Hz 0.1 ±2 No filtering f = 25 Hz, no filtering Rev. B | Page 3 of 36 ADIS16488 Parameter BAROMETER Pressure Range Sensitivity Error with Supply Total Error Relative Error 1 Linearity 2 Linear-g Sensitivity Noise TEMPERATURE SENSOR Scale Factor LOGIC INPUTS 3 Input High Voltage, VIH Input Low Voltage, VIL CS Wake-Up Pulse Width Logic 1 Input Current, IIH Logic 0 Input Current, IIL All Pins Except RST RST Pin Input Capacitance, CIN DIGITAL OUTPUTS Output High Voltage, VOH Output Low Voltage, VOL FLASH MEMORY Data Retention 5 FUNCTIONAL TIMES 6 Power-On Start-up Time Reset Recovery Time Sleep Mode Recovery Time Flash Memory Update Time Flash Memory Test Time Automatic Self-Test Time CONVERSION RATE Initial Clock Accuracy Temperature Coefficient Sync Input Clock POWER SUPPLY, VDD Power Supply Current 8 POWER SUPPLY, VDDRTC Real-Time Clock Supply Current Data Sheet Test Conditions/Comments Extended BAROM_OUT and BAROM_LOW (32-bit) Min Typ Max Unit 1100 1200 6.1 × 10−7 0.04 4.5 2.5 0.1 0.2 0.005 0.025 mbar mbar mbar/LSB %/V mbar mbar % of FS % of FS mbar/g mbar rms 0.00565 °C/LSB 300 10 −40°C to +85°C Best fit straight line, FS = 1100 mbar −40°C to +85°C ±1 g, 1 σ Output = 0x0000 at 25°C (±5°C) 2.0 0.8 20 VIH = 3.3 V VIL = 0 V 10 10 0.33 10 ISOURCE = 0.5 mA ISINK = 2.0 mA Endurance 4 TJ = 85°C Time until data is available 2.4 0.4 100,000 20 500 500 500 375 50 12 2.46 0.02 40 Using internal clock, 100 SPS Operating voltage range Normal mode, VDD = 3.3 V, µ ± σ Sleep mode, VDD = 3.3 V Power-down mode, VDD = 3.3 V Operating voltage range Normal mode, VDDRTC = 3.3 V 0.7 7 3.0 2.4 3.6 254 12.2 45 3.0 3.6 13 V V µs µA µA mA pF V V Cycles Years ms ms µs ms ms ms kSPS % ppm/°C kHz V mA mA µA V µA The relative error assumes that the initial error, at 25°C, is corrected in the end application. Linearity errors assume a full scale (FS) of 1000 mbar. 3 The digital I/O signals are driven by an internal 3.3 V supply, and the inputs are 5 V tolerant. 4 Endurance is qualified as per JEDEC Standard 22, Method A117, and measured at −40°C, +25°C, +85°C, and +125°C. 5 The data retention specification assumes a junction temperature (TJ) of 85°C as per JEDEC Standard 22, Method A117. Data retention lifetime decreases with TJ. 6 These times do not include thermal settling and internal filter response times, which may affect overall accuracy. 7 Device functions at clock rates below 0.7 kHz, but at reduced performance levels. 8 Supply current transients can reach 450 mA for 400 µs during start-up and reset recovery. 1 2 Rev. B | Page 4 of 36 Data Sheet ADIS16488 TIMING SPECIFICATIONS TA = 25°C, VDD = 3.3 V, unless otherwise noted. Table 2. Parameter fSCLK tSTALL tCLS tCHS tCS Description Serial clock Stall period between data Serial clock low period Serial clock high period Chip select to clock edge tDAV tDSU tDHD tDR, tDF tDSOE tHD tDSHI t1 t2 t3 DOUT valid after SCLK edge DIN setup time before SCLK rising edge DIN hold time after SCLK rising edge DOUT rise/fall times, ≤100 pF loading CS assertion to data out active SCLK edge to data out invalid CS deassertion to data out high impedance Input sync pulse width Input sync to data-ready output Input sync period 1 Normal Mode Typ Min 1 0.01 2 31 31 32 Max1 15 Unit MHz µs ns ns ns 10 ns ns ns ns ns ns ns µs µs µs 2 2 3 8 11 0 0 0 5 9 490 417 Guaranteed by design and characterization, but not tested in production. Timing Diagrams CS tCHS tCS 1 2 3 tCLS 4 5 6 15 16 SCLK DOUT MSB tDAV DB14 tHD DB13 tDSU DIN R/W A6 DB12 DB11 A4 A3 tDSHI DB10 DB2 DB1 LSB tDHD A5 D2 A2 D1 10277-002 tDSOE LSB Figure 2. SPI Timing and Sequence tSTALL 10277-003 CS SCLK Figure 3. Stall Time and Data Rate t3 t2 t1 SYNC CLOCK (CLKIN) OUTPUT REGISTERS DATA VALID DATA VALID Figure 4. Input Clock Timing Diagram Rev. B | Page 5 of 36 10277-004 DATA READY ADIS16488 Data Sheet ABSOLUTE MAXIMUM RATINGS Table 3. Parameter Acceleration Any Axis, Unpowered Any Axis, Powered VDD to GND Digital Input Voltage to GND Digital Output Voltage to GND Operating Temperature Range Storage Temperature Range Barometric Pressure 1 Rating 2000 g 2000 g −0.3 V to +3.6 V −0.3 V to VDD + 0.2 V −0.3 V to VDD + 0.2 V −40°C to +85°C −65°C to +150°C1 6 bar Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only; functional operation of the device at these or any other conditions above those indicated in the operational section of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. Table 4. Package Characteristics Package Type 24-Lead Module (ML-24-6) Extended exposure to temperatures that are lower than −40°C or higher than +105°C can adversely affect the accuracy of the factory calibration. ESD CAUTION Rev. B | Page 6 of 36 θJA 22.8°C/W θJC 10.1°C/W Device Weight 48 g Data Sheet ADIS16488 PIN CONFIGURATION AND FUNCTION DESCRIPTIONS ADIS16488 DNC DNC DNC GND VDD VDD RST CS DOUT DIO4 20 18 16 14 12 10 8 6 4 2 23 21 19 17 15 13 11 9 7 5 3 1 DNC DNC GND GND VDD DIO2 DIO1 DIN SCLK NOTES 1. THIS REPRESENTATION DISPLAYS THE TOP VIEW PINOUT FOR THE MATING SOCKET CONNECTOR. 2. THE ACTUAL CONNECTOR PINS ARE NOT VISIBLE FROM THE TOP VIEW. 3. MATING CONNECTOR: SAMTEC CLM-112-02 OR EQUIVALENT. 4. DNC = DO NOT CONNECT TO THESE PINS. 10277-005 DIO3 DNC 22 DNC DNC 24 VDDRTC TOP VIEW (Not to Scale) 10277-006 Figure 5. Mating Connector Pin Assignments PIN 23 PIN 1 Figure 6. Axial Orientation (Top Side Facing Up) Table 5. Pin Function Descriptions Pin No. 1 2 3 4 5 6 7 8 9 10, 11, 12 13, 14, 15 16 to 22, 24 23 Mnemonic DIO3 DIO4 SCLK DOUT DIN CS DIO1 RST DIO2 VDD GND DNC VDDRTC Type Input/output Input/output Input Output Input Input Input/output Input Input/output Supply Supply Not applicable Supply Description Configurable Digital Input/Output. Configurable Digital Input/Output. SPI Serial Clock. SPI Data Output. Clocks output on SCLK falling edge. SPI Data Input. Clocks input on SCLK rising edge. SPI Chip Select. Configurable Digital Input/Output. Reset. Configurable Digital Input/Output. Power Supply. Power Ground. Do Not Connect to These Pins. Real-Time Clock Power Supply. Rev. B | Page 7 of 36 ADIS16488 Data Sheet TYPICAL PERFORMANCE CHARACTERISTICS 1000 0.8 AVERAGE GYRO SCALE ERROR (% FS) 100 +1σ 10 –1σ 0.1 1 10 100 1000 10000 INTEGRATION PERIOD (Seconds) 0 –0.2 –0.4 –0.8 –40 –30 –20 –10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) Figure 7. Gyroscope Allan Variance, 25°C 0.001 0.2 –0.6 10277-007 1 0.01 INITIAL ERROR = ±0.5% 0.4 TEMPCO = 35ppm/°C 10277-109 ROOT ALLAN VARIANCE (°/Hour) 0.6 Figure 9. Gyroscope Scale (Sensitivity) Error and Hysteresis vs. Temperature AVERAGE 0.6 0.4 +1σ GYRO BIAS ERROR (°/sec) ROOT ALLAN VARIANCE (g) INITIAL ERROR = ±0.2°/sec 0.5 TEMPCO = 0.0025°/sec/°C 0.0001 –1σ 0.3 0.2 0.1 0 –0.1 –0.2 –0.3 –0.4 1 10 100 1000 INTEGRATION PERIOD (Seconds) 10000 Figure 8. Accelerometer Allan Variance, 25°C –0.6 –40 –30 –20 –10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) Figure 10. Gyroscope Bias Error and Hysteresis vs. Temperature Rev. B | Page 8 of 36 10277-110 0.1 10277-008 –0.5 0.00001 0.01 Data Sheet ADIS16488 BASIC OPERATION I/O LINES ARE COMPATIBLE WITH 3.3V LOGIC LEVELS REGISTER STRUCTURE The register structure and SPI port provide a bridge between the sensor processing system and an external, master processor. It contains both output data and control registers. The output data registers include the latest sensor data, a real-time clock, error flags, alarm flags, and identification data. The control registers include sample rate, filtering, input/output, alarms, calibration, and diagnostic configuration options. All communication between the ADIS16488 and an external processor involves either reading or writing to one of the user registers. TRIAXIS GYRO TRIAXIS ACCEL +3.3V DSP TRIAXIS MAGN 10 SYSTEM PROCESSOR SPI MASTER 11 12 23 BARO ADIS16488 SS 6 CS SCLK 3 SCLK MOSI 5 DIN MISO 4 DOUT IRQ 9 DIO2 CONTROL REGISTERS TEMP SENSOR Figure 12. Basic Operation 14 15 10277-009 13 Figure 11. Electrical Connection Diagram Table 6. Generic Master Processor Pin Names and Functions Mnemonic Function SS IRQ MOSI MISO SCLK Slave select Interrupt request Master output, slave input Master input, slave output Serial clock The register structure uses a paged addressing scheme that is composed of 13 pages, with each one containing 64 register locations. Each register is 16 bits wide, with each byte having its own unique address within that page’s memory map. The SPI port has access to one page at a time, using the bit sequence in Figure 17. Select the page to activate for SPI access by writing its code to the PAGE_ID register. Read the PAGE_ID register to determine which page is currently active. Table 8 displays the PAGE_ID contents for each page, along with their basic functions. The PAGE_ID register is located at Address 0x00 on every page. Table 8. User Register Page Assignments Embedded processors typically use control registers to configure their serial ports for communicating with SPI slave devices such as the ADIS16488. Table 7 provides a list of settings, which describe the SPI protocol of the ADIS16488. The initialization routine of the master processor typically establishes these settings using firmware commands to write them into its serial control registers. Table 7. Generic Master Processor SPI Settings Processor Setting Master SCLK ≤ 15 MHz SPI Mode 3 MSB-First Mode 16-Bit Mode CONTROLLER 10277-010 VDD OUTPUT REGISTERS SPI The ADIS16488 is an autonomous sensor system that starts up on its own when it has a valid power supply. After running through its initialization process, it begins sampling, processing, and loading calibrated sensor data into the output registers, which are accessible using the SPI port. The SPI port typically connects to a compatible port on an embedded processor, using the connection diagram in Figure 11. The four SPI signals facilitate synchronous, serial data communication. Connect RST (see Table 5) to VDD or leave it open for normal operation. The factory default configuration provides users with a data-ready signal on the DIO2 pin, which pulses high when new data is available in the output data registers. Description The ADIS16488 operates as a slave. Maximum serial clock rate. CPOL = 1 (polarity), and CPHA = 1 (phase). Bit sequence. Shift register/data length. Page 0 1 2 3 4 5 6 7 8 9 10 11 12 Rev. B | Page 9 of 36 PAGE_ID 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C Function Output data, clock, identification Reserved Calibration Control: sample rate, filtering, I/O, alarms Serial number FIR Filter Bank A Coefficient 0 to Coefficient 59 FIR Filter Bank A, Coefficient 60 to Coefficient 119 FIR Filter Bank B, Coefficient 0 to Coefficient 59 FIR Filter Bank B, Coefficient 60 to Coefficient 119 FIR Filter Bank C, Coefficient 0 to Coefficient 59 FIR Filter Bank C, Coefficient 60 to Coefficient 119 FIR Filter Bank D, Coefficient 0 to Coefficient 59 FIR Filter Bank D, Coefficient 60 to Coefficient 119 ADIS16488 Data Sheet SPI COMMUNICATION MANUAL FLASH BACKUP The SPI port supports full duplex communication, as shown in Figure 17, which enables external processors to write to DIN while reading DOUT, if the previous command was a read request. Figure 17 provides a guideline for the bit coding on both DIN and DOUT. VOLATILE SRAM NONVOLATILE FLASH MEMORY SPI ACCESS (NO SPI ACCESS) 10277-012 START-UP RESET DEVICE CONFIGURATION Figure 14. SRAM and Flash Memory Diagram The SPI provides write access to the control registers, one byte at a time, using the bit assignments shown in Figure 17. Each register has 16 bits, where Bits[7:0] represent the lower address (listed in Table 9) and Bits[15:8] represent the upper address. Write to the lower byte of a register first, followed by a write to its upper byte second. The only register that changes with a single write to its lower byte is the PAGE_ID register. For a write command, the first bit in the DIN sequence is set to 1. Address Bits[A6:A0] represent the target address, and Data Command Bits[DC7:DC0] represent the data being written to the location. Figure 13 provides an example of writing 0x03 to Address 0x00 (PAGE_ID [7:0]), using DIN = 0x8003. This write command activates the control page for SPI access. READING SENSOR DATA CS SCLK DIN 10277-011 DIN = 1000 0000 0000 0011 = 0x8003, WRITES 0x03 TO ADDRESS 0x00 0x1A00 DOUT Figure 13. SPI Sequence for Activating the Control Page (DIN = 0x8003) 0x1800 NEXT ADDRESS Z_GYRO_OUT Z_GYRO_LOW Figure 15. SPI Read Example Dual Memory Structure Figure 16 provides an example of the four SPI signals when reading PROD_ID in a repeating pattern. This is a good pattern to use for troubleshooting the SPI interface setup and communications because the contents of PROD_ID are predefined and stable. Writing configuration data to a control register updates its SRAM contents, which are volatile. After optimizing each relevant control register setting in a system, use the manual flash update command, which is located in GLOB_CMD[3] on Page 3 of the register map. Activate the manual flash update command by turning to Page 3 (DIN = 0x8003) and setting GLOB_CMD[3] = 1 (DIN = 0x8208, then DIN = 0x8300). Make sure that the power supply is within specification for the entire 375 ms processing time for a flash memory update. Table 9 provides a memory map for all of the user registers, which includes a column of flash backup information. A yes in this column indicates that a register has a mirror location in flash and, when backed up properly, automatically restores itself during startup or after a reset. Figure 14 provides a diagram of the dual memory structure used to manage operation and store critical user settings. CS SCLK DIN DIN = 0111 1110 0000 0000 = 0x7E00 DOUT DOUT = 0100 0000 0110 1000 = 0x4068 = 16,488 (PROD_ID) Figure 16. SPI Read Example, Second 16-Bit Sequence CS DIN DOUT R/W D15 A6 A5 A4 A3 A2 A1 A0 DC7 DC6 DC5 DC4 DC3 DC2 DC1 DC0 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 R/W D15 A6 A5 D14 D13 NOTES 1. DOUT BITS ARE PRODUCED ONLY WHEN THE PREVIOUS 16-BIT DIN SEQUENCE STARTS WITH R/W = 0. 2. WHEN CS IS HIGH, DOUT IS IN A THREE-STATE, HIGH IMPEDANCE MODE, WHICH ALLOWS MULTIFUNCTIONAL USE OF THE LINE FOR OTHER DEVICES. Figure 17. SPI Communication Bit Sequence Rev. B | Page 10 of 36 10277-015 SCLK 10277-014 DIN 10277-013 The ADIS16488 automatically starts up and activates Page 0 for data register access. Write 0x00 to the PAGE_ID register (DIN = 0x8000) to activate Page 0 for data access after accessing any other page. A single register read requires two 16-bit SPI cycles. The first cycle requests the contents of a register using the bit assignments in Figure 17, and then the register contents follow DOUT during the second sequence. The first bit in a DIN command is zero, followed by either the upper or lower address for the register. The last eight bits are don’t care, but the SPI requires the full set of 16 SCLKs to receive the request. Figure 15 includes two register reads in succession, which starts with DIN = 0x1A00 to request the contents of the Z_GYRO_OUT register and follows with 0x1800 to request the contents of the Z_GYRO_LOW register. Data Sheet ADIS16488 USER REGISTERS Table 9. User Register Memory Map (N/A = Not Applicable) Name PAGE_ID Reserved SEQ_CNT SYS_E_FLAG DIAG_STS ALM_STS TEMP_OUT X_GYRO_LOW X_GYRO_OUT Y_GYRO_LOW Y_GYRO_OUT Z_GYRO_LOW Z_GYRO_OUT X_ACCL_LOW X_ACCL_OUT Y_ACCL_LOW Y_ACCL_OUT Z_ACCL_LOW Z_ACCL_OUT X_MAGN_OUT Y_MAGN_OUT Z_MAGN_OUT BAROM_LOW BAROM_OUT Reserved X_DELTANG_LOW X_DELTANG_OUT Y_DELTANG_LOW Y_DELTANG_OUT Z_DELTANG_LOW Z_DELTANG_OUT X_DELTVEL_LOW X_DELTVEL_OUT Y_DELTVEL_LOW Y_DELTVEL_OUT Z_DELTVEL_LOW Z_DELTVEL_OUT Reserved TIME_MS_OUT TIME_DH_OUT TIME_YM_OUT PROD_ID Reserved PAGE_ID Reserved X_GYRO_SCALE Y_GYRO_SCALE Z_GYRO_SCALE X_ACCL_SCALE Y_ACCL_SCALE Z_ACCL_SCALE R/W R/W N/A R R R R R R R R R R R R R R R R R R R R R R N/A R R R R R R R R R R R R N/A R R R R N/A R/W N/A R/W R/W R/W R/W R/W R/W Flash No N/A No No No No No No No No No No No No No No No No No No No No No No N/A No No No No No No No No No No No No N/A Yes Yes Yes Yes N/A No N/A Yes Yes Yes Yes Yes Yes PAGE_ID 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 Address 0x00 0x02 to 0x04 0x06 0x08 0x0A 0x0C 0x0E 0x10 0x12 0x14 0x16 0x18 0x1A 0x1C 0x1E 0x20 0x22 0x24 0x26 0x28 0x2A 0x2C 0x2E 0x30 0x32 to 0x3E 0x40 0x42 0x44 0x46 0x48 0x4A 0x4C 0x4E 0x50 0x52 0x54 0x56 0x58 to 0x76 0x78 0x7A 0x7C 0x7E 0x00 to 0x7E 0x00 0x02 0x04 0x06 0x08 0x0A 0x0C 0x0E Default 0x00 N/A N/A 0x0000 0x0000 0x0000 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 0x4068 N/A 0x00 N/A 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 Register Description Page identifier Reserved Sequence counter Output, system error flags Output, self-test error flags Output, alarm error flags Output, temperature Output, x-axis gyroscope, low word Output, x-axis gyroscope, high word Output, y-axis gyroscope, low word Output, y-axis gyroscope, high word Output, z-axis gyroscope, low word Output, z-axis gyroscope, high word Output, x-axis accelerometer, low word Output, x-axis accelerometer, high word Output, y-axis accelerometer, low word Output, y-axis accelerometer, high word Output, z-axis accelerometer, low word Output, z-axis accelerometer, high word Output, x-axis magnetometer, high word Output, y-axis magnetometer, high word Output, z-axis magnetometer, high word Output, barometer, low word Output, barometer, high word Reserved Output, x-axis delta angle, low word Output, x-axis delta angle, high word Output, y-axis delta angle, low word Output, y-axis delta angle, high word Output, z-axis delta angle, low word Output, z-axis delta angle, high word Output, x-axis delta velocity, low word Output, x-axis delta velocity, high word Output, y-axis delta velocity, low word Output, y-axis delta velocity, high word Output, z-axis delta velocity, low word Output, z-axis delta velocity, high word Reserved Factory configuration time: minutes/seconds Factory configuration date/time: day/hour Factory configuration date: year/month Output, product identification (16,488) Reserved Page identifier Reserved Calibration, scale, x-axis gyroscope Calibration, scale, y-axis gyroscope Calibration, scale, z-axis gyroscope Calibration, scale, x-axis accelerometer Calibration, scale, y-axis accelerometer Calibration, scale, z-axis accelerometer Rev. B | Page 11 of 36 Format N/A N/A Table 56 Table 47 Table 48 Table 49 Table 45 Table 14 Table 10 Table 15 Table 11 Table 16 Table 12 Table 21 Table 17 Table 22 Table 18 Table 23 Table 19 Table 38 Table 39 Table 40 Table 44 Table 42 N/A Table 28 Table 24 Table 29 Table 25 Table 30 Table 26 Table 35 Table 31 Table 36 Table 32 Table 37 Table 33 N/A Table 124 Table 125 Table 126 Table 53 N/A N/A N/A Table 71 Table 72 Table 73 Table 81 Table 82 Table 83 ADIS16488 Name XG_BIAS_LOW XG_BIAS_HIGH YG_BIAS_LOW YG_BIAS_HIGH ZG_BIAS_LOW ZG_BIAS_HIGH XA_BIAS_LOW XA_BIAS_HIGH YA_BIAS_LOW YA_BIAS_HIGH ZA_BIAS_LOW ZA_BIAS_HIGH HARD_IRON_X HARD_IRON_Y HARD_IRON_Z SOFT_IRON_S11 SOFT_IRON_S12 SOFT_IRON_S13 SOFT_IRON_S21 SOFT_IRON_S22 SOFT_IRON_S23 SOFT_IRON_S31 SOFT_IRON_S32 SOFT_IRON_S33 BR_BIAS_LOW BR_BIAS_HIGH Reserved USER_SCR_1 USER_SCR_2 USER_SCR_3 USER_SCR_4 FLSHCNT_LOW FLSHCNT_HIGH PAGE_ID GLOB_CMD Reserved FNCTIO_CTRL GPIO_CTRL CONFIG DEC_RATE NULL_CNFG SLP_CNT Reserved FILTR_BNK_0 FILTR_BNK_1 Reserved ALM_CNFG_0 ALM_CNFG_1 ALM_CNFG_2 Reserved XG_ALM_MAGN YG_ALM_MAGN ZG_ALM_MAGN Data Sheet R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W N/A R/W R/W R/W R/W R R R/W W N/A R/W R/W R/W R/W R/W R/W N/A R/W R/W N/A R/W R/W R/W N/A R/W R/W R/W Flash Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes N/A Yes Yes Yes Yes Yes Yes No No N/A Yes Yes Yes Yes Yes No N/A Yes Yes N/A Yes Yes Yes N/A Yes Yes Yes PAGE_ID 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 Address 0x10 0x12 0x14 0x16 0x18 0x1A 0x1C 0x1E 0x20 0x22 0x24 0x26 0x28 0x2A 0x2C 0x2E 0x30 0x32 0x34 0x36 0x38 0x3A 0x3C 0x3E 0x40 0x42 0x44 to 0x72 0x74 0x76 0x78 0x7A 0x7C 0x7E 0x00 0x02 0x04 0x06 0x08 0x0A 0x0C 0x0E 0x10 0x12 to 0x14 0x16 0x18 0x1A to 0x1E 0x20 0x22 0x24 0x26 0x28 0x2A 0x2C Default 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 N/A 0x0000 0x0000 0x0000 0x0000 N/A N/A 0x0000 N/A N/A 0x000D 0x00X0 1 0x00C0 0x0000 0x070A N/A N/A 0x0000 0x0000 N/A 0x0000 0x0000 0x0000 N/A 0x0000 0x0000 0x0000 Register Description Calibration, offset, gyroscope, x-axis, low word Calibration, offset, gyroscope, x-axis, high word Calibration, offset, gyroscope, y-axis, low word Calibration, offset, gyroscope, y-axis, high word Calibration, offset, gyroscope, z-axis, low word Calibration, offset, gyroscope, z-axis, high word Calibration, offset, accelerometer, x-axis, low word Calibration, offset, accelerometer, x-axis, high word Calibration, offset, accelerometer, y-axis, low word Calibration, offset, accelerometer, y-axis, high word Calibration, offset, accelerometer, z-axis, low word Calibration, offset, accelerometer, z-axis, high word Calibration, hard iron, magnetometer, x-axis Calibration, hard iron, magnetometer, y-axis Calibration, hard iron, magnetometer, z-axis Calibration, soft iron, magnetometer, S11 Calibration, soft iron, magnetometer, S12 Calibration, soft iron, magnetometer, S13 Calibration, soft iron, magnetometer, S21 Calibration, soft iron, magnetometer, S22 Calibration, soft iron, magnetometer, S23 Calibration, soft iron, magnetometer, S31 Calibration, soft iron, magnetometer, S32 Calibration, soft iron, magnetometer, S33 Calibration, offset, barometer, low word Calibration, offset, barometer, high word Reserved User Scratch Register 1 User Scratch Register 2 User Scratch Register 3 User Scratch Register 4 Diagnostic, flash memory count, low word Diagnostic, flash memory count, high word Page identifier Control, global commands Reserved Control, I/O pins, functional definitions Control, I/O pins, general purpose Control, clock, and miscellaneous correction Control, output sample rate decimation Control, automatic bias correction configuration Control, power-down/sleep mode Reserved Filter selection Filter selection Reserved Alarm configuration Alarm configuration Alarm configuration Reserved Alarm, x-axis gyroscope threshold setting Alarm, y-axis gyroscope threshold setting Alarm, z-axis gyroscope threshold setting Rev. B | Page 12 of 36 Format Table 67 Table 64 Table 68 Table 65 Table 69 Table 66 Table 78 Table 75 Table 79 Table 76 Table 80 Table 77 Table 84 Table 85 Table 86 Table 88 Table 89 Table 90 Table 91 Table 92 Table 93 Table 94 Table 95 Table 96 Table 99 Table 98 N/A Table 120 Table 121 Table 122 Table 123 Table 115 Table 116 N/A Table 114 N/A Table 117 Table 118 Table 74 Table 55 Table 70 Table 119 N/A Table 57 Table 58 N/A Table 110 Table 111 Table 112 N/A Table 100 Table 101 Table 102 Data Sheet Name XA_ALM_MAGN YA_ALM_MAGN ZA_ALM_MAGN XM_ALM_MAGN YM_ALM_MAGN ZM_ALM_MAGN BR_ALM_MAGN Reserved FIRM_REV FIRM_DM FIRM_Y Reserved Reserved SERIAL_NUM Reserved FIR_COEF_Axxx FIR_COEF_Axxx FIR_COEF_Bxxx FIR_COEF_Bxxx FIR_COEF_Cxxx FIR_COEF_Cxxx FIR_COEF_Dxxx FIR_COEF_Dxxx 1 ADIS16488 R/W R/W R/W R/W R/W R/W R/W R/W N/A R R R N/A N/A R N/A R/W R/W R/W R/W R/W R/W R/W R/W Flash Yes Yes Yes Yes Yes Yes Yes N/A Yes Yes Yes N/A N/A Yes N/A Yes Yes Yes Yes Yes Yes Yes Yes PAGE_ID 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x04 0x04 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C Address 0x2E 0x30 0x32 0x34 0x36 0x38 0x3A 0x3C to 0x76 0x78 0x7A 0x7C 0x7E 0x00 to 0x18 0x20 0x22 to 0x7F 0x00 to 0x7E 0x00 to 0x7E 0x00 to 0x7E 0x00 to 0x7E 0x00 to 0x7E 0x00 to 0x7E 0x00 to 0x7E 0x00 to 0x7E Default 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A Register Description Alarm, x-axis accelerometer threshold Alarm, y-axis accelerometer threshold Alarm, z-axis accelerometer threshold Alarm, x-axis magnetometer threshold Alarm, y-axis magnetometer threshold Alarm, z-axis magnetometer threshold Alarm, barometer threshold setting Reserved Firmware revision Firmware programming date: day/month Firmware programming date: year Reserved Reserved Serial number Reserved FIR Filter Bank A, Coefficients 0 through 59 FIR Filter Bank A, Coefficients 60 through 119 FIR Filter Bank B, Coefficients 0 through 59 FIR Filter Bank B, Coefficients 60 through 119 FIR Filter Bank C, Coefficients 0 through 59 FIR Filter Bank C, Coefficients 60 through 119 FIR Filter Bank D, Coefficients 0 through 59 FIR Filter Bank D, Coefficients 60 through 119 The GPIO_CTRL[7:4] bits reflect the logic levels on the DIOx lines and do not have a default setting. Rev. B | Page 13 of 36 Format Table 103 Table 104 Table 105 Table 106 Table 107 Table 108 Table 109 N/A Table 50 Table 51 Table 52 N/A N/A Table 54 N/A Table 59 Table 59 Table 60 Table 60 Table 61 Table 61 Table 62 Table 62 ADIS16488 Data Sheet OUTPUT DATA REGISTERS After the ADIS16488 completes its start-up process, the PAGE_ID register contains 0x0000, which sets Page 0 as the active page for SPI access. Page 0 contains the output data, real-time clock, status, and product identification registers. Table 11. Y_GYRO_OUT (Page 0, Base Address = 0x16) Bits [15:0] INERTIAL SENSOR DATA FORMAT Table 12. Z_GYRO_OUT (Page 0, Base Address = 0x1A) The gyroscope, accelerometer, delta angle, delta velocity, and barometer output data registers use a 32-bit, twos complement format. Each output uses two registers to support this resolution. Figure 18 provides an example of how each register contributes to each inertial measurement. In this case, X_GYRO_OUT is the most significant word (upper 16 bits), and X_GYRO_LOW is the least significant word (lower 16 bits). In many cases, using the most significant word registers alone provide sufficient resolution for preserving key performance metrics. Bits [15:0] Rotation Rate +450°/sec +0.04/sec +0.02°/sec 0°/sec −0.02°/sec −0.04°/sec −450°/sec X_GYRO_LOW 0 15 0 X-AXIS GYROSCOPE DATA Figure 18. Gyroscope Output Format Example, DEC_RATE > 0 Decimal +22,500 +2 +1 0 −1 −2 −22,500 Hex 0x57E4 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0xA81C Table 14. X_GYRO_LOW (Page 0, Base Address = 0x10) Bits [15:0] ROTATION RATE (GYROSCOPE) The registers that use the x_GYRO_OUT format are the primary registers for the gyroscope measurements (see Table 10, Table 11, and Table 12). When processing data from these registers, use a 16-bit, twos complement data format. Table 13 provides x_GYRO_OUT digital coding examples. Description X-axis gyroscope data; additional resolution bits Table 15. Y_GYRO_LOW (Page 0, Base Address = 0x14) Bits [15:0] Description Y-axis gyroscope data; additional resolution bits Table 16. Z_GYRO_LOW (Page 0, Base Address = 0x18) Table 10. X_GYRO_OUT (Page 0, Base Address = 0x12) Bits [15:0] Description X-axis gyroscope data; twos complement, ±450°/sec range, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Description Z-axis gyroscope data; additional resolution bits Z-AXIS aZ mZ gZ mX X-AXIS mY Y-AXIS aX gX 10277-017 aY gY Binary 0101 0111 1110 0100 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1010 1000 0001 1100 The registers that use the x_GYRO_LOW naming format provide additional resolution for the gyroscope measurements (see Table 14, Table 15, and Table 16). The MSB has a weight of 0.01°/sec, and each subsequent bit has ½ the weight of the previous one. The arrows in Figure 19 describe the direction of the motion, which produces a positive output response in each sensor’s output register. The accelerometers respond to both dynamic and static forces associated with acceleration, including gravity. When lying perfectly flat, as shown in Figure 19, the z-axis accelerometer output is 1 g, and the x and y accelerometers are 0 g. Bits [15:0] Description Z-axis gyroscope data; twos complement, ±450°/sec range, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 13. x_GYRO_OUT Data Format Examples 10277-016 X_GYRO_OUT 15 Description Y-axis gyroscope data; twos complement, ±450°/sec range, 0°/sec = 0x0000, 1 LSB = 0.02°/sec PIN 23 PIN 1 Figure 19. Inertial Sensor Direction Reference Diagram Rev. B | Page 14 of 36 Data Sheet ADIS16488 ACCELERATION DELTA ANGLES The registers that use the x_ACCL_OUT format are the primary registers for the accelerometer measurements (see Table 17, Table 18, and Table 19). When processing data from these registers, use a 16-bit, twos complement data format. Table 20 provides x_ACCL_OUT digital coding examples. The delta angle outputs represent an integration of the gyroscope measurements and use the following formula for all three axes (x-axis displayed): Table 17. X_ACCL_OUT (Page 0, Base Address = 0x1E) where: ωx is the gyroscope, x-axis. ΔtS is the time between samples. Bits [15:0] Description X-axis accelerometer data; twos complement, ±18 g range, 0 g = 0x0000, 1 LSB = 0.8 mg Description Y-axis accelerometer data; twos complement, ±18 g range, 0 g = 0x0000, 1 LSB = 0.8 mg Table 19. Z_ACCL_OUT (Page 0, Base Address = 0x26) Bits [15:0] Description Z-axis accelerometer data; twos complement, ±18 g range, 0 g = 0x0000, 1 LSB = 0.8 mg Table 20. x_ACCL_OUT Data Format Examples Acceleration +18 g +1.6 mg +0.8 mg 0 mg −0.8 mg −1.6 mg −18 g Decimal +22,500 +2 +1 0 −1 −2 −22,500 Hex 0x57E4 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0xA81C Binary 0101 0111 1110 0100 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1010 1000 0001 1100 The registers that use the x_ACCL_LOW naming format provide additional resolution for the accelerometer measurements (see Table 21, Table 22, and Table 23). The MSB has a weight of 0.4 mg, and each subsequent bit has ½ the weight of the previous one. DEC _ RATE + 1 fS Description X-axis delta angle data; twos complement, ±720° range, 0° = 0x0000, 1 LSB = 720°/215 = ~0.022° Table 25. Y_DELTANG_OUT (Page 0, Base Address = 0x46) Bits [15:0] Description Y-axis delta angle data; twos complement, ±720° range, 0° = 0x0000, 1 LSB = 720°/215 = ~0.022° Description Z-axis delta angle data; twos complement, ±720° range, 0° = 0x0000, 1 LSB = 720°/215 = ~0.022° Table 27. x_DELTANG_OUT Data Format Examples Description X-axis accelerometer data; additional resolution bits Description Y-axis accelerometer data; additional resolution bits Table 23. Z_ACCL_LOW (Page 0, Base Address = 0x24) Bits [15:0] × (ω x ,n + 1 + ω x ,n ) ; Δt S = Table 24. X_DELTANG_OUT (Page 0, Base Address = 0x42) Bits [15:0] Bits [15:0] Table 22. Y_ACCL_LOW (Page 0, Base Address = 0x20) Bits [15:0] 2 Table 26. Z_DELTANG_OUT (Page 0, Base Address = 0x4A) Table 21. X_ACCL_LOW (Page 0, Base Address = 0x1C) Bits [15:0] ∆t S When using the internal sample clock, fS is equal to 2.46 kHz. When using the external clock option, the time between samples is the time between active edges on the input clock signal, as measured by the internal clock (252 MHz). See Table 55 for more information on the DEC_RATE register. The registers that use the x_DELTANG_OUT format are the primary registers for the delta angle calculations. When processing data from these registers, use a 16-bit, twos complement data format (see Table 24, Table 25, and Table 26). Table 27 provides x_DELTANG_OUT digital coding examples. Table 18. Y_ACCL_OUT (Page 0, Base Address = 0x22) Bits [15:0] ∆θ x = Description Z-axis accelerometer data; additional resolution bits Angle (°) +720 × (215 − 1)/215 +1440/215 +720/215 0 −720/215 −1440/215 −720 Rev. B | Page 15 of 36 Decimal +32,767 +2 +1 0 −1 −2 −32,768 Hex 0x7FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0x8000 Binary 0111 1111 1110 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1000 0000 0000 0000 ADIS16488 Data Sheet The registers that use the x_DELTANG_LOW format provide additional resolution for the gyroscope measurements (see Table 28, Table 29, and Table 30). The MSB has a weight of ~0.011° (720°/216), and each subsequent bit carries a weight of ½ of the previous one. Table 28. X_DELTANG_LOW (Page 0, Base Address = 0x40) Bits [15:0] Description X-axis delta angle data; additional resolution bits Table 31. X_DELTVEL_OUT (Page 0, Base Address = 0x4E) Bits [15:0] Table 32. Y_DELTVEL_OUT (Page 0, Base Address = 0x52) Bits [15:0] Table 29. Y_DELTANG_LOW (Page 0, Base Address = 0x44) Bits [15:0] Description Y-axis delta angle data; additional resolution bits Bits [15:0] Description Z-axis delta angle data; additional resolution bits Velocity (m/sec) +160 × (215 − 1)/215 +400/215 +200/215 0 −200/215 −400/215 −160 The delta velocity outputs represent an integration of the accelerometer measurements and use the following formula for all three axes (x-axis displayed): ∆t S 2 × (a x ,n + 1 + a x ,n ) ; Δt S = Description Z-axis delta velocity data; twos complement, ±200 m/sec range, 0 m/sec = 0x0000 1 LSB = 200 m/sec ÷ (215 − 1) = ~6.104 mm/sec Table 34. x_DELTVEL_OUT, Data Format Examples DELTA VELOCITY ∆θ x = Description Y-axis delta velocity data; twos complement, ±200 m/sec range, 0 m/sec = 0x0000 1 LSB = 200 m/sec ÷ (215 − 1) = ~6.104 mm/sec Table 33. Z_DELTVEL_OUT (Page 0, Base Address = 0x56) Table 30. Z_DELTANG_LOW (Page 0, Base Address = 0x48) Bits [15:0] Description X-axis delta velocity data; twos complement, ±200 m/sec range, 0 m/sec = 0x0000 1 LSB = 200 m/sec ÷ (215 – 1) = ~6.104 mm/sec DEC _ RATE + 1 fS where: ax is the accelerometer, x-axis. ΔtS is the time between samples. When using the internal sample clock, fS is equal to 2.46 kHz. When using the external clock option, the time between samples is the time between active edges on the input clock signal, as measured by the internal clock (252 MHz). See Table 55 for more information on the DEC_RATE register. The registers that use the x_DELTVEL_OUT format are the primary registers for the delta velocity calculations. When processing data from these registers, use a 16-bit, twos complement data format (see Table 31, Table 32, and Table 33). Table 34 provides x_DELTVEL_OUT digital coding examples. Decimal +32,767 +2 +1 0 −1 −2 −32,768 Hex 0x7FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0x8000 Binary 0111 1111 1111 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1000 0000 0000 0000 The registers that use the x_DELTVEL_LOW naming format provide additional resolution for the gyroscope measurements (see Table 35, Table 36, and Table 37). The MSB has a weight of ~3.052 mm/sec (200 m/sec ÷ 216), and each subsequent bit carries a weight of ½ of the previous one. Table 35. X_DELTVEL_LOW (Page 0, Base Address = 0x4C) Bits [15:0] Description X-axis delta velocity data; additional resolution bits Table 36. Y_DELTVEL_LOW (Page 0, Base Address = 0x50) Bits [15:0] Description Y-axis delta velocity data; additional resolution bits Table 37. Z_DELTVEL_LOW (Page 0, Base Address = 0x54) Bits [15:0] Rev. B | Page 16 of 36 Description Z-axis delta velocity data; additional resolution bits Data Sheet ADIS16488 Table 42. BAROM_OUT (Page 0, Base Address = 0x30) MAGNETOMETERS The registers that use the x_MAGN_OUT format are the primary registers for the magnetometer measurements. When processing data from these registers, use a 16-bit, twos complement data format. Table 38, Table 39, and Table 40 provide each register’s numerical format, and Table 41 provides x_MAGN_OUT digital coding examples. Table 38. X_MAGN_OUT (Page 0, Base Address = 0x28) Bits [15:0] Description X-axis magnetometer data; twos complement, ±3.2767 gauss range, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss Table 39. Y_MAGN_OUT (Page 0, Base Address = 0x2A) Bits [15:0] Bits [15:0] Description Barometric pressure; twos complement, ±1.31 bar range, 0 bar = 0x0000, 40 µbar/LSB Table 43. BAROM_OUT Data Format Examples Pressure (bar) +0.00004 × (215 − 1) +0.00008 +0.00004 0 −0.00004 −0.00008 −0.00004 × 215 Decimal +32,767 +2 +1 0 −1 −2 −32,768 Hex 0x7FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0x8000 Binary 0111 1111 1110 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1000 0000 0000 0000 The BAROM_LOW register provides additional resolution for the barometric pressure measurement. The MSB has a weight of 20 µbar, and each subsequent bit carries a weight of ½ of the previous one. Description Y-axis magnetometer data; twos complement, ±3.2767 gauss range, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss Table 40. Z_MAGN_OUT (Page 0, Base Address = 0x2C) Table 44. BAROM_LOW (Page 0, Base Address = 0x2E) Bits [15:0] Bits [15:0] Description Z-axis magnetometer data; twos complement, ±3.2767 gauss range, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss INTERNAL TEMPERATURE Table 41. x_MAGN_OUT Data Format Examples Magnetic Field +3.2767 gauss +0.2 mgauss +0.1 mgauss 0 gauss −0.1 mgauss −0.2 mgauss −3.2768 gauss Decimal +32,767 +2 +1 0 −1 −2 −32,768 Hex 0x7FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0x8000 Description Barometric pressure; additional resolution bits Binary 0111 1111 1111 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1000 0000 0000 0000 BAROMETER The BAROM_OUT register (see Table 42) and BAROM_LOW register (see Table 44) provide access to the barometric pressure data. These two registers combine to provide a 32-bit, twos complement format. Some applications are able to use BAROM_OUT by itself. For cases where the finer resolution available from BAROM_LOW is valuable, combine them in the same manner as the gyroscopes (see Figure 18). When processing data from the BAROM_OUT register alone, use a 16-bit, twos complement data format. Table 42 provides the numerical format in BAROM_OUT, and Table 43 provides digital coding examples. The TEMP_OUT register provides an internal temperature measurement that can be useful for observing relative temperature changes inside of the ADIS16488 (see Table 45). Table 46 provides TEMP_OUT digital coding examples. Note that this temperature reflects a higher temperature than ambient, due to self-heating. Table 45. TEMP_OUT (Page 0, Base Address = 0x0E) Bits [15:0] Description Temperature data; twos complement, 0.00565°C per LSB, 25°C = 0x0000 Table 46. TEMP_OUT Data Format Examples Temperature (°C) +85 +25 + 0.0113 +25 + 0.00565 +25 +25 − 0.00565 +25 − 0.0113 −40 Rev. B | Page 17 of 36 Decimal +10,619 +2 +1 0 −1 −2 −11,504 Hex 0x297B 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0xD310 Binary 0010 1001 0111 1011 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1101 0011 0001 0000 ADIS16488 Data Sheet STATUS/ALARM INDICATORS The SYS_E_FLAG register in Table 47 provides the system error flags and new data bits for the magnetometer and barometer outputs. The new data flags are useful for triggering data collection of the magnetometer and barometer (x_MAGN_OUT and BARO_xxx registers) because they update at a fixed rate that is not dependent on the DEC_RATE setting. Note that reading SYS_E_FLAG also resets it to 0x0000. Table 47. SYS_E_FLAG (Page 0, Base Address = 0x08) Bits [15] [14:10] 9 8 7 6 5 4 3 [2:1] 0 1 2 Description (Default = 0x0000) Watch dog timer flag (1 = timed out) Not used New data flag, barometer (1 = new, unread data)1 New data flag, magnetometer (1 = new, unread data)2 Processing overrun (1 = error) Flash memory update, result of GLOB_CMD[3] = 1 (1 = failed update, 0 = update successful) Inertial self-test failure (1 = DIAG_STS ≠ 0x0000) Sensor overrange (1 = at least one sensor overranged) SPI communication error (1 = error condition, when the number of SCLK pulses is not equal to a multiple of 16) Not used Alarm status flag (1 = ALM_STS ≠ 0x0000) The ALM_STS register in Table 49 provides the alarm bits for the programmable alarm levels of each sensor. Note that reading ALM_STS also resets it to 0x0000. Table 49. ALM_STS (Page 0, Base Address = 0x0C) Bits [15:12] 11 10 9 8 [7:6] 5 4 3 2 1 0 This flag restores to zero after reading the contents on BAROM_OUT. This flag restores to zero after reading one x_MAGN_OUT register. The DIAG_STS register in Table 48 provides the flags for the internal self-test function, which is from GLOB_CMD[1] (see Table 114). Note that the barometer’s flag, DIAG_STS[11], only updates after start-up and reset operations. Note that reading DIAG_STS also resets it to 0x0000. Table 48. DIAG_STS (Page 0, Base Address = 0x0A) Bits [15:12] 11 10 9 8 [7:6] 5 4 3 2 1 0 Description (Default = 0x0000) Not used Self-test failure, barometer (1 = failed at start-up) Self-test failure, Z-axis magnetometer (1 = failure) Self-test failure, Y-axis magnetometer (1 = failure) Self-test failure, X-axis magnetometer (1 = failure) Not used Self-test failure, Z-axis accelerometer (1 = failure) Self-test failure, Y-axis accelerometer (1 = failure) Self-test failure, X-axis accelerometer (1 = failure) Self-test failure, Z-axis gyroscope (1 = failure) Self-test failure, Y-axis gyroscope (1 = failure) Self-test failure, X-axis gyroscope (1 = failure) Rev. B | Page 18 of 36 Description (Default = 0x0000) Not used Barometer alarm flag (1 = alarm is active) Z-axis magnetometer alarm flag (1 = alarm is active) Y-axis magnetometer alarm flag (1 = alarm is active) X-axis magnetometer alarm flag (1 = alarm is active) Not used Z-axis accelerometer alarm flag (1 = alarm is active) Y-axis accelerometer alarm flag (1 = alarm is active) X-axis accelerometer alarm flag (1 = alarm is active) Z-axis gyroscope alarm flag (1 = alarm is active) Y-axis gyroscope alarm flag (1 = alarm is active) X-axis gyroscope alarm flag (1 = alarm is active) Data Sheet ADIS16488 FIRMWARE REVISION The FIRM_REV register (see Table 50) provides the firmware revision for the internal processor. Each nibble represents a digit in this revision code. For example, if FIRM_REV = 0x0102, the firmware revision is 1.02. Table 50. FIRM_REV (Page 3, Base Address = 0x78) Bits [15:12] [11:8] [7:4] [3:0] Description Binary, revision, 10’s digit Binary, revision, 1’s digit Binary, revision, tenths digit Binary, revision, hundredths digit Bits [15:12] [11:8] [7:4] [3:0] Description Binary, month 10’s digit, range: 0 to 1 Binary, month 1’s digit, range: 0 to 9 Binary, day 10’s digit, range: 0 to 3 Binary, day 1’s digit, range: 0 to 9 Table 52. FIRM_Y (Page 3, Base Address = 0x7C) Bits [15:12] [11:8] [7:4] [3:0] Description Binary, year 1000’s digit, range: 0 to 9 Binary, year 100’s digit, range: 0 to 9 Binary, year 10’s digit, range: 0 to 9 Binary, year 1’s digit, range: 0 to 9 PRODUCT IDENTIFICATION The FIRM_DM register (see Table 51) contains the month and day of the factory configuration date. FIRM_DM[15:12] and FIRM_DM[11:8] contain digits that represent the month of factory configuration. For example, November is the 11th month in a year and represented by FIRM_DM[15:8] = 0x11. FIRM_DM[7:4] and FIRM_DM[3:0] contain digits that represent the day of factory configuration. For example, the 27th day of the month is represented by FIRM_DM[7:0] = 0x27. Table 51. FIRM_DM (Page 3, Base Address = 0x7A) The FIRM_Y register (see Table 52) contains the year of the factory configuration date. For example, the year of 2013 is represented by FIRM_Y = 0x2013. The PROD_ID register (see Table 53) contains the binary equivalent of the part number (16,488 = 0x4068), and the SERIAL_NUM register (see Table 54) contains a lot-specific serial number. Table 53. PROD_ID (Page 0, Base Address = 0x7E) Bits [15:0] Description (Default = 0x4068) Product identification = 0x4068 Table 54. SERIAL_NUM (Page 4, Base Address = 0x20) Bits [15:0] Rev. B | Page 19 of 36 Description Lot-specific serial number ADIS16488 Data Sheet DIGITAL SIGNAL PROCESSING GYROSCOPES/ACCELEROMETERS MAGNETOMETER/BAROMETER Figure 20 provides a signal flow diagram for all of the components and settings that influence the frequency response for the accelerometers and gyroscopes. The sample rate for each accelerometer and gyroscope is 9.84 kHz. Each sensor has its own averaging/decimation filter stage, which reduces the update rate to 2.46 kSPS. When using the external clock option (FNCTIO_CTRL[7:4], see Table 117), the input clock drives a 4-sample burst at a sample rate of 9.84kSPS, which feeds into the 4x averaging/decimation filter. This results in a data rate that is equal to the input clock frequency. When using the internal sampling clock, the magnetometer output registers (xMAGN_OUT) update at a rate of 102.5 SPS and the barometer output registers (BARO_xxx) update at a rate of 51.25 SPS. When using the external clock, the magnetometers update at a rate of 1/24th of the input clock frequency and the barometers update at a rate that is 1/48th of the input clock frequency. The update rates for the magnetometer and barometers do not change with the DEC_RATE register settings. SYS_E_FLAG[9:8] (see Table 47) offers new data bits for these registers and the SEQ_CNT register provides a counter function to help determine when there is new data in the magnetometer and barometer registers. When SEQ_CNT = 0x0001, there is new data in the magnetometer and barometer output registers. The SEQ_CNT register can be useful during initialization to help synchronize read loops for new data in both magnetometer and barometer outputs. When beginning a continuous read loop, read SEQ_CNT, then subtract this value from the maximum value shown (range) in Table 56 to calculate the number of internal sample cycles until both magnetometer and barometer data is new. AVERAGING/DECIMATION FILTER The DEC_RATE register (see Table 55) provides user control for the final filter stage (see Figure 20), which averages and decimates the accelerometers, gyroscopes, delta angle, and delta velocity data. The output sample rate is equal to 2460/(DEC_RATE + 1). When using the external clock option (FNCTIO_CTRL[7:4], see Table 117), replace the “2460” number in this relationship, with the input clock frequency. For example, turn to Page 3 (DIN = 0x8003), and set DEC_RATE = 0x18 (DIN = 0x8C18, then DIN = 0x8D00) to reduce the output sample rate to 98.4 SPS (2460 ÷ 25). Table 56. SEQ_CNT (Page 0, Base Address = 0x06) Table 55. DEC_RATE (Page 3, Base Address = 0x0C) Description (Default = 0x0000) Don’t care Decimation rate, binary format, maximum = 2047 See Figure 20 for impact on sample rate Description Don’t care Binary counter: range = 1 to 48/(DEC_RATE + 1) 2.46kHz, fs MEMS SENSOR 1 4 330Hz GYROSCOPE 2-POLE: 404Hz, 757Hz ACCELEROMETER 1-POLE: 330Hz INTERNAL CLOCK 9.84kHz fs 4 FIR FILTER BANK ÷4 4× AVERAGE DECIMATION FILTER 1 D D ÷D SELECTABLE AVERAGE/DECIMATION FILTER FIR FILTER BANK D = DEC_RATE[10:0] + 1 FILTR_BNK_0 FILTR_BNK_1 DIOx OPTIONAL INPUT CLOCK FNCTIO_CTRL[7] = 1 fs < 2400Hz NOTES 1. WHEN FNCTIO_CTRL[7] = 1, EACH CLOCK PULSE ON THE DESIGNATED DIOx LINE (FNCTIO_CTRL[5:4]) STARTS A 4-SAMPLE BURST, AT A SAMPLE RATE OF 9.84kHz. THESE FOUR SAMPLES FEED INTO THE 4x AVERAGE/DECIMATION FILTER, WHICH PRODUCES A DATA RATE THAT IS EQUAL TO THE INPUT CLOCK FREQUENCY. Figure 20. Sampling and Frequency Response Block Diagram Rev. B | Page 20 of 36 10277-018 Bits [15:11] [10:0] Bits [15:11] [6:0] Data Sheet ADIS16488 FIR FILTER BANKS Filter Memory Organization The ADIS16488 provides four configurable, 120-tap FIR filter banks. Each coefficient is 16 bits wide and occupies its own register location with each page. When designing a FIR filter for these banks, use a sample rate of 2.46 kHz and scale the coefficients so that their sum equals 32,768. For filter designs that have less than 120 taps, load the coefficients into the lower portion of the filter and start with Coefficient 1. Make sure that all unused taps are equal to zero, so that they do not add phase delay to the response. The FILTR_BNK_x registers provide three bits per sensor, which configure the filter bank (A, B, C, D) and turn filtering on and off. For example, turn to Page 3 (DIN = 0x8003), then write 0x0057 to FILTR_BNK_0 (DIN = 0x9657, DIN = 0x9700) to set the x-axis gyroscope to use the FIR filter in Bank D, to set the y-axis gyroscope to use the FIR filter in Bank B, and to enable these FIR filters in both x- and y-axis gyroscopes. Note that the filter settings update after writing to the upper byte; therefore, always configure the lower byte first. In cases that require configuration to only the lower byte of either FILTR_BNK_0 or FILTR_BNK_1, complete the process by writing 0x00 to the upper byte. Each filter bank uses two pages of the user register structure. See Table 59, Table 60, Table 61, and Table 62 for the register addresses in each filter bank. Table 57. FILTR_BNK_0 (Page 3, Base Address = 0x16) Bits 15 14 [13:12] 11 [10:9] 8 [7:6] 5 [4:3] 2 [1:0] Description (Default = 0x0000) Don’t care Y-axis accelerometer filter enable (1 = enabled) Y-axis accelerometer filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D X-axis accelerometer filter enable (1 = enabled) X-axis accelerometer filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D Z-axis gyroscope filter enable (1 = enabled) Z-axis gyroscope filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D Y-axis gyroscope filter enable (1 = enabled) Y-axis gyroscope filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D X-axis gyroscope filter enable (1 = enabled) X-axis gyroscope filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D Table 58. FILTR_BNK_1 (Page 3, Base Address = 0x18) Bits [15:12] 11 [10:9] 8 [7:6] 5 [4:3] 2 [1:0] Description (Default = 0x0000) Don’t care Z-axis magnetometer filter enable (1 = enabled) Z-axis magnetometer filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D Y-axis magnetometer filter enable (1 = enabled) Y-axis magnetometer filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D X-axis magnetometer filter enable (1 = enabled) X-axis magnetometer filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D Z-axis accelerometer filter enable (1 = enabled) Z-axis accelerometer filter bank selection: 00 = Bank A, 01 = Bank B, 10 = Bank C, 11 = Bank D Table 59. Filter Bank A Memory Map Page 5 5 5 5 5 PAGE_ID 0x05 0x05 0x05 0x05 0x05 Address 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 5 6 6 6 6 6 0x05 0x06 0x06 0x06 0x06 0x06 0x7E 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 6 0x06 0x7E Register PAGE_ID Not used FIR_COEF_A000 FIR_COEF_A001 FIR_COEF_A002 to FIR_COEF_A058 FIR_COEF_A059 PAGE_ID Not used FIR_COEF_A060 FIR_COEF_A061 FIR_COEF_A062 to FIR_COEF_A118 FIR_COEF_D119 Table 60. Filter Bank B Memory Map Page 7 7 7 7 7 PAGE_ID 0x07 0x07 0x07 0x07 0x07 Address 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 7 8 8 8 8 8 0x07 0x08 0x08 0x08 0x08 0x08 0x7E 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 8 0x08 0x7E Register PAGE_ID Not used FIR_COEF_B000 FIR_COEF_B001 FIR_COEF_B002 to FIR_COEF_B058 FIR_COEF_B059 PAGE_ID Not used FIR_COEF_B060 FIR_COEF_B061 FIR_COEF_B062 to FIR_COEF_B118 FIR_COEF_B119 Table 61. Filter Bank C Memory Map Page 9 9 9 9 9 PAGE_ID 0x09 0x09 0x09 0x09 0x09 Address 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 9 10 10 10 10 10 0x09 0x0A 0x0A 0x0A 0x0A 0x0A 0x7E 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 10 0x0A 0x7E Rev. B | Page 21 of 36 Register PAGE_ID Not used FIR_COEF_C000 FIR_COEF_C001 FIR_COEF_C002 to FIR_COEF_C058 FIR_COEF_C059 PAGE_ID Not used FIR_COEF_C060 FIR_COEF_C061 FIR_COEF_C062 to FIR_COEF_C118 FIR_COEF_C119 ADIS16488 Data Sheet Table 62. Filter Bank D Memory Map Table 63. FIR Filter Descriptions, Default Configuration Page 11 11 11 11 11 PAGE_ID 0x0B 0x0B 0x0B 0x0B 0x0B Address 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C FIR Filter Bank A B C D 11 12 12 12 12 12 0x0B 0x0C 0x0C 0x0C 0x0C 0x0C 0x7E 0x00 0x02 to 0x07 0x08 0x0A 0x0C to 0x7C 12 0x0C 0x7E Register PAGE_ID Not used FIR_COEF_D000 FIR_COEF_D001 FIR_COEF_D002 to FIR_COEF_D058 FIR_COEF_D059 PAGE_ID Not used FIR_COEF_D060 FIR_COEF_D061 FIR_COEF_D062 to FIR_COEF_D118 FIR_COEF_D119 Taps 120 120 32 32 −3 dB Frequency (Hz) 310 55 275 63 0 –10 MAGNITUDE (dB) –20 B D A NO FIR FILTERING C –30 –40 –50 –60 –70 Default Filter Performance –80 Rev. B | Page 22 of 36 –90 –100 0 200 400 600 800 1000 FREQUENCY (Hz) Figure 21. FIR Filter Frequency Response Curves 1200 10277-019 The FIR filter banks have factory-programmed filter designs. They are all low-pass filters that have unity dc gain. Table 63 provides a summary of each filter design, and Figure 21 shows the frequency response characteristics. The phase delay is equal to ½ of the total number of taps. Data Sheet ADIS16488 CALIBRATION Bias Null Command The ADIS16488 factory calibration produces correction formulas for the gyroscopes, accelerometers, magnetometers, and barometers, and then programs them into the flash memory. In addition, there are a series of user-configurable calibration registers, for in-system tuning. GYROSCOPES The user-calibration for the gyroscopes includes registers for adjusting bias and sensitivity, as shown in Figure 22. 1 + X_GYRO_SCALE FACTORY CALIBRATION AND FILTERING XG_BIAS_HIGH X_GYRO_OUT X_GYRO_LOW 10277-020 X-AXIS GYRO XG_BIAS_LOW Figure 22. User Calibration Signal Path, Gyroscopes Manual Bias Correction The xG_BIAS_HIGH registers (see Table 64, Table 65, and Table 66) and xG_BIAS_LOW registers (see Table 67, Table 68, and Table 69) provide a bias adjustment function for the output of each gyroscope sensor. Table 64. XG_BIAS_HIGH (Page 2, Base Address = 0x12) Bits [15:0] Description (Default = 0x0000) X-axis gyroscope offset correction, upper word twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 65. YG_BIAS_HIGH (Page 2, Base Address = 0x16) Bits [15:0] Description (Default = 0x0000) Y-axis gyroscope offset correction, upper word; twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 66. ZG_BIAS_HIGH (Page 2, Base Address = 0x1A) Bits [15:0] Description (Default = 0x0000) Z-axis gyroscope offset correction, upper word; twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 67. XG_BIAS_LOW (Page 2, Base Address = 0x10) Bits [15:0] Description (Default = 0x0000) X-axis gyroscope offset correction, lower word; twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec ÷ 216 = ~0.000000305°/sec Table 68. YG_BIAS_LOW (Page 2, Base Address = 0x14) Bits [15:0] Description (Default = 0x0000) Y-axis gyroscope offset correction, lower word; twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec ÷ 216 = ~0.000000305°/sec Table 69. ZG_BIAS_LOW (Page 2, Base Address = 0x18) Bits [15:0] Description (Default = 0x0000) Z-axis gyroscope offset correction, lower word twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec ÷ 216 = ~0.000000305°/sec The continuous bias estimator (CBE) accumulates and averages data in a 64-sample FIFO. The average time (tA) for the bias estimates relies on the sample time base setting in NULL_CNFG[3:0] (see Table 70). Users can load the correction factors of the CBE into the gyroscope offset correction registers (see Table 64, Table 65, Table 66, Table 67, Table 68, and Table 69) using the bias null command in GLOB_CMD[0] (see Table 114). NULL_CNFG[13:8] provide on/off controls for the sensors that update when issuing a bias null command. The factory default configuration for NULL_CNFG enables the bias null command for the gyroscopes, disables the bias null command for the accelerometers, and establishes the average time to ~26.64 seconds. Table 70. NULL_CNFG (Page 3, Base Address = 0x0E) Bits [15:14] 13 12 11 10 9 8 [7:4] [3:0] Description (Default = 0x070A) Not used Z-axis acceleration bias correction enable (1 = enabled) Y-axis acceleration bias correction enable (1 = enabled) X-axis acceleration bias correction enable (1 = enabled) Z-axis gyroscope bias correction enable (1 = enabled) Y-axis gyroscope bias correction enable (1 = enabled) X-axis gyroscope bias correction enable (1 = enabled) Not used Time base control (TBC), range: 0 to 13 (default = 10); tB = 2TBC/2460, time base, tA = 64 × tB, average time Turn to Page 3 (DIN = 0x8003) and set GLOB_CMD[0] = 1 (DIN = 0x8201, then DIN = 0x8300) to update the user offset registers with the correction factors of the CBE. Make sure that the inertial platform is stable during the entire average time for optimal bias estimates. Manual Sensitivity Correction The x_GYRO_SCALE registers enable sensitivity adjustment (see Table 71, Table 72, and Table 73). Table 71. X_GYRO_SCALE (Page 2, Base Address = 0x04) Bits [15:0] Description (Default = 0x0000) X-axis gyroscope scale correction; twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.0003052% Table 72. Y_GYRO_SCALE (Page 2, Base Address = 0x06) Bits [15:0] Description (Default = 0x0000) Y-axis gyroscope scale correction; twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.0003052% Table 73. Z_GYRO_SCALE (Page 2, Base Address = 0x08) Bits [15:0] Rev. B | Page 23 of 36 Description (Default = 0x0000) Z-axis gyroscope scale correction; twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.0003052% ADIS16488 Data Sheet Linear Acceleration on Effect on Gyroscope Bias Table 78. XA_BIAS_LOW (Page 2, Base Address = 0x1C) MEMS gyroscopes typically have a bias response to linear acceleration that is normal to their axis of rotation. The ADIS16488 offers an optional compensation function for this effect. Turn to Page 3 (DIN = 0x8003) and set CONFIG[7] = 1 (DIN = 0x9080, DIN = 0x9100). Bits [15:0] Table 79. YA_BIAS_LOW (Page 2, Base Address = 0x20) Bits [15:0] Table 74. CONFIG (Page 3, Base Address = 0x0A) Bits [15:8] 7 6 [5:2] 1 0 Description (Default = 0x00C0) Not used Linear-g compensation for gyroscopes (1 = enabled) Point of percussion alignment (1 = enabled) Not used Real-time clock, daylight savings time (1: enabled, 0: disabled) Real-time clock control (1: relative/elapsed timer mode, 0: calendar mode) Bits [15:0] The x_ACCL_SCALE registers enable sensitivity adjustment (see Table 81, Table 82, Table 83). Table 81. X_ACCL_SCALE (Page 2, Base Address = 0x0A) Bits [15:0] 1 + X_ACCL_SCALE X_ACCL_LOW 10277-021 XA_BIAS_HIGH X_ACCL_OUT XA_BIAS_LOW Figure 23. User Calibration Signal Path, Gyroscopes Description (Default = 0x0000) X-axis accelerometer scale correction, Twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.0003052% Table 82. Y_ACCL_SCALE (Page 2, Base Address = 0x0C) Bits [15:0] Manual Bias Correction The xA_BIAS_HIGH (see Table 75, Table 76, and Table 77) and xA_BIAS_LOW (see Table 78, Table 79, and Table 80) registers provide a bias adjustment function for the output of each gyroscope sensor. The xA_BIAS_HIGH registers use the same format as x_ACCL_OUT registers. The xA_BIAS_LOW registers use the same format as x_ACCL_LOW registers. Description (Default = 0x0000) Z-axis accelerometer offset correction, low word;, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg ÷ 216 = ~0.0000122 mg Manual Sensitivity Correction The user-calibration for the accelerometers includes registers for adjusting bias and sensitivity, as shown in Figure 23. FACTORY CALIBRATION AND FILTERING Description (Default = 0x0000) Y-axis accelerometer offset correction, low word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg ÷ 216 = ~0.0000122 mg Table 80. ZA_BIAS_LOW (Page 2, Base Address = 0x24) ACCELEROMETERS X-AXIS ACCL Description (Default = 0x0000) X-axis accelerometer offset correction, low word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg ÷ 216 = ~0.0000122 mg Description (Default = 0x0000) Y-axis accelerometer scale correction, Twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.0003052% Table 83. Z_ACCL_SCALE (Page 2, Base Address = 0x0E) Bits [15:0] Description (Default = 0x0000) Z-axis accelerometer scale correction, Twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.0003052% Table 75. XA_BIAS_HIGH (Page 2, Base Address = 0x1E) MAGNETOMETERS Bits [15:0] The user calibration registers enable both hard-iron and softiron correction, as shown in the following relationship: Description (Default = 0x0000) X-axis accelerometer offset correction, high word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg M XC 1 + S11 M YC = S 21 M ZC S 31 Table 76. YA_BIAS_HIGH (Page 2, Base Address = 0x22) Bits [15:0] Description (Default = 0x0000) Y-axis accelerometer offset correction, high word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg Table 77. ZA_BIAS_HIGH (Page 2, Base Address = 0x26) Bits [15:0] Description (Default = 0x0000) Z-axis accelerometer offset correction, high word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg S12 S13 M X H X 1 + S 22 S 23 × M Y + H Y S32 1 + S33 M Z H Z The MX, MY, and MZ variables represent the magnetometer data, prior to application of the user correction formula. The MXC, MYC, and MZC represent the magnetometer data, after the application of the user correction formula. Rev. B | Page 24 of 36 Data Sheet ADIS16488 Hard-Iron Correction Table 89. SOFT_IRON_S12 (Page 2, Base Address = 0x30) Table 84, Table 85, and Table 86 describe the register format for the hard-iron correction factors: HX, HY, and HZ. These registers use a twos complement format. Table 87 provides some numerical examples for converting the digital codes for these registers into their decimal equivalent. Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S12 Twos complement format, see Table 97 for examples Table 90. SOFT_IRON_S13 (Page 2, Base Address = 0x32) Table 84. HARD_IRON_X (Page 2, Base Address = 0x28) Bits [15:0] Bits [15:0] Table 91. SOFT_IRON_S21 (Page 2, Base Address = 0x34) Description (Default = 0x0000) X-axis magnetometer hard-iron correction factor, HX Twos complement, ±3.2767 gauss range, 0.1 mgauss/LSB, 0 gauss = 0x0000 (see Table 87) Bits [15:0] Table 85. HARD_IRON_Y (Page 2, Base Address = 0x2A) Bits [15:0] Description (Default = 0x0000) Y-axis magnetometer hard-iron correction factor, HY Twos complement, ±3.2767 gauss range, 0.1 mgauss/LSB, 0 gauss = 0x0000 (see Table 87) Table 86. HARD_IRON_Z (Page 2, Base Address = 0x2C) Bits [15:0] Description (Default = 0x0000) Z-axis magnetometer hard-iron correction factor, Hz Twos complement, ±3.2767 gauss range, 0.1 mgauss/LSB, 0 gauss = 0x0000 (see Table 87) Decimal +32,767 +2 +1 0 −1 −2 −32,768 Hex 0x7FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0x8000 Binary 0111 1111 1111 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1000 0000 0000 0000 Soft-Iron Correction Matrix The soft-iron correction matrix contains correction factors for both sensitivity (S11, S22, S33) and alignment (S12, S13, S21, S23, S31, S32). The registers that represent each soft-iron correction factor are in Table 88 (S11), Table 89 (S12), Table 90 (S13), Table 91 (S21), Table 92 (S22), Table 93 (S23), Table 94 (S31), Table 95 (S32), and Table 96 (S33). Table 97 offers some numerical examples for converting between the digital codes and their effect on the magnetometer output, in terms of percent-change. Table 88. SOFT_IRON_S11 (Page 2, Base Address = 0x2E) Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S21 Twos complement format, see Table 97 for examples Table 92. SOFT_IRON_S22 (Page 2, Base Address = 0x36) Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S22 Twos complement format, see Table 97 for examples Table 93. SOFT_IRON_S23 (Page 2, Base Address = 0x38) Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S23 Twos complement format, see Table 97 for examples Table 94. SOFT_IRON_S31 (Page 2, Base Address = 0x3A) Table 87. x_MAGN_OUT Data Format Examples Magnetic Field +3.2767 gauss +0.2 mgauss +0.1 mgauss 0 gauss −0.1 mgauss −0.2 mgauss −3.2768 gauss Description (Default = 0x0000) Magnetometer soft-iron correction factor, S13 Twos complement format, see Table 97 for examples Description (Default = 0x0000) Magnetometer soft-iron correction factor, S11 Twos complement format, see Table 97 for examples Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S31 Twos complement format, see Table 97 for examples Table 95. SOFT_IRON_S32 (Page 2, Base Address = 0x3C) Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S32 Twos complement format, see Table 97 for examples Table 96. SOFT_IRON_S33 (Page 2, Base Address = 0x3E) Bits [15:0] Description (Default = 0x0000) Magnetometer soft-iron correction factor, S33 Twos complement format, see Table 97 for examples Table 97. Soft Iron Correction, Numerical Examples Delta (%) +100 – 1/216 +200/215 +100/215 0 −100/215 −200/215 −100 Rev. B | Page 25 of 36 Decimal +32,767 +2 +1 0 −1 −2 −32,768 Hex 0x7FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0x8000 Binary 0111 1111 1111 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1000 0000 0000 0000 ADIS16488 Data Sheet BAROMETERS RESTORING FACTORY CALIBRATION The BR_BIAS_HIGH register (see Table 98) and BR_BIAS_LOW register (Table 99) provide an offset control function and use the same format as the output registers, BAROM_OUT and BAROM_LOW. Turn to Page 3 (DIN = 0x8003) and set GLOB_CMD[6] = 1 (DIN = 0xA240, DIN = 0xA300) to execute the factory calibration restore function. This function resets each user calibration register to zero, resets all sensor data to 0, and automatically updates the flash memory within 72 ms. See Table 114 for more information on GLOB_CMD. Table 98. BR_BIAS_HIGH (Page 2, Base Address = 0x42) Description (Default = 0x0000) Barometric pressure bias correction factor, high word Twos complement, ±1.3 bar measurement range, 0 bar = 0x0000, 1 LSB = 40 µbar Table 99. BR_BIAS_LOW (Page 2, Base Address = 0x40) Bits [15:0] Description (Default = 0x0000) Barometric pressure bias correction factor, low word Twos complement, ±1.3 bar measurement range, 0 bar = 0x0000, 1 LSB = 40 µbar ÷ 216 = ~0.00061 µbar POINT OF PERCUSSION ALIGNMENT CONFIG[6] offers a point of percussion alignment function that maps the accelerometer sensors to the corner of the package identified in Figure 24. To activate this feature, turn to Page 3 (DIN = 0x8003), then set CONFIG[6] = 1 (DIN = 0x8A40, DIN = 0x8B00). See Table 74 for more information on the CONFIG register. PIN 23 PIN 1 POINT OF PERCUSSION ALIGNMENT REFERENCE POINT. SEE CONFIG[6]. Figure 24. Point of Percussion Reference Point Rev. B | Page 26 of 36 10277-022 Bits [15:0] Data Sheet ADIS16488 ALARMS Each sensor has an independent alarm function that provides controls for alarm magnitude, polarity, and enabling a dynamic rate-of-change option. The ALM_STS register (see Table 49) contains the alarm output flags and the FNCTIO_CTRL register (see Table 117) provides an option for configuring one of the digital I/O lines as an alarm indicator. STATIC ALARM USE The static alarm setting compares each sensor’s output with the trigger settings in the xx_ALM_MAGN registers (see Table 100, Table 101, Table 102, Table 103, Table 104, Table 105, Table 106, Table 107, Table 108, and Table 109) of that sensor. The polarity controls for each alarm are in the ALM_CNFG_x registers (see Table 110, Table 111, Table 112). The polarity establishes whether greater than or less than produces an alarm condition. The comparison between the xx_ALM_MAGN value and the output data only applies to the upper word or 16 bits of the output data. DYNAMIC ALARM USE The dynamic alarm setting provides the option of comparing the change in each sensor’s output over a period of 48.7 ms with that sensor’s xx_ALM_MAGN register. Table 100. XG_ALM_MAGN (Page 3, Base Address = 0x28) Bits [15:0] Description (Default = 0x0000) X-axis gyroscope alarm threshold settings, Twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 101. YG_ALM_MAGN (Page 3, Base Address = 0x2A) Bits [15:0] Description (Default = 0x0000) Y-axis gyroscope alarm threshold settings, Twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 102. ZG_ALM_MAGN (Page 3, Base Address = 0x2C) Bits [15:0] Description (Default = 0x0000) Z-axis gyroscope alarm threshold settings, Twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 103. XA_ALM_MAGN (Page 3, Base Address = 0x2E) Bits [15:0] Description (Default = 0x0000) X-axis accelerometer alarm threshold settings, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg Table 104. YA_ALM_MAGN (Page 3, Base Address = 0x30) Bits [15:0] Description (Default = 0x0000) Y-axis accelerometer alarm threshold settings, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg Table 105. ZA_ALM_MAGN (Page 3, Base Address = 0x32) Bits [15:0] Description (Default = 0x0000) Z-axis accelerometer alarm threshold settings, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg Table 106. XM_ALM_MAGN (Page 3, Base Address = 0x34) Bits [15:0] Description (Default = 0x0000) X-axis magnetometer alarm threshold settings, Twos complement, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss Table 107. YM_ALM_MAGN (Page 3, Base Address = 0x36) Bits [15:0] Description (Default = 0x0000) Y-axis magnetometer alarm threshold settings, Twos complement, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss Table 108. ZM_ALM_MAGN (Page 3, Base Address = 0x38) Bits [15:0] Description (Default = 0x0000) Z-axis magnetometer alarm threshold settings, Twos complement, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss Table 109. BR_ALM_MAGN (Page 3, Base Address = 0x3A) Bits [15:0] Description (Default = 0x0000) Z-axis barometer alarm threshold settings, Twos complement, 0 bar = 0x0000, 1 LSB = 40 µbar Table 110. ALM_CNFG_0 (Page 3, Base Address = 0x20) Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Rev. B | Page 27 of 36 Description (Default = 0x0000) X-axis accelerometer alarm (1 = enabled) Not used X-axis accelerometer alarm polarity (1 = greater than) X-axis accelerometer dynamic enable (1 = enabled) Z-axis gyroscope alarm (1 = enabled) Not used Z-axis gyroscope alarm polarity (1 = greater than) Z-axis gyroscope dynamic enable (1 = enabled) Y-axis gyroscope alarm (1 = enabled) Not used Y-axis gyroscope alarm polarity (1 = greater than) Y-axis gyroscope dynamic enable (1 = enabled) X-axis gyroscope alarm (1 = enabled) Not used X-axis gyroscope alarm polarity (1 = greater than) X-axis gyroscope dynamic enable (1 = enabled) ADIS16488 Data Sheet Table 111. ALM_CNFG_1 (Page 3, Base Address = 0x22) Alarm Example Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Table 113 offers an alarm configuration example, which sets the Z-axis gyroscope alarm to trip when Z_GYRO_OUT > 131.1°/sec (0x199B). Description (Default = 0x0000) Y-axis magnetometer alarm (1 = enabled) Not used Y-axis magnetometer alarm polarity (1 = greater than) Y-axis magnetometer dynamic enable (1 = enabled) X-axis magnetometer (1 = enabled) Not used X-axis magnetometer alarm polarity (1 = greater than) X-axis magnetometer dynamic enable (1 = enabled) Z-axis accelerometer alarm (1 = enabled) Not used Z-axis accelerometer alarm polarity (1 = greater than) Z-axis accelerometer dynamic enable (1 = enabled) Y-axis accelerometer alarm (1 = enabled) Not used Y-axis accelerometer alarm polarity (1 = greater than) Y-axis accelerometer dynamic enable (1 = enabled) Table 113. Alarm Configuration Example DIN 0xAC9B 0xAD19 0xA000 0xA103 Table 112. ALM_CNFG_2 (Page 3, Base Address = 0x24) Bits [15:8] 7 6 5 4 3 2 1 0 Description (Default = 0x0000) Not used Barometer alarm (1 = enabled) Not used Barometer alarm polarity (1 = greater than) Barometer dynamic enable (1 = enabled) Z-axis magnetometer alarm (1 = enabled) Not used Z-axis magnetometer alarm polarity (1 = greater than) Z-axis magnetometer dynamic enable (1 = enabled) Rev. B | Page 28 of 36 Description Set ZG_ALM_MAGN[7:0] = 0x9B Set ZG_ALM_MAGN[15:8] = 0x19 Set ALM_CNFG_0[7:0] = 0x00 Set ALM_CNFG_0[15:8] = 0x03 Data Sheet ADIS16488 SYSTEM CONTROLS MEMORY MANAGEMENT The ADIS16488 provides a number of system-level controls for managing its operation, which include reset, self-test, calibration, memory management, and I/O configuration. GLOBAL COMMANDS The GLOB_CMD register (see Table 114) provides trigger bits for several operations. Write 1 to the appropriate bit in GLOB_CMD to start a function. After the function completes, the bit restores to 0. Table 114. GLOB_CMD (Page 3, Base Address = 0x02) Description Not used Software reset Factory calibration restore Not used Flash memory update Flash memory test Self-test Bias null Execution Time Not applicable 120 ms 75 ms Not applicable 375 ms 50 ms 12 ms See Table 70 Table 115. FLSHCNT_LOW (Page 2, Base Address = 0x7C) Bits [15:0] Table 116. FLSHCNT_HIGH (Page 2, Base Address = 0x7E) Bits [15:0] Software Reset Description Binary counter; number of flash updates, upper word Automatic Self-Test RETENTION (Years) 600 Turn to Page 3 (DIN = 0x8003) and then set GLOB_CMD[7] = 1 (DIN = 0x8280, DIN = 0x8300) to reset the operation, which removes all data, initializes all registers from their flash settings, and starts data collection. This function provides a firmware alternative to the RST line (see Table 5, Pin 8). Turn to Page 3 (DIN = 0x8003) and then set GLOB_CMD[1] = 1 (DIN = 0x8202, then DIN = 0x8300) to run an automatic selftest routine, which executes the following steps: 1. 2. 3. 4. 5. 6. 7. Description Binary counter; number of flash updates, lower word Measure output on each sensor. Activate self-test on each sensor. Measure output on each sensor. Deactivate the self-test on each sensor. Calculate the difference with self-test on and off. Compare the difference with internal pass/fail criteria. Report the pass/fail results for each sensor in DIAG_STS. After waiting 12 ms for this test to complete, turn to Page 0 (DIN = 0x8000) and read DIAG_STS using DIN = 0x0A00. Note that using an external clock can extend this time. When using an external clock of 100 Hz, this time extends to 35 ms. Note that 100 Hz is too slow for optimal sensor performance. 450 300 150 0 30 40 55 70 85 100 125 JUNCTION TEMPERATURE (°C) 135 150 10277-023 Bits [15:8] 7 6 [5:4] 3 2 1 0 The data retention of the flash memory depends on temperature and the number of write cycles. Figure 25 characterizes the dependence on temperature, and the FLSHCNT_LOW and FLSHCNT_HIGH registers (see Table 115 and Table 116) provide a running count of flash write cycles. The flash updates every time GLOB_CMD[6], GLOB_CMD[3], or GLOB_CMD[0] is set to 1. Figure 25. Flash Memory Retention Flash Memory Test Turn to Page 3 (DIN = 0x8003), and then set GLOB_CMD[2] = 1 (DIN = 0x8204, DIN = 0x8300) to run a checksum test of the internal flash memory, which compares a factory-programmed value with the current sum of the same memory locations. The result of this test loads into SYS_E_FLAG[6]. Turn to Page 0 (DIN = 0x8000) and use DIN = 0x0800 to read SYS_E_FLAG. GENERAL-PURPOSE I/O There are four general-purpose I/O lines: DIO1, DIO2, DIO3, and DIO4. The FNCTIO_CTRL register controls the basic function of each I/O line, which provides a number of useful functions. Each I/O line will only support one function at a time. In cases where a single line has two different assignments, the enable bit for the lower-priority function will automatically reset to zero and be disabled. The priority is (1) data-ready, (2) sync clock input, (3) alarm indicator, and (4) general-purpose, where 1 identifies the highest priority and 4 indicates the lowest priority. Rev. B | Page 29 of 36 ADIS16488 Data Sheet Table 117. FNCTIO_CTRL (Page 3, Base Address = 0x06) General-Purpose I/O Control Bits [15:12] 11 10 [9:8] When FNCTIO_CTRL does not configure a DIOx pin, GPIO_CTRL provides register controls for general-purpose use of the pin. GPIO_CTRL[3:0] provides input/output assignment controls for each line. When the DIOx lines are inputs, monitor their level by reading GPIO_CTRL[7:4]. When the DIOx lines are used as outputs, set their level by writing to GPIO_CTRL[7:4]. For example, use the following sequence to set DIO1 and DIO3 as high and low output lines, respectively, and set DIO2 and DIO4 as input lines. Turn to Page 3 (DIN = 0x8003) and set GPIO_CTRL[7:0] = 0x15 (DIN = 0x8815, then DIN = 0x8900). 7 6 [5:4] 3 2 [1:0] Description (Default = 0x000D) Not used Alarm indicator: 1 = enabled, 0 = disabled Alarm indicator polarity: 1 = positive, 0 = negative Alarm indicator line selection: 00 = DIO1, 01 = DIO2, 10 = DIO3, 11 = DIO4 Sync clock input enable: 1 = enabled, 0 = disabled Sync clock input polarity: 1 = rising edge, 0 = falling edge Sync clock input line selection: 00 = DIO1, 01 = DIO2, 10 = DIO3, 11 = DIO4 Data-ready enable: 1 = enabled, 0 = disabled Data-ready polarity: 1 = positive, 0 = negative Data-ready line selection: 00 = DIO1, 01 = DIO2, 10 = DIO3, 11 = DIO4 Table 118. GPIO_CTRL (Page 3, Base Address = 0x08) Data-Ready Indicator FNCTIO_CTRL[3:0] provide some configuration options for using one of the DIOx lines as a data-ready indicator signal, which can drive a processor’s interrupt control line. The factory default assigns DIO2 as a positive polarity, data-ready signal. Use the following sequence to change this assignment to DIO1 with a negative polarity: turn to Page 3 (DIN = 0x8003) and set FNCTIO_CTRL[3:0] = 1000 (DIN = 0x8608, then DIN = 0x8700). The timing jitter on the data-ready signal is ±1.4 µs. Bits [15:8] 7 6 5 4 3 2 1 0 Input Sync/Clock Control FNCTIO_CTRL[7:4] provide some configuration options for using one of the DIOx lines as an input synchronization signal for sampling inertial sensor data. For example, use the following sequence to establish DIO4 as a positive polarity, input clock pin and keep the factory default setting for the data-ready function: turn to Page 3 (DIN = 0x8003) and set FNCTIO_CTRL[7:0] = 0xFD (DIN = 0x86FD, then DIN = 0x8700). Note that this command also disables the internal sampling clock, and no data sampling takes place without the input clock signal. When selecting a clock input frequency, consider the 330 Hz sensor bandwidth, because under sampling the sensors can degrade noise and stability performance. 1 Description (Default = 0x00X0)1 Don’t care General-Purpose I/O Line 4 (DIO4) data level General-Purpose I/O Line 3 (DIO3) data level General-Purpose I/O Line 2 (DIO2) data level General-Purpose I/O Line 1 (DIO1) data level General-Purpose I/O Line 4 (DIO4) direction control (1 = output, 0 = input) General-Purpose I/O Line 3 (DIO3) direction control (1 = output, 0 = input) General-Purpose I/O Line 2 (DIO2) direction control (1 = output, 0 = input) General-Purpose I/O Line 1 (DIO1) direction control (1 = output, 0 = input) GPIO_CTRL[7:4] reflects levels on DIOx lines. POWER MANAGEMENT The SLP_CNT register (see Table 119) provides controls for both power-down mode and sleep modes. The trade-off between power-down mode and sleep mode is between idle power and recovery time. Power-down mode offers the best idle power consumption but requires the most time to recover. Also, all volatile settings are lost during power-down but are preserved during sleep mode. For timed sleep mode, turn to Page 3 (DIN = 0x8003), write the amount of sleep time to SLP_CNT[7:0] and then, set SLP_CNT[8] = 1 (DIN = 0x9101) to start the sleep period. For a timed powerdown period, change the last command to set SLP_CNT[9] = 1 (DIN = 0x9102). To power down or sleep for an indefinite period, set SLP_CNT[7:0] = 0x00 first, then set either SLP_CNT[8] or SLP_CNT[9] to 1. Note that the command takes effect when the CS line goes high. To awaken the device from sleep or power-down mode, use one of the following options to restore normal operation: • • • Assert CS from high to low. Pulse RST low, then high again. Cycle the power. For example, set SLP_CNT[7:0] = 0x64 (DIN = 0x9064), then set SLP_CNT[8] = 1 (DIN = 0x9101) to start a sleep period of 100 seconds. Rev. B | Page 30 of 36 Data Sheet ADIS16488 Table 119. SLP_CNT (Page 3, Base Address = 0x10) Bits [15:10] 9 8 [7:0] Description Not used Power-down mode Normal sleep mode Programmable time bits; 1 sec/LSB; 0x00 = indefinite If the sleep mode and power-down mode bits are both set high, the normal sleep mode (SLP_CNT[8]) bit takes precedence. General-Purpose Registers The USER_SCR_x registers (see Table 120, Table 121, Table 122, and Table 123) provide four 16-bit registers for storing data. Table 120. USER_SCR_1 (Page 2, Base Address = 0x74) Bits [15:0] Description User-defined Table 121. USER_SCR_2 (Page 2, Base Address = 0x76) Bits [15:0] Description User-defined Table 122. USER_SCR_3 (Page 2, Base Address = 0x78) Bits [15:0] Description User-defined Write the current time to each time data register after setting CONFIG[0] = 1 (DIN = 0x8003, DIN = 0x8A01). Note that CONFIG[1] provides a bit for managing daylight savings time. After the CONFIG and TIME_xx_OUT registers are configured, set GLOB_CMD[3] = 1 (DIN = 0x8003, DIN = 0x8204, DIN = 0x8300) to back these settings up in flash, and use a separate 3.3 V source to supply power to the VDDRTC function. Note that access to time data in the TIME_xx_OUT registers requires normal operation (VDD = 3.3 V and full startup), but the timer function only requires that VDDRTC = 3.3 V when the rest of the ADIS16488 is turned off. Table 124. TIME_MS_OUT (Page 0, Base Address = 0x78) Bits [15:14] [13:8] [7:6] [5:0] Table 123. USER_SCR_4 (Page 2, Base Address = 0x7A) Bits [15:0] sequence: seconds (TIME_MS_OUT[5:0]), minutes (TIME_ MS_OUT[13:8]), hours (TIME_DH_OUT[5:0]), day (TIME_DH_OUT[12:8]), month (TIME_YM_OUT[3:0]), and year (TIME_YM_OUT[14:8]). The updates to the timer do not become active until a successful write to the TIME_ YM_OUT[14:8] byte. The real-time clock registers reflect the newly updated values only after the next seconds tick of the clock that follows the write to TIME_YM_OUT[14:8] (year). Writing to TIME_ YM_OUT[14:8] activates all timing values; therefore, always write to this location last when updating the timer, even if the year information does not require updating. Description User-defined Real-Time Clock Configuration/Data The VDDRTC power supply pin (see Table 5, Pin 23) provides a separate supply for the real-time clock (RTC) function. This enables the RTC to keep track of time, even when the main supply (VDD) is off. Configure the RTC function by selecting one of two modes in CONFIG[0] (see Table 74). The real-time clock data is available in the TIME_MS_OUT register (see Table 124), TIME_DH_OUT register (see Table 125), and TIME_YM_OUT register (see Table 126). When using the elapsed timer mode, the time data registers start at 0x0000 when the device starts up (or resets) and begin keeping time in a manner that is similar to a stopwatch. When using the clock/calendar mode, write the current time to the real-time registers in the following Description Not used Minutes, binary data, range = 0 to 59 Not used Seconds, binary data, range = 0 to 59 Table 125. TIME_DH_OUT (Page 0, Base Address = 0x7A) Bits [15:13] [12:8] [7:6] [5:0] Description Not used Day, binary data, range = 1 to 31 Not used Hours, binary data, range = 0 to 23 Table 126. TIME_YM_OUT (Page 0, Base Address = 0x7C) Bits [15] [14:8] [7:4] [3:0] Rev. B | Page 31 of 36 Description Not used Year, binary data, range = 0 to 99, relative to 2000 A.D. Not used Month, binary data, range = 1 to 12 ADIS16488 Data Sheet APPLICATIONS INFORMATION PROTOTYPE INTERFACE BOARD INSTALLATION TIPS The ADIS16488/PCBZ includes one ADIS16488AMLZ, one interface printed circuit board (PCB), and four M2 × 0.4 × 18 mm machine screws. The interface PCB provides four holes for ADIS16488AMLZ attachment and four larger holes for attaching the interface PCB to another surface. The ADIS16488AMLZ attachment holes are pre-tapped for M2 × 0.4 mm machine screws and the four larger holes, located in each corner, support attachment with M2.5 or #4 machine screws. J1 is a dual-row, 2 mm (pitch) connector that works with a number of ribbon cable systems, including 3M Part Number 152212-0100-GB (ribbon crimp connector) and 3M Part Number 3625/12 (ribbon cable). Note that J1 has 16 pads but currently uses a 12-pin connector. The extra pins accommodate future evaluation system plans. Figure 28 and Figure 29 provide the mechanical design information used for the ADIS16488/PCBZ. Use these figures when implementing a connector-down approach, where the mating connector and the ADIS16488AMLZ are on the same surface. When designing a connector-up system, use the mounting holes shown in Figure 28 as a guide in designing the bulkhead mounting system and use Figure 29 as a guide in developing the mating connector interface on a flexible circuit or other connector system. The suggested torque setting for the attachment hardware is 40 inch-ounces, or 0.2825 N-m. 39.600 BSC 19.800 BSC 2.500 BSC 4× 0.560 BSC 2× ALIGNMENT HOLES FOR MATING SOCKET 5 BSC 5 BSC 10277-025 1.65mm 1.642 BSC 21.300 BSC 42.600 Figure 27 provides the pin assignments for J1. The pin descriptions match those listed in Table 5. The C1 and C2 locations provide solder pads for extra capacitors, which can provide additional filtering for start-up transients and supply noise. NOTES 1. ALL DIMENSIONS IN mm UNITS. 0.4334 [11.0] 0.019685 [0.5000] (TYP) 6.35mm 0.0240 [0.610] 0.054 [1.37] 10277-024 6.35mm 58.42mm 64.77mm Figure 26. Physical Diagram for the ADIS16488/PCBZ 0.022± DIA (TYP) 0.022 DIA THRU HOLE (TYP) NONPLATED NONPLATED THRU HOLE THRU HOLE 2× Figure 29. Suggested Layout and Mechanical Design for the Mating Connector J1 RST 1 2 SCLK CS 3 4 DOUT DIN DNC 5 6 GND 7 8 GND GND 9 10 VDD VDD VDD 11 12 DIO1 13 14 DIO2 DIO3 15 16 DIO4 0.0394 [1.00] Figure 27. ADIS16488/PCBZ J1 Pin Assignments Rev. B | Page 32 of 36 10277-026 0.0394 [1.00] 0.1800 [4.57] 11.30mm 10277-200 66.04mm 59.69mm Figure 28. Suggested Mounting Hole Locations, Connector Down ADIS16488 MOUNTING HOLES Data Sheet ADIS16488 OUTLINE DIMENSIONS 44.254 44.000 43.746 39.854 39.600 39.346 Ø 2.40 BSC (4 PLCS) 19.80 2.20 BSC DETAIL A 1.142 BSC 42.854 42.600 42.346 1.00 BSC 47.254 47.000 46.746 DETAIL A BOTTOM VIEW 14.254 14.000 13.746 DETAIL B DETAIL B FRONT VIEW 3.454 3.200 2.946 5.50 BSC 5.50 BSC 1.00 BSC PITCH 0.30 SQ BSC 10-20-2010-B 2.84 BSC Figure 30. 24-Lead Module with Connector Interface [MODULE] (ML-24-6) Dimensions shown in millimeters ORDERING GUIDE Model 1, 2 ADIS16488AMLZ ADIS16488/PCBZ 1 2 Temperature Range −40°C to +85°C Package Description 24-Lead Module with Connector Interface [MODULE] Interface PCB Z = RoHS Compliant Part. The ADIS16488/PCBZ includes one ADIS16488AMLZ and one interface board PCB. See Figure 26 for more information on the interface PCB. Rev. B | Page 33 of 36 Package Option ML-24-6 ADIS16488 Data Sheet NOTES Rev. B | Page 34 of 36 Data Sheet ADIS16488 NOTES Rev. B | Page 35 of 36 ADIS16488 Data Sheet NOTES ©2011–2012 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. D10277-0-2/12(B) Rev. B | Page 36 of 36