Ten Degrees of Freedom Inertial Sensor with Dynamic Orientation Outputs ADIS16480 Data Sheet FEATURES GENERAL DESCRIPTION Dynamic angle outputs Quaternion, Euler, rotation matrix 0.1° (pitch, roll) and 0.3° (yaw) static accuracy 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, ±10 g Triaxial, delta angle and delta velocity outputs Triaxial, digital magnetometer, ±2.5 gauss Digital pressure sensor, 300 mbar to 1100 mbar Adaptive extended Kalman filter Automatic covariance computation Programmable reference reorientation Programmable sensor disturbance levels Configurable event-driven controls Factory-calibrated sensitivity, bias, and axial alignment Calibration temperature range: −40°C to +70°C SPI-compatible serial interface Programmable operation and control 4 FIR filter banks, 120 configurable taps Digital I/O: data-ready alarm indicator, external clock 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 The ADIS16480 iSensor® device is a complete inertial system that includes a triaxial gyroscope, a triaxial accelerometer, triaxial magnetometer, pressure sensor, and an extended Kalman filter (EKF) for dynamic orientation sensing. Each inertial sensor in the ADIS16480 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 sensors are further correlated and processed in the extended Kalman filter, which provides both automatic adaptive filtering, as well as user-programmable tuning. Thus, in addition to the IMU outputs, the device provides stable quaternion, Euler, and rotation matrix outputs in the local navigation frame. The ADIS16480 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 ADIS16480 uses the same footprint and connector system as the ADIS16488, 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. The ADIS16480 provides an operating temperature range of −40°C to +85°C. APPLICATIONS Platform stabilization, control, and pointing Navigation Instrumentation Robotics FUNCTIONAL BLOCK DIAGRAM DIO1 DIO2 DIO3 DIO4 RST SELF-TEST I/O VDD POWER MANAGEMENT ALARMS GND TRIAXIAL GYRO TRIAXIAL ACCEL CONTROLLER TRIAXIAL MAGN CALIBRATION EXTENDED KALMAN FILTER OUTPUT DATA REGISTERS DIGITAL FILTERING SCLK SPI USER CONTROL REGISTERS PRESSURE DIN DOUT CLOCK ADIS16480 VDD VDDRTC 10278-001 TEMP CS Figure 1. Rev. 0 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 ©2012 Analog Devices, Inc. All rights reserved. ADIS16480 Data Sheet TABLE OF CONTENTS Features .............................................................................................. 1 Averaging/Decimation Filter .................................................... 24 Applications ....................................................................................... 1 Magnetometer/Barometer......................................................... 24 General Description ......................................................................... 1 FIR Filter Banks .......................................................................... 25 Functional Block Diagram .............................................................. 1 Extended Kalman Filter ................................................................. 27 Revision History ............................................................................... 2 Algorithm .................................................................................... 27 Specifications..................................................................................... 3 Covariance Terms....................................................................... 27 Timing Specifications .................................................................. 6 Reference Frame ......................................................................... 28 Absolute Maximum Ratings ............................................................ 7 Reference Transformation Matrix ............................................ 28 ESD Caution .................................................................................. 7 Declination .................................................................................. 29 Pin Configuration and Function Descriptions ............................. 8 Adaptive Operation .................................................................... 29 Typical Performance Characteristics ............................................. 9 Calibration ....................................................................................... 30 Basic Operation............................................................................... 10 Gyroscopes .................................................................................. 30 Register Structure ....................................................................... 10 Accelerometers ........................................................................... 31 SPI Communication ................................................................... 11 Magnetometers ........................................................................... 31 Device Configuration ................................................................ 11 Barometers .................................................................................. 33 Reading Sensor Data .................................................................. 11 Restoring Factory Calibration .................................................. 33 User Registers .................................................................................. 12 Point of Percussion Alignment ................................................. 33 Output Data Registers .................................................................... 16 Alarms .............................................................................................. 34 Inertial Sensor Data Format...................................................... 16 Static Alarm Use ......................................................................... 34 Rotation Rate (Gyroscope) ........................................................ 16 Dynamic Alarm Use .................................................................. 34 Acceleration................................................................................. 17 System Controls .............................................................................. 36 Delta Angles ................................................................................ 17 Global Commands ..................................................................... 36 Delta Velocity .............................................................................. 18 Memory Management ............................................................... 36 Magnetometers ........................................................................... 19 General-Purpose I/O ................................................................. 37 Roll, Pitch, Yaw Angles .............................................................. 19 Power Management.................................................................... 37 Barometer .................................................................................... 21 Applications Information .............................................................. 39 Internal Temperature ................................................................. 21 Prototype Interface Board ......................................................... 39 Status/Alarm Indicators ............................................................. 22 Installation Tips .......................................................................... 39 Firmware Revision...................................................................... 23 Outline Dimensions ....................................................................... 40 Product Identification ................................................................ 23 Ordering Guide .......................................................................... 40 Digital Signal Processing ............................................................... 24 Gyroscopes/Accelerometers...................................................... 24 REVISION HISTORY 5/12—Revision 0: Initial Version Rev. 0 | Page 2 of 40 Data Sheet ADIS16480 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 ANGLE OUTPUTS Euler Dynamic Range Sensitivity Static Accuracy 1 Dynamic Accuracy1 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 Test Conditions/Comments Min Typ Yaw and roll (Euler) Pitch (Euler) Rotation matrix, quaternion Max Unit ±180 ±90 ±180 Degrees Degrees Degree Degrees/LSB Degrees Degrees Degrees Degrees ±480 °/sec °/sec/LSB % ppm/°C Degrees Degrees % of FS °/sec °/hr °/√hr °/sec/°C °/sec/g °/sec rms °/sec/√Hz rms Hz kHz 0.0055 0.1 0.3 0.3 0.5 Pitch and roll Yaw Pitch and roll Yaw ±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 ±35 ±0.05 ±1.0 0.01 ±0.2 6.25 0.3 ±0.0025 0.009 0.16 0.0066 330 18 ±1 1σ 1σ −40°C ≤ TA ≤ +70°C, 1 σ Any axis, 1 σ (CONFIG[7] = 1) No filtering f = 25 Hz, no filtering Each axis ±10 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 ±25 ±0.035 ±1.0 0.1 ±16 0.1 0.029 ±0.1 1.5 0.067 330 5.5 ±0.5 1σ 1σ −40°C ≤ TA ≤ +85°C No filtering f = 25 Hz, no filtering Rev. 0 | Page 3 of 40 g g/LSB % ppm/°C Degrees Degrees % of FS mg mg m/sec/√hr mg/°C mg rms mg/√Hz rms Hz kHz ADIS16480 Parameter 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 BAROMETER Pressure Range Sensitivity Error with Supply Total Error Relative Error 2 Linearity 3 Linear-g Sensitivity Noise TEMPERATURE SENSOR Scale Factor LOGIC INPUTS 4 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 6 FUNCTIONAL TIMES 7 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 8 Data Sheet Test Conditions/Comments Min Typ Max ±2.5 0.1 ±2 1σ Axis to axis Axis to frame (package) Best fit straight line 0 gauss stimulus −40°C ≤ TA ≤ +85°C, 1 σ No filtering f = 25 Hz, no filtering Extended BAROM_OUT and BAROM_LOW (32-bit) 275 0.25 0.5 0.5 ±15 0.3 0.45 0.054 330 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) 1100 1200 6.1 × 10−7 0.04 4.5 2.5 0.1 0.2 0.005 0.025 0.00565 °C/LSB 0.8 20 VIH = 3.3 V VIL = 0 V 10 10 0.33 10 2.4 0.4 100,000 20 400 ± 160 400 ± 160 700 1.1 53 12 2.46 0.02 40 Using internal clock, 100 SPS 0.7 Rev. 0 | Page 4 of 40 gauss mgauss/LSB % ppm/°C Degrees Degrees % of FS mgauss mgauss/°C mgauss mgauss/√Hz Hz mbar mbar mbar/LSB %/V mbar mbar % of FS % of FS mbar/g mbar rms 2.0 ISOURCE = 0.5 mA ISINK = 2.0 mA Endurance 5 TJ = 85°C Time until inertial sensor data is available Unit 6.8 2.4 V V µs µA µA mA pF V V Cycles Years ms ms µs sec ms ms kSPS % ppm/°C kHz Data Sheet Parameter POWER SUPPLY, VDD Power Supply Current 9 POWER SUPPLY, VDDRTC Real-Time Clock Supply Current ADIS16480 Test Conditions/Comments 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 Min 3.0 Typ Max 3.6 254 12.2 45 3.0 3.6 13 Unit V mA mA µA V µA Accuracy specifications assume calibration of accelerometers and magnetometers to address sensor drift and local influences on magnetic fields. 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. 4 The digital I/O signals are driven by an internal 3.3 V supply, and the inputs are 5 V tolerant. 5 Endurance is qualified as per JEDEC Standard 22, Method A117, and measured at −40°C, +25°C, +85°C, and +125°C. 6 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. 7 These times do not include thermal settling, internal filter response times, or EKF start-up times (~825 ms), which may affect overall accuracy, with respect to time. 8 The device functions at clock rates below 0.7 kHz, but at reduced performance levels. 9 Supply current transients can reach 450 mA for 400 µs during start-up and reset recovery. 1 2 3 Rev. 0 | Page 5 of 40 ADIS16480 Data Sheet TIMING SPECIFICATIONS TA = 25°C, VDD = 3.3 V, unless otherwise noted. Table 2. 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 Min1 0.01 2 31 31 32 Parameter fSCLK tSTALL tCLS tCHS tCS 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 A2 D2 D1 10278-002 tDSOE LSB Figure 2. SPI Timing and Sequence tSTALL 10278-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. 0 | Page 6 of 40 10278-004 DATA READY Data Sheet ADIS16480 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 2 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. 0 | Page 7 of 40 θJA 22.8°C/W θJC 10.1°C/W Device Weight 48 g ADIS16480 Data Sheet PIN CONFIGURATION AND FUNCTION DESCRIPTIONS ADIS16480 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. 10278-005 DIO3 DNC 22 DNC DNC 24 VDDRTC TOP VIEW (Not to Scale) 10278-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. 0 | Page 8 of 40 Data Sheet ADIS16480 TYPICAL PERFORMANCE CHARACTERISTICS 0.8 1000 AVERAGE GYRO SCALE ERROR (% FS) 100 +1σ 10 –1σ 0.1 1 10 100 1000 10000 INTEGRATION PERIOD (Seconds) Figure 7. Gyroscope Allan Variance, 25°C 0.001 0.2 0 –0.2 –0.4 –0.6 –0.8 –40 –30 –20 –10 10278-007 1 0.01 INITIAL ERROR = ±0.5% 0.4 TEMPCO = 35ppm/°C 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) 10278-009 ROOT ALLAN VARIANCE (°/Hour) 0.6 Figure 9. Gyroscope Scale (Sensitivity) Error and Hysteresis vs. Temperature 0.6 AVERAGE INITIAL ERROR = ±0.2°/sec 0.5 TEMPCO = 0.0025°/sec/°C GYRO BIAS ERROR (°/sec) ROOT ALLAN VARIANCE (g) 0.4 +1σ 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. 0 | Page 9 of 40 10278-010 0.1 10278-008 –0.5 0.00001 0.01 ADIS16480 Data Sheet BASIC OPERATION 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, EKF tuning, and diagnostic configuration options. All communication between the ADIS16480 and an external processor involves either reading or writing to one of the user registers. TRIAXIS GYRO +3.3V TRIAXIS ACCEL VDD 10 SYSTEM PROCESSOR SPI MASTER 11 12 TRIAXIS MAGN 23 ADIS16480 SS 6 CS SCLK 3 SCLK MOSI 5 DIN MISO 4 DOUT IRQ 9 DIO2 BARO OUTPUT REGISTERS CONTROLLER CONTROL REGISTERS TEMP SENSOR Figure 12. Basic Operation 14 15 10278-011 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 ADIS16480. Table 7 provides a list of settings, which describe the SPI protocol of the ADIS16480. 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 DSP 10278-012 I/O LINES ARE COMPATIBLE WITH 3.3V LOGIC LEVELS REGISTER STRUCTURE SPI The ADIS16480 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 ADIS16480 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. 0 | Page 10 of 40 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 Data Sheet ADIS16480 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. NONVOLATILE FLASH MEMORY VOLATILE SRAM (NO SPI ACCESS) SPI ACCESS 10278-014 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. 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 10278-013 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 1100 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 0000 = 0x4060 = 16,480 (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. 0 | Page 11 of 40 10278-017 SCLK 10278-016 DIN 10278-015 The ADIS16480 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. ADIS16480 Data Sheet 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 Q0_C11_OUT Q1_C12_OUT Q2_C13_OUT Q3_C21_OUT C22_OUT ROLL_C23_OUT PITCH_C31_OUT YAW_C32_OUT C33_OUT Reserved 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/W R/W R/W R/W R/W R/W R/W R/W R/W N/A 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 Yes Yes Yes Yes Yes N/A 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 0x00 0x00 0x00 0x00 0x00 0x00 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 0x60 0x62 0x64 0x66 0x68 0x6A 0x6C 0x6E 0x70 0x72 to 0x76 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 N/A N/A N/A N/A N/A N/A N/A 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 Quaternion, q0 or rotation matrix, C11 Quaternion, q1 or rotation matrix, C12 Quaternion, q2 or rotation matrix, C13 Quaternion, q3 or rotation matrix, C21 Rotation matrix, C22 Euler angle, pitch axis, or rotation matrix, C23 Euler angle, roll axis, or rotation matrix, C31 Euler angle, yaw axis, or rotation matrix, C32 Rotation matrix, C33 Reserved Rev. 0 | Page 12 of 40 Format N/A N/A Table 68 Table 59 Table 60 Table 61 Table 57 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 56 Table 54 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 42 Table 43 Table 44 Table 45 Table 46 Table 47 Table 48 Table 49 Table 50 N/A Data Sheet Name 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 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 REFMTX_R11 REFMTX_R12 REFMTX_R13 REFMTX_R21 REFMTX_R22 REFMTX_R23 REFMTX_R31 REFMTX_R32 REFMTX_R33 USER_SCR_1 USER_SCR_2 USER_SCR_3 USER_SCR_4 ADIS16480 R/W R R R R N/A R/W N/A 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 R/W R/W R/W R/W R/W N/A 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 Flash Yes Yes Yes Yes N/A No N/A 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 Yes Yes Yes Yes Yes Yes N/A Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes PAGE_ID 0x00 0x00 0x00 0x00 0x01 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 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02 Address 0x78 0x7A 0x7C 0x7E 0x00 to 0x7E 0x00 0x02 0x04 0x06 0x08 0x0A 0x0C 0x0E 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 0x60 0x62 0x64 0x66 0x68 0x6A 0x6C 0x6E 0x70 0x72 0x74 0x76 0x78 0x7A Default N/A N/A N/A 0x4060 N/A 0x00 N/A 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 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 N/A 0x7FFF 0x0000 0x0000 0x0000 0x7FFF 0x0000 0x0000 0x0000 0x7FFF 0x0000 0x0000 0x0000 0x0000 Register Description Factory configuration time: minutes/seconds Factory configuration date/time: day/hour Factory configuration date: year/month Output, product identification (16,480) 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 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 Reference transformation matrix, R11 Reference transformation matrix, R12 Reference transformation matrix, R13 Reference transformation matrix, R21 Reference transformation matrix, R22 Reference transformation matrix, R23 Reference transformation matrix, R31 Reference transformation matrix, R32 Reference transformation matrix, R33 User Scratch Register 1 User Scratch Register 2 User Scratch Register 3 User Scratch Register 4 Rev. 0 | Page 13 of 40 Format Table 156 Table 157 Table 158 Table 65 N/A N/A N/A Table 103 Table 104 Table 105 Table 113 Table 114 Table 115 Table 100 Table 97 Table 101 Table 98 Table 102 Table 99 Table 110 Table 107 Table 111 Table 108 Table 112 Table 109 Table 116 Table 117 Table 118 Table 120 Table 121 Table 122 Table 123 Table 124 Table 125 Table 126 Table 127 Table 128 Table 131 Table 130 N/A Table 84 Table 85 Table 86 Table 87 Table 88 Table 89 Table 90 Table 91 Table 92 Table 152 Table 153 Table 154 Table 155 ADIS16480 Name FLSHCNT_LOW FLSHCNT_HIGH PAGE_ID GLOB_CMD Reserved FNCTIO_CTRL GPIO_CTRL CONFIG DEC_RATE Reserved 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 XA_ALM_MAGN YA_ALM_MAGN ZA_ALM_MAGN XM_ALM_MAGN YM_ALM_MAGN ZM_ALM_MAGN BR_ALM_MAGN Reserved EKF_CNFG Reserved DECLN_ANGL ACC_DISTB_THR MAG_DISTB_THR Reserved QCVR_NOIS_LWR QCVR_NOIS_UPR QCVR_RRW_LWR QCVR_RRW_UPR Reserved RCVR_ACC_LWR RCVR_ACC_UPR RCVR_MAG_LWR RCVR_MAG_UPR Reserved FIRM_REV FIRM_DM FIRM_Y Reserved Reserved SERIAL_NUM Reserved Data Sheet R/W R R R/W W N/A R/W R/W R/W R/W N/A R/W N/A R/W R/W N/A R/W R/W R/W N/A R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W N/A R/W N/A R/W R/W R/W N/A R/W R/W R/W R/W N/A R/W R/W R/W R/W N/A R R R N/A N/A R N/A Flash Yes Yes No No N/A Yes Yes Yes Yes N/A No N/A Yes Yes N/A Yes Yes Yes N/A Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes N/A Yes N/A Yes Yes Yes N/A Yes Yes Yes Yes N/A Yes Yes Yes Yes N/A Yes Yes Yes N/A N/A Yes N/A PAGE_ID 0x02 0x02 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x03 0x04 0x04 0x04 Address 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 0x2E 0x30 0x32 0x34 0x36 0x38 0x3A 0x3C to 0x4E 0x50 0x52 0x54 0x56 0x58 0x5A to 0x5E 0x60 0x62 0x64 0x66 0x68 to 0x6A 0x6C 0x6E 0x70 0x72 0x74 to 0x76 0x78 0x7A 0x7C 0x7E 0x00 to 0x18 0x20 0x22 to 0x7F Default N/A N/A 0x0000 N/A N/A 0x000D 0x00X0 1 0x00C0 0x0000 N/A N/A N/A 0x0000 0x0000 N/A 0x0000 0x0000 0x0000 N/A 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 N/A 0x0200 N/A 0x0000 0x0020 0x0030 N/A 0xC5AC 0x3727 0xE6FF 0x2E5B N/A 0x705F 0x3189 0xCC77 0x32AB N/A N/A N/A N/A N/A N/A N/A N/A Register Description 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 Reserved 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 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 Extended Kalman filter configuration Reserved Declination angle Accelerometer disturbance threshold Magnetometer disturbance threshold Reserved Process covariance, gyroscope noise, lower word Process covariance, gyroscope noise, upper word Process covariance, gyroscope RRW, lower word Process covariance, gyroscope RRW, upper word Reserved Measurement covariance, accelerometer, upper Measurement covariance, accelerometer, lower Measurement covariance, magnetometer, upper Measurement covariance, magnetometer, lower Reserved Firmware revision Firmware programming date: day/month Firmware programming date: year Reserved Reserved Serial number Reserved Rev. 0 | Page 14 of 40 Format Table 147 Table 148 N/A Table 146 N/A Table 149 Table 150 Table 106 Table 67 N/A Table 151 N/A Table 69 Table 70 N/A Table 142 Table 143 Table 144 N/A Table 132 Table 133 Table 134 Table 135 Table 136 Table 137 Table 138 Table 139 Table 140 Table 141 N/A Table 94 N/A Table 93 Table 95 Table 96 N/A Table 77 Table 76 Table 79 Table 78 N/A Table 81 Table 80 Table 83 Table 82 N/A Table 62 Table 63 Table 64 N/A N/A Table 66 N/A Data Sheet Name 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 ADIS16480 R/W R/W R/W R/W R/W R/W R/W R/W R/W Flash Yes Yes Yes Yes Yes Yes Yes Yes PAGE_ID 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C Address 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 N/A N/A N/A N/A N/A N/A N/A N/A Register Description 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. 0 | Page 15 of 40 Format Table 71 Table 71 Table 72 Table 72 Table 73 Table 73 Table 74 Table 74 ADIS16480 Data Sheet OUTPUT DATA REGISTERS After the ADIS16480 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 10. X_GYRO_OUT (Page 0, Base Address = 0x12) INERTIAL SENSOR DATA FORMAT Table 11. Y_GYRO_OUT (Page 0, Base Address = 0x16) 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), which captures the bit growth associated with the final averaging/decimation register. When using the maximum sample rate (DEC_RATE = 0x0000, the x_xxxx_LOW registers are not active. Bits [15:0] Bits [15:0] 0 X-AXIS GYROSCOPE DATA Description Y-axis gyroscope data; twos complement, ±450°/sec range, 0°/sec = 0x0000, 1 LSB = 0.02°/sec 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 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 Description X-axis gyroscope data; twos complement, ±450°/sec range, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 12. Z_GYRO_OUT (Page 0, Base Address = 0x1A) 10278-018 X_GYRO_OUT 15 Bits [15:0] Figure 18. Gyroscope Output Format Example, DEC_RATE > 0 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. EKF_CNFG[3] (see Table 94) provides a selection for gyroscope, accelerometer, and magnetometer data orientation, between the body frame and the local navigation frame. When EKF_CNFG[3] = 0 (default), the accelerometer and magnetometer data displays in the local navigation frame. Decimal +22,500 +2 +1 0 −1 −2 −22,500 Hex 0x57E4 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0xA81C The MSB in x_GYRO_LOW has a weight of 0.01°/sec, and each subsequent bit has ½ the weight of the previous one. Table 14. X_GYRO_LOW (Page 0, Base Address = 0x10) Bits [15:0] Description X-axis gyroscope data; additional resolution bits Table 15. Y_GYRO_LOW (Page 0, Base Address = 0x14) 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 Y-axis gyroscope data; additional resolution bits Table 16. Z_GYRO_LOW (Page 0, Base Address = 0x18) Bits [15:0] Description Z-axis gyroscope data; additional resolution bits Z-AXIS aZ mZ gZ mX X-AXIS mY Y-AXIS aX gX 10278-019 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 PIN 23 PIN 1 Figure 19. Inertial Sensor Direction Reference Diagram Rev. 0 | Page 16 of 40 Data Sheet ADIS16480 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, ±10 g range, 0 g = 0x0000, 1 LSB = 0.8 mg Description Y-axis accelerometer data; twos complement, ±10 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, ±10 g range, 0 g = 0x0000, 1 LSB = 0.8 mg Table 20. x_ACCL_OUT Data Format Examples Acceleration +10 g +1.6 mg +0.8 mg 0 mg −0.8 mg −1.6 mg −10 g Decimal +12,500 +2 +1 0 −1 −2 −12,500 Hex 0x30D4 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0xCF2C Binary 0011 0000 1101 0100 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1100 1111 0010 1100 The MSB in x_ACCL_LOW has a weight of 0.4 mg, and each subsequent bit has ½ the weight of the previous one. Table 21. X_ACCL_LOW (Page 0, Base Address = 0x1C) Bits [15:0] Description X-axis accelerometer data; additional resolution bits Table 22. Y_ACCL_LOW (Page 0, Base Address = 0x20) Bits [15:0] Description Y-axis accelerometer data; additional resolution bits Table 23. Z_ACCL_LOW (Page 0, Base Address = 0x24) Bits [15:0] DEC _ RATE + 1 ∆t S × (ωx ,n+1 + ωx ,n ); ∆t S = 2 fS 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 67 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 Table 24. X_DELTANG_OUT (Page 0, Base Address = 0x42) Bits [15:0] 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° Table 26. Z_DELTANG_OUT (Page 0, Base Address = 0x4A) Bits [15:0] 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 Angle (°) +720 × (215 − 1)/215 +1440/215 +720/215 0 −720/215 −1440/215 −720 Rev. 0 | Page 17 of 40 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 ADIS16480 Data Sheet Table 31. X_DELTVEL_OUT (Page 0, Base Address = 0x4E) The MSB in x_DELTANG_LOW has a weight of ~0.011° (720°/216), and each subsequent bit carries a weight of ½ of the previous one. Bits [15:0] Table 28. X_DELTANG_LOW (Page 0, Base Address = 0x40) Bits [15:0] Description X-axis delta angle data; additional resolution bits Table 32. Y_DELTVEL_OUT (Page 0, Base Address = 0x52) Table 29. Y_DELTANG_LOW (Page 0, Base Address = 0x44) Bits [15:0] Bits [15:0] Description Y-axis delta angle data; additional resolution bits Table 30. Z_DELTANG_LOW (Page 0, Base Address = 0x48) Bits [15:0] Description Z-axis delta angle data; additional resolution bits The delta velocity outputs represent an integration of the accelerometer measurements and use the following formula for all three axes (x-axis displayed): 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) Bits [15:0] DELTA VELOCITY ∆θ x = 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 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 DEC _ RATE + 1 ∆t S × (ax ,n+1 + ax ,n ); ∆t S = 2 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 67 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. Velocity (m/sec) +160 × (215 − 1)/215 +400/215 +200/215 0 −200/215 −400/215 −160 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 MSB in x_DELTVEL_LOW 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. 0 | Page 18 of 40 Description Z-axis delta velocity data; additional resolution bits Data Sheet ADIS16480 Quaternion 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] 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) Bits [15:0] Description Z-axis magnetometer data; twos complement, ±3.2767 gauss range, 0 gauss = 0x0000, 1 LSB = 0.1 mgauss 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 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 This four-element hypercomplex number defines the attitude of the body frame, relative to that of the navigation frame. The Qx_Cxx_OUT registers (See Table 42 through Table 45) contain the value for each element (q0, q1, q2, q4). The element, q0, is the scalar part of the quaternion and represents the magnitude of the rotation. The vector portion of the quaternion is defined by (q1, q2, q3)T, which identifies the axis about which the rotation takes place, in adjusting the body frame to that of the navigation frame. When the orientation is in its reference position, q0 is equal to one and q1, 2, and q3 are equal to zero. These registers update at the same data rate as the gyroscopes and accelerometers. Euler Angles The Euler angle names are yaw (ψ), pitch (θ), and roll (φ). See Figure 19 for the axial association of these angles. These three elements represent the most intuitive way of describing orientation angles. The process of translating body frame data to the navigation frame can be broken down into three successive translations. These translations follow as the yaw rotation about the z-axis, followed by the pitch rotation about the y-axis, and finally the roll rotation about the x-axis. Reverse this sequence to resolve a reverse rotation. Difficulties in this process arise due to the singularities that occur whenever the pitch approaches ±90° thus making the roll indistinguishable from the yaw. For applications that may approach these limits, the quaternion or rotation matrix output may be more appropriate. When the ADIS16480 is in its reference position, all three Euler angles are equal to zero. The update rate for these variables is the same as the gyroscopes and accelerometers. ROLL, PITCH, YAW ANGLES The EKF_CNFG (Table 94) register contains two bits, which define the output format of the angle estimates. The first one is EKF_CNFG[4], which selects the output format. When EKF_CNFG[4] = 0; the output data is in the format of a quaternion vector (See Table 42 through Table 45) and Euler angles (See Table 47 through Table 49). When EKF_CNFG[4] = 1, the output data is in the form of a rotation matrix (see Table 42 through Table 50). Rev. 0 | Page 19 of 40 ADIS16480 Data Sheet Rotation Matrix Data Table 48. PITCH_C31_OUT (Page 0, Base Address = 0x6C) The rotation matrix defines the attitude of the body frame relative to that of the navigation frame. The Cxx_OUT registers (see Table 42 through Table 50) define each element in this 3 × 3 matrix. Each element is the product of the unit vectors that describe the axes of the two frames, which in turn, are equal to the cosines of the angles between the axes. When the ADIS16480 is in its reference position, the rotation matrix are equal to a 3 × 3 identify matrix. Bits [15:0] Table 42. Q0_C11_OUT (Page 0, Base Address = 0x60) Bits [15:0] Description Quarterion scalar, q0 or rotation matrix, C11 Twos complement q0 scale factor = 0.0055°/LSB (180/215) C11 scale factor = 0.000030518/LSB (1/215) Description Qaurterion vector, q1; or rotation matrix, C12 Twos complement q1 scale factor = 0.000030518/LSB (1/215) C12 scale factor = 0.000030518/LSB (1/215) Description Qaurterion vector, q2; or rotation matrix, C13 Twos complement q2 scale factor = 0.000030518/LSB (1/215) C13 scale factor = 0.000030518/LSB (1/215) Angle (°) +180 × (215 − 1)/215 +360/215 +180/215 0 −180/215 −360/215 −180 Description Qaurterion vector, q3; or rotation matrix, C21 Twos complement q3 scale factor = 0.000030518/LSB (1/215) C21 scale factor = 0.000030518/LSB (1/215) Description Rotation matrix, C22, twos complement C22 scale factor = 0.000030518/LSB (1/215) Description Euler angle, φ, roll or rotation matrix, C23 Twos complement, range: ±180° (±π radians) Roll angle scale factor = (180/215)°/LSB Rotation matrix variable, C23 Twos complement C23 scale factor = 0.000030518/LSB (1/215) 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 Table 52. Yaw, Roll, q0 Angle Data Format 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 Table 53. Pitch Angle Data Format Examples Table 47. ROLL_C23_OUT (Page 0, Base Address = 0x6A) Bits [15:0] Description Rotation matrix, C33, twos complement C22 scale factor = 0.000030518/LSB (1/215) Angle (°) (215 − 1)/215 2/215 1/215 0 −1/215 −2/215 −1 Table 46. C22_OUT (Page 0, Base Address = 0x68) Bits [15:0] Description Euler angle, Ψ, yaw or rotation matrix, C32 Twos complement, range: ±180 ° (±π radians) Yaw angle scale factor = (180/215)°/LSB Rotation matrix variable, C32 Twos complement, 0.000030518/LSB (1/215) Table 51. Rotation Matrix/q1/q2/q3 Data Format Examples Table 45. Q3_C21_OUT (Page 0, Base Address = 0x66) Bits [15:0] Bits [15:0] Bits [15:0] Table 44. Q2_C13_OUT (Page 0, Base Address = 0x64) Bits [15:0] Table 49. YAW_C32_OUT (Page 0, Base Address = 0x6E) Table 50. C33_OUT (Page 0, Base Address = 0x70) Table 43. Q1_C12_OUT (Page 0, Base Address = 0x62) Bits [15:0] Description Euler angle, θ, pitch or rotation matrix, C31 Twos complement, range: ±90 ° (±π/2 radians) Pitch angle scale factor = (180/215)°/LSB Rotation matrix variable, C31 Twos complement, 0.000030518/LSB (1/215) Angle (°) +90 × (215−1)/215 +360/215 +180/215 0 −180/215 −360/215 −90 Rev. 0 | Page 20 of 40 Decimal +16,383 +2 +1 0 −1 −2 −16,384 Hex 0x3FFF 0x0002 0x0001 0x0000 0xFFFF 0xFFFE 0xC000 Binary 0011 1111 1110 1111 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 1100 0000 0000 0000 Data Sheet ADIS16480 BAROMETER INTERNAL TEMPERATURE The BAROM_OUT register (see Table 54) and BAROM_LOW register (see Table 56) 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 54 provides the numerical format in BAROM_OUT, and Table 55 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 ADIS16480 (see Table 57). Table 58 provides TEMP_OUT digital coding examples. Note that this temperature reflects a higher temperature than ambient, due to self heating. Table 54. BAROM_OUT (Page 0, Base Address = 0x30) Temperature (°C) +85 +25 + 0.0113 +25 + 0.00565 +25 +25 − 0.00565 +25 − 0.0113 −40 Bits [15:0] Description Barometric pressure; twos complement, ±1.31 bar range, 0 bar = 0x0000, 40 µbar/LSB Table 55. 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 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 Table 57. TEMP_OUT (Page 0, Base Address = 0x0E) Bits [15:0] Table 58. TEMP_OUT Data Format Examples 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. Table 56. BAROM_LOW (Page 0, Base Address = 0x2E) Bits [15:0] Description Temperature data; twos complement, 0.00565°C per LSB, 25°C = 0x0000 Description Barometric pressure; additional resolution bits Rev. 0 | Page 21 of 40 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 ADIS16480 Data Sheet STATUS/ALARM INDICATORS The SYS_E_FLAG register in Table 59 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 BAROM_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 59. SYS_E_FLAG (Page 0, Base Address = 0x08) Bits 15 14 13 12 11 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 EKF divergence (1 = divergence has occurred) Gyroscope saturation 1 = saturation conditions exists and the gyroscope weighting factors in the EKF have been automatically reduced 0 = gyroscope measurements within range Magnetometer disturbance 1 = magnetometer measurements exceed MAG_DISTB_THR levels (see Table 96) and the magnetometer influence in the EKF has been automatically eliminated 0 = magnetometer measurements are within the specified normal range Linear acceleration 1 = accelerometer measurements exceed ACC_DISTR_THR levels (see Table 95) and the accelerometer weighting factors in the EKF have been automatically reduced 0 = accelerometer measurements are within the specified normal range 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 DIAG_STS register in Table 60 provides the flags for the internal self-test function, which is from GLOB_CMD[1] (see Table 146). Note that the barometer’s flag, DIAG_STS[11], only updates after start-up and reset operations and that reading DIAG_STS also resets it to 0x0000. Table 60. 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 startup) 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) The ALM_STS register in Table 61 provides the alarm bits for the programmable alarm levels of each sensor. Note that reading ALM_STS also resets it to 0x0000. Table 61. 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. Rev. 0 | Page 22 of 40 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 ADIS16480 FIRMWARE REVISION The FIRM_REV register (see Table 62) 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 62. 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 64. 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 63) 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 63. FIRM_DM (Page 3, Base Address = 0x7A) The FIRM_Y register (see Table 64) 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 65) contains the binary equivalent of the part number (16,480 = 0x4060), and the SERIAL_NUM register (see Table 66) contains a lot specific serial number. Table 65. PROD_ID (Page 0, Base Address = 0x7E) Bits [15:0] Description (Default = 0x4060) Product identification = 0x4060 Table 66. SERIAL_NUM (Page 4, Base Address = 0x20) Bits [15:0] Rev. 0 | Page 23 of 40 Description Lot specific serial number ADIS16480 Data Sheet DIGITAL SIGNAL PROCESSING GYROSCOPES/ACCELEROMETERS MAGNETOMETER/BAROMETER Figure 20 provides a block 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 149), the input clock drives a 4-sample burst at a sample rate of 9.84 kSPS, which feeds into the 4× averaging/decimation filter. This results in a data rate that is equal to the input clock frequency. Note that the sensitivity to coning and sculling depends on the sample rate. At 2.46 kHz, the sensitivity is very low, but can become influential at lower sample rates. For best performance when using an external clock, use the maximum input frequency of 2.4 kHz. 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 (BAROM_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 59) offer 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 68 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 67) provides user control for the final filter stage (see Figure 20), which averages and decimates the accelerometers, gyroscopes, delta angle, and delta velocity data. Note that the orientation outputs do not go through an averaging stage, prior to decimation. The output sample rate is equal to 2460/(DEC_RATE + 1). When using the external clock option (FNCTIO_CTRL[7:4], see Table 149), 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 68. SEQ_CNT (Page 0, Base Address = 0x06) Bits [15:11] [6:0] Description Don’t care Binary counter: range = 1 to 48/(DEC_RATE + 1) Table 67. 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 EKF ORIENTATION ÷D 2.46kHz, fs MEMS SENSOR 1 4 330Hz GYROSCOPE 2-POLE: 404Hz, 757Hz ACCELEROMETER 1-POLE: 330Hz INTERNAL CLOCK 9.84kHz fs 4 ÷4 4× AVERAGE DECIMATION FILTER FIR FILTER BANK SELECTABLE FIR FILTER BANK FILTR_BNK_0 FILTR_BNK_1 1 D D ÷D AVERAGE/DECIMATION FILTER D = DEC_RATE[10:0] + 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. 0 | Page 24 of 40 10278-020 Bits [15:11] [10:0] Data Sheet ADIS16480 FIR FILTER BANKS Filter Memory Organization The ADIS16480 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 0x002F to FILTR_BNK_0 (DIN = 0x962F, 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 71, Table 72, Table 73, and Table 74 for the register addresses in each filter bank. Table 69. 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 70. 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 71. Filter Bank A Memory Map, FIR_COEF_Axxx 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 72. Filter Bank B Memory Map, FIR_COEF_Bxxx 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 73. Filter Bank C Memory Map, FIR_COEF_Cxxx 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. 0 | Page 25 of 40 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 ADIS16480 Data Sheet Table 74. Filter Bank D Memory Map, FIR_COEF_Dxxx Table 75. 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. 0 | Page 26 of 40 –90 –100 0 200 400 600 800 1000 FREQUENCY (Hz) Figure 21. FIR Filter Frequency Response Curves 1200 10278-021 The FIR filter banks have factory programmed filter designs. They are all low-pass filters that have unity dc gain. Table 75 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 ADIS16480 EXTENDED KALMAN FILTER ALGORITHM Table 78. QCVR_RRW_UPR (Page 3, Base Address = 0x66) The extended Kalman filter (EKF) continuously estimates the state vector, which includes the four elements in a quaternion orientation array and the bias levels for all three gyroscopes. Figure 22 illustrates the iterative process used in the EKF, which uses angular rate measurements (gyroscopes) to predict orientation updates and then makes corrections using accelerometer and magnetometer measurements. In addition to continuous state estimation, the EKF also estimates the error covariance terms. Using the covariance terms, current orientation, and gyroscope sensor measurements, the algorithm computes a Kalman gain that provides a weighting value for each sensor’s contribution to the state vector. The ADIS16480 has factory settings for the covariance terms but provides access to them in the form of user-configuration registers, for fine tuning, based on application-specific conditions/requirements. Bits [15:0] Description (Default = 0x2E5B) Gyroscope rate random walk (RRW) covariance term, upper word Table 79. QCVR_RRW_LWR (Page 3, Base Address = 0x64) Bits [15:0] Description (Default = 0xE6FF) Gyroscope rate random walk (RRW) covariance term, lower word Table 80. RCVR_ACC_UPR (Page 3, Base Address = 0x6E) Bits [15:0] Description (Default = 0x3189) Accelerometer measurement variance term, upper word Table 81. RCVR_ACC_LWR (Page 3, Base Address = 0x6C) Bits [15:0] COVARIANCE TERMS Description (Default = 0x705F) Accelerometer measurement variance term, lower word Table 82. RCVR_MAG_UPR (Page 3, Base Address = 0x72) Table 76 through Table 79 provides register information for the gyroscope noise/RRW process covariance (Q) terms. Table 80 through Table 83 provides register information for the accelerometer/magnetometer measurement covariance (R) terms. These covariance terms use the IEEE 32-bit floatingpoint format. Each term has two registers, one for the upper word and one for the lower word. Bits [15:0] Description (Default = 0x32AB) Magnetometer measurement variance term, upper word Table 83. RCVR_MAG_LWR (Page 3, Base Address = 0x70) Bits [15:0] Description (Default = 0xCC77) Magnetometer measurement variance term, lower word Table 76. QCVR_NOIS_UPR (Page 3, Base Address = 0x62) Bits [15:0] Description (Default = 0x3727) Gyroscope noise covariance term, upper word Table 77. QCVR_NOIS_LWR (Page 3, Base Address = 0x60) Description (Default = 0xC5AC) Gyroscope noise covariance term, lower word EKF PROCESS QUATERNION, BIAS ERROR COVARIANCE GYROSCOPE PREDICT CORRECT Q COVARIANCE ACCELEROMETERS MAGNETOMETERS R COVARIANCE QUATERNION, BIAS ERROR COVARIANCE QUATERNION Figure 22. EKF Process Rev. 0 | Page 27 of 40 10278-022 Bits [15:0] ADIS16480 Data Sheet REFERENCE FRAME Table 84. REFMTX_R11 (Page 2, Base Address = 0x62) During the power-on initialization and reset recovery operations, the ADIS16480 sets the accelerometer and magnetometer references for use in the orientation computation. During this process, the gravity vector becomes the accelerometer reference and the magnetometer reference computation includes the following steps: measure horizontal and vertical components of the magnetic field and align the horizontal component to magnetic north. This also measures the inclination, which removes this requirement from an external system. The resulting reference frame is a local ENU inertial frame formed by the y-axis pointing at magnetic north, the z-axis pointing up, and the x-axis completing the right-hand frame by pointing east. Bits 15 [14:0] REFERENCE TRANSFORMATION MATRIX Table 85. REFMTX_R12 (Page 2, Base Address = 0x64) Bits 15 [14:0] Description (Default = 0x0000) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 86. REFMTX_R13 (Page 2, Base Address = 0x66) Bits 15 [14:0] Description (Default = 0x0000) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 87. REFMTX_R21 (Page 2, Base Address = 0x68) The reference transformation matrix, RIJ, provides a userprogrammable alignment function for orientation alignment to a local navigation frame. Another common name for this function in navigation system literature is the coordinate transformation matrix. R11 RIJ = R 21 R 31 Description (Default = 0x7FFF) Sign bit Magnitude, binary, 1 LSB = 1/215 Bits 15 [14:0] Description (Default = 0x0000) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 88. REFMTX_R22 (Page 2, Base Address = 0x6A) Bits 15 [14:0] R12 R13 R 22 R 23 R32 R33 When this matrix is equal to an identify matrix (factory default), the local navigation frame matches true level, with respect to gravity, and magnetic north. The tare command automatically calculates and loads the matrix values that establish the current ADIS16480 orientation as the reference orientation. When the ADIS16480 is in the desired reference orientation, initiate the tare command by setting GLOB_CMD[8] = 1 (DIN = 0x8003, then DIN = 0x8301, see Table 146). Each element in this matrix is associated with a register that provides read and write access. See Table 84 through Table 92, for these registers. Use these registers to define the local navigation frame, based on system generated requirements. Each element is the cross product of the unit vectors that describe the axes of the two frames, which are equal to the cosines of the angles between the axes. Units of rotation vary by ±1. When writing to these registers, write to R33 last because a write to the upper byte of this register causes all nine registers to update inside of the ADIS16480. Description (Default = 0x7FFF) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 89. REFMTX_R23 (Page 2, Base Address = 0x6C) Bits 15 [14:0] Description (Default = 0x0000) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 90. REFMTX_R31 (Page 2, Base Address = 0x6E) Bits 15 [14:0] Description (Default = 0x0000) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 91. REFMTX_R32 (Page 2, Base Address = 0x70) Bits 15 [14:0] Description (Default = 0x0000) Sign bit Magnitude, binary, 1 LSB = 1/215 Table 92. REFMTX_R33 (Page 2, Base Address = 0x72) Bits 15 [14:0] Rev. 0 | Page 28 of 40 Description (Default = 0x7FFF) Sign bit Magnitude, binary, 1 LSB = 1/215 Data Sheet ADIS16480 DECLINATION Gyroscope Fade Control Bit The DECLN_ANGL register provides a user-programmable input that can shift the reference frame from magnetic north to geodetic north (or any arbitrary azimuth heading). EKF_CNFG[9] (see Table 94) provides an on/off control bit for the gyroscope fade function, which is an internal adjustment of the gyroscope’s process covariance terms. This reduces the impact of gyroscope scale errors during transient events, where the gyroscope rates are quickly changing. The fade function effectively reduces the weighting of the gyroscope measurements, with respect to the accelerometers and magnetometers, during these transient events. The adjustment terminates when the rates return to zero. Table 93. DECLN_ANGL (Page 3, Base Address = 0x54) Bits [15:0] Description (Default = 0x0000) Declination angle, twos complement Scale factor = π/215 radians/LSB ADAPTIVE OPERATION The EKF_CNFG register, in Table 94, offers a number of control bits for customizing EKF operation. Table 94. EKF_CNFG (Page 3, Base Address = 0x50) Bits [15:13] 12 [11:10] 9 8 [7:5] 4 3 2 1 0 Description (Default = 0x0200) Not used Automatic reset recovery from divergence 1 = enable, 0 = disable Not used Fade enable 1 = enable, 0 = disable Adaptive EKF enable 1 = enable, 0 = disable Not used Orientation format control 1 = rotation matrix, 0 = quaternion and Euler Body frame enable 1 = enable, 0 = disable Not for external use, always set to 0 Magnetometer disable 1 = enable, 0 = disable Gravity removal (from accelerometers) 1 = enable, 0 = disable Body Frame Enable Bit EKF_CNFG[3] (see Table 94) provides an on/off control bit for the body frame enable function. The reference transformation matrix establishes the difference between the local navigation frame and the body frame. Set EKF_CNFG[3] = 1 (DIN = 0x8003, DIN = 0xD110) to establish the body frame as the reference frame. Orientation Format Control Bit EKF_CNFG[4] (see Table 94) provides a selection bit for angle data format. Set EKF_CNFG[4] = 1 (DIN = 0x8003, DIN = 0xD010) to use the rotation matrix format. Magnetometer Disable Control Bit EKF_CNFG[1] (see Table 94) provides an on/off control bit for the magnetometer disable function, which disables the magnetometer influence over angle calculations in the EKF. Gravity Removal Control Bit EKF_CNFG[0] (see Table 94) provides an on/off control bit for the gravity removal function, which removes the gravity component from the accelerometer outputs. Linear Acceleration/Magnetic Disturbance Detection Adaptive EKF Enable Bit EKF_CNFG[8] (see Table 94) provides an on/off control bit for the adaptive part of the EKF function. The adaptive part of the EKF computes the measurement covariance terms (R), which enables real-time adjustments for vibration and magnetic field disturbances. See Table 80 through Table 83 for read access to the measurement covariance terms. Automatic EKF Divergence Reset Control Bit The EKF algorithm monitors the normalized innovation squared parameter to detect divergence. The normalized innovation is the innovation (predicted measurements minus actual measurements) divided by the statistically computed expected error, which is based on the error covariance and the measurement covariance. With a moderate level of divergence, the divergence indicator bit (SYS_E_FLAG[13] (see Table 59) is set to a high state. At higher levels of divergence, EKF_CNFG[12] (see Table 94) provides an on/off control bit for automatically resetting the Kalman filter, to help speed recovery from divergence. The ADIS16480 checks the magnitudes of the accelerometers and magnetometers and compares their values against those of the corresponding reference vectors. If the difference exceeds the percentage programmed in the disturbance thresholds, the algorithm automatically ignores the affected sensor group for the duration of the external disturbance. Table 95. ACC_DISTB_THR (Page 3, Base Address = 0x56) Bits [15:8] [7:0] Description (Default = 0x0020) Not used Threshold, binary, scale factor = 0.39%/LSB (50%/128) Table 96. MAG_DISTB_THR (Page 3, Base Address = 0x58) Bits [15:8] [7:0] Rev. 0 | Page 29 of 40 Description (Default = 0x0030) Not used Threshold, binary, scale factor = 0.39%/LSB (50%/128) ADIS16480 Data Sheet CALIBRATION The ADIS16480 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. Manual Sensitivity Correction The x_GYRO_SCALE registers enable sensitivity adjustment (see Table 103, Table 104, and Table 105). Table 103. X_GYRO_SCALE (Page 2, Base Address = 0x04) Bits [15:0] GYROSCOPES The use calibration for the gyroscopes includes registers for adjusting bias and sensitivity, as shown in Figure 23. Table 104. Y_GYRO_SCALE (Page 2, Base Address = 0x06) 1 + X_GYRO_SCALE FACTORY CALIBRATION AND FILTERING XG_BIAS_HIGH X_GYRO_OUT Bits [15:0] X_GYRO_LOW 10278-023 X-AXIS GYRO XG_BIAS_LOW Figure 23. User Calibration Signal Path, Gyroscopes The xG_BIAS_HIGH registers (see Table 97, Table 98, and Table 99) and xG_BIAS_LOW registers (see Table 100, Table 101, and Table 102) provide a bias adjustment function for the output of each gyroscope sensor. Table 97. XG_BIAS_HIGH (Page 2, Base Address = 0x12) Description (Default = 0x0000) X-axis gyroscope offset correction, upper word twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Description (Default = 0x0000) Y-axis gyroscope offset correction, upper word; twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 99. ZG_BIAS_HIGH (Page 2, Base Address = 0x1A) Bits [15:0] Linear Acceleration on Effect on Gyroscope Bias MEMS gyroscopes typically have a bias response to linear acceleration that is normal to their axis of rotation. The ADIS16480 offers an optional compensation function for this effect. Turn to Page 3 (DIN = 0x8003) and set CONFIG[7] = 1 (DIN = 0x9080, DIN = 0x9100). The factory default setting for this function is enabled. Description (Default = 0x0000) Z-axis gyroscope offset correction, upper word; twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Bits [15:8] 7 6 [5:2] 1 0 Table 100. 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 101. 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 102. ZG_BIAS_LOW (Page 2, Base Address = 0x18) Bits [15:0] Description (Default = 0x0000) Z-axis gyroscope scale correction; twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.003052% Table 106. CONFIG (Page 3, Base Address = 0x0A) Table 98. YG_BIAS_HIGH (Page 2, Base Address = 0x16) Bits [15:0] Description (Default = 0x0000) Y-axis gyroscope scale correction; twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.003052% Table 105. Z_GYRO_SCALE (Page 2, Base Address = 0x08) Bits [15:0] Manual Bias Correction Bits [15:0] Description (Default = 0x0000) X-axis gyroscope scale correction; twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.003052% Description (Default = 0x0000) Z-axis gyroscope offset correction, lower word twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec ÷ 216 = ~0.000000305°/sec Rev. 0 | Page 30 of 40 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) Data Sheet ADIS16480 ACCELEROMETERS Manual Sensitivity Correction The user calibration for the accelerometers includes registers for adjusting bias and sensitivity, as shown in Figure 24. The x_ACCL_SCALE registers enable sensitivity adjustment (see Table 113, Table 114, Table 115). 1 + X_ACCL_SCALE XA_BIAS_HIGH X_ACCL_OUT Table 113. X_ACCL_SCALE (Page 2, Base Address = 0x0A) Bits [15:0] X_ACCL_LOW 10278-024 X-AXIS ACCL FACTORY CALIBRATION AND FILTERING XA_BIAS_LOW Figure 24. User Calibration Signal Path, Accelerometers Table 114. Y_ACCL_SCALE (Page 2, Base Address = 0x0C) Manual Bias Correction Bits [15:0] The xA_BIAS_HIGH registers (see Table 107, Table 108, and Table 109) and xA_BIAS_LOW registers (see Table 110, Table 111, and Table 112) 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. Bits [15:0] Description (Default = 0x0000) X-axis accelerometer offset correction, high word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg The user calibration registers enable both hard iron and soft iron correction, as shown in the following relationship: M XC 1 S11 M YC S 21 M ZC S31 Description (Default = 0x0000) Y-axis accelerometer offset correction, high word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg Table 109. 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 Description (Default = 0x0000) X-axis accelerometer offset correction, low word, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg ÷ 216 = ~0.0000122 mg Table 111. YA_BIAS_LOW (Page 2, Base Address = 0x20) Bits [15:0] 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 112. ZA_BIAS_LOW (Page 2, Base Address = 0x24) Bits [15:0] S12 S13 M X H X 1 S22 S23 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. Table 110. XA_BIAS_LOW (Page 2, Base Address = 0x1C) Bits [15:0] Description (Default = 0x0000) Z-axis accelerometer scale correction, Twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.003052% MAGNETOMETERS Table 108. YA_BIAS_HIGH (Page 2, Base Address = 0x22) Bits [15:0] Description (Default = 0x0000) Y-axis accelerometer scale correction, Twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.003052% Table 115. Z_ACCL_SCALE (Page 2, Base Address = 0x0E) Table 107. XA_BIAS_HIGH (Page 2, Base Address = 0x1E) Bits [15:0] Description (Default = 0x0000) X-axis accelerometer scale correction, Twos complement, 0x0000 = unity gain, 1 LSB = 1 ÷ 215 = ~0.003052% Description (Default = 0x0000) Z-axis accelerometer offset correction, low word;, Twos complement, 0 g = 0x0000, 1 LSB = 0.8 mg ÷ 216 = ~0.0000122 mg Rev. 0 | Page 31 of 40 ADIS16480 Data Sheet Hard Iron Correction Table 121. SOFT_IRON_S12 (Page 2, Base Address = 0x30) Table 116, Table 117, and Table 118 describe the register format for the hard iron correction factors: HX, HY, and HZ. These registers use a twos complement format. Table 119 provides some numerical examples for converting the digital codes for these registers into their decimal equivalents. Bits [15:0] Description (Default = 0x0000) Magnetometer soft iron correction factor, S12 Twos complement format, see Table 129 for examples Table 122. SOFT_IRON_S13 (Page 2, Base Address = 0x32) Table 116. HARD_IRON_X (Page 2, Base Address = 0x28) Bits [15:0] Bits [15:0] Table 123. 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 119) Bits [15:0] Table 117. 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 119) Table 118. 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 119) 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 120 (S11), Table 121 (S12), Table 122 (S13), Table 123 (S21), Table 124 (S22), Table 125 (S23), Table 126 (S31), Table 127 (S32), and Table 128 (S33). Table 129 offers some numerical examples for converting between the digital codes and their effect on the magnetometer output, in terms of percent-change. Table 120. 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 129 for examples Table 124. 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 129 for examples Table 125. 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 129 for examples Table 126. SOFT_IRON_S31 (Page 2, Base Address = 0x3A) Table 119. HARD_IRON_x 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 129 for examples Description (Default = 0x0000) Magnetometer soft iron correction factor, S11 Twos complement format, see Table 129 for examples Bits [15:0] Description (Default = 0x0000) Magnetometer soft iron correction factor, S31 Twos complement format, see Table 129 for examples Table 127. 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 129 for examples Table 128. 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 129 for examples Table 129. Soft Iron Correction, Numerical Examples Delta (%) +100 – 1/216 +200/215 +100/215 0 −100/215 −200/215 −100 Rev. 0 | Page 32 of 40 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 Data Sheet ADIS16480 BAROMETERS RESTORING FACTORY CALIBRATION The BR_BIAS_HIGH register (see Table 130) and BR_BIAS_LOW register (Table 131) 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 = 0x8240, DIN = 0x8300) 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 146 for more information on GLOB_CMD. Table 130. 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 131. 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 25. To activate this feature, turn to Page 3 (DIN = 0x8003), then set CONFIG[6] = 1 (DIN = 0x8A40, DIN = 0x8B00). See Table 106 for more information on the CONFIG register. PIN 23 PIN 1 POINT OF PERCUSSION ALIGNMENT REFERENCE POINT. SEE CONFIG[6]. Figure 25. Point of Percussion Reference Point Rev. 0 | Page 33 of 40 10278-025 Bits [15:0] ADIS16480 Data Sheet 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 61) contains the alarm output flags and the FNCTIO_CTRL register (see Table 149) 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 132 through Table 141) of that sensor. The polarity controls for each alarm are in the ALM_CNFG_x registers (see Table 142, Table 143, Table 144). 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 137. 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 138. 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 139. 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 140. 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 132. XG_ALM_MAGN (Page 3, Base Address = 0x28) Table 141. BR_ALM_MAGN (Page 3, Base Address = 0x3A) Bits [15:0] Bits [15:0] Description (Default = 0x0000) X-axis gyroscope alarm threshold settings, Twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Description (Default = 0x0000) Z-axis barometer alarm threshold settings, Twos complement, 0 bar = 0x0000, 1 LSB = 40 µbar Table 133. YG_ALM_MAGN (Page 3, Base Address = 0x2A) Table 142. ALM_CNFG_0 (Page 3, Base Address = 0x20) Bits [15:0] Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Description (Default = 0x0000) Y-axis gyroscope alarm threshold settings, Twos complement, 0°/sec = 0x0000, 1 LSB = 0.02°/sec Table 134. 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 135. 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 136. 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 Rev. 0 | Page 34 of 40 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) Data Sheet ADIS16480 Table 143. ALM_CNFG_1 (Page 3, Base Address = 0x22) Bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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) Alarm Example Table 145 offers an alarm configuration example, which sets the z-axis gyroscope alarm to trip when Z_GYRO_OUT > 131.1°/sec (0x199B). Table 145. Alarm Configuration Example DIN 0xAC9B 0xAD19 0xA000 0xA10A Table 144. 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. 0 | Page 35 of 40 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] = 0x0A ADIS16480 Data Sheet SYSTEM CONTROLS MEMORY MANAGEMENT The ADIS16480 provides a number of system level controls for managing its operation, which include reset, self-test, calibration, memory management, and I/O configuration. The GLOB_CMD register (see Table 146) 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. The data retention of the flash memory depends on the temperature and the number of write cycles. Figure 26 characterizes the dependence on temperature, and the FLSHCNT_LOW and FLSHCNT_HIGH registers (see Table 147 and Table 148) provide a running count of flash write cycles. The flash updates every time GLOB_CMD[6] or GLOB_CMD[3] is set to 1. Table 146. GLOB_CMD (Page 3, Base Address = 0x02) Table 147. FLSHCNT_LOW (Page 2, Base Address = 0x7C) 8 7 6 [5:4] 3 2 1 0 Description EKF reset Not used Reset the reference rotation matrix Tare command Software reset Factory calibration restore Not used Flash memory update Flash memory test Self-test Not used Execution Time 1.7 seconds Not applicable 1 sample period 1 sample period 82 ms 1 sample period Not applicable 1100 ms 53 ms 12 ms N/A Software Reset Bits [15:0] Table 148. FLSHCNT_HIGH (Page 2, Base Address = 0x7E) Bits [15:0] Description Binary counter; number of flash updates, upper word 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). 450 300 150 0 30 40 55 70 85 100 125 JUNCTION TEMPERATURE (°C) 135 150 Figure 26. Flash Memory Retention Automatic Self-Test 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 10278-026 Bits 15 [14:10] 9 RETENTION (Years) GLOBAL COMMANDS 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. 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. 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. Rev. 0 | Page 36 of 40 Data Sheet ADIS16480 GENERAL-PURPOSE I/O General-Purpose I/O Control 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. Each I/O line only supports one function at a time. In cases where a single line has two different assignments, the enable bit for the lower priority function automatically resets to zero and is 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. 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 levels by reading GPIO_CTRL[7:4]. When the DIOx lines are used as outputs, set their levels 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). Table 149. FNCTIO_CTRL (Page 3, Base Address = 0x06) Bits [15:12] 11 10 [9:8] 7 6 [5:4] 3 2 [1:0] Table 150. GPIO_CTRL (Page 3, Base Address = 0x08) 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 Bits [15:8] 7 6 5 4 3 2 1 0 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) Data-Ready Indicator 1 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. POWER MANAGEMENT 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. GPIO_CTRL[7:4] reflects levels on DIOx lines. The SLP_CNT register (see Table 151) provides controls for both power-down mode and sleep mode. 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: • • • Rev. 0 | Page 37 of 40 Assert CS from high to low. Pulse RST low, then high again. Cycle the power. ADIS16480 Data Sheet 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. Table 151. 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 152, Table 153, Table 154, and Table 155) provide four 16-bit registers for storing data. Table 152. USER_SCR_1 (Page 2, Base Address = 0x74) Bits [15:0] Description User-defined Table 153. USER_SCR_2 (Page 2, Base Address = 0x76) Bits [15:0] Description User-defined Bits [15:14] [13:8] [7:6] [5:0] Description User-defined Table 155. USER_SCR_4 (Page 2, Base Address = 0x7A) Bits [15:0] 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 = 0x8208, DIN = 0x8300) to back up these settings 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 ADIS16480 is turned off. Table 156. TIME_MS_OUT (Page 0, Base Address = 0x78) Table 154. USER_SCR_3 (Page 2, Base Address = 0x78) Bits [15:0] write the current time to the real-time registers in the following 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 there is 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 Description Not used Minutes, binary data, range = 0 to 59 Not used Seconds, binary data, range = 0 to 59 Table 157. TIME_DH_OUT (Page 0, Base Address = 0x7A) 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 106). The real-time clock data is available in the TIME_MS_OUT register (see Table 156), TIME_DH_OUT register (see Table 157), and TIME_YM_OUT register (see Table 158). 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, 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 158. TIME_YM_OUT (Page 0, Base Address = 0x7C) Bits [15] [14:8] [7:4] [3:0] Rev. 0 | Page 38 of 40 Description Not used Year, binary data, range = 0 to 99, relative to 2000 A.D. Not used Month, binary data, range = 1 to 12 Data Sheet ADIS16480 APPLICATIONS INFORMATION PROTOTYPE INTERFACE BOARD INSTALLATION TIPS The ADIS16480/PCBZ includes one ADIS16480AMLZ, one interface printed circuit board (PCB), and four M2 × 0.4 × 18 mm machine screws. The interface PCB provides four holes for ADIS16480AMLZ attachment and four larger holes for attaching the interface PCB to another surface. The ADIS16480AMLZ 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 29 and Figure 30 provide the mechanical design information used for the ADIS16480/PCBZ. Use these figures when implementing a connector-down approach, where the mating connector and the ADIS16480AMLZ are on the same surface. When designing a connector-up system, use the mounting holes shown in Figure 29 as a guide in designing the bulkhead mounting system and use Figure 30 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 10278-029 1.65mm 1.642 BSC 21.300 BSC 42.600 Figure 28 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. ADIS16480 MOUNTING HOLES 0.4334 [11.0] 0.019685 [0.5000] (TYP) 6.35mm 0.0240 [0.610] 0.054 [1.37] 10278-027 6.35mm 58.42mm 64.77mm Figure 27. Physical Diagram for the ADIS16480/PCBZ 0.022± DIA (TYP) NONPLATED 0.022 DIA THRU HOLE (TYP) THRU HOLE 2× NONPLATED THRU HOLE 1 2 SCLK CS 3 4 DOUT DNC 5 6 DIN GND 7 8 GND GND 9 10 VDD VDD 11 12 VDD DIO1 13 14 DIO2 DIO3 15 16 DIO4 0.0394 [1.00] Figure 30. Suggested Layout and Mechanical Design for the Mating Connector J1 RST 0.1800 [4.57] Figure 28. ADIS16480/PCBZ J1 Pin Assignments Rev. 0 | Page 39 of 40 10278-030 0.0394 [1.00] 11.30mm 10278-028 66.04mm 59.69mm Figure 29. Suggested Mounting Hole Locations, Connector Down ADIS16480 Data Sheet OUTLINE DIMENSIONS 44.254 44.000 43.746 Ø 2.40 BSC (4 PLCS) 39.854 39.600 39.346 2.20 BSC 19.20 19.80 19.40 DETAIL A 15.00 BSC 0.069 0.054 0.039 8.25 BSC 42.80 42.60 42.30 1.00 BSC 47.254 47.000 46.746 DETAIL A BOTTOM VIEW 14.200 14.000 13.800 DETAIL B FRONT VIEW 6.50 BSC 3.454 3.200 2.946 5.50 BSC 5.50 BSC 1.00 BSC PITCH 0.30 SQ BSC DETAIL B 03-28-2012-C 2.84 BSC Figure 31. 24-Lead Module with Connector Interface [MODULE] (ML-24-6) Dimensions shown in millimeters ORDERING GUIDE Model 1, 2 ADIS16480AMLZ ADIS16480/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 ADIS16480/PCBZ includes one ADIS16480AMLZ and one interface board PCB. See Figure 27 for more information on the interface PCB. ©2012 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. D10278-0-5/12(0) Rev. 0 | Page 40 of 40 Package Option ML-24-6