ICM-20948 World’s Lowest Power 9-Axis MEMS MotionTracking™ Device GENERAL DESCRIPTION APPLICATIONS The ICM-20948 is the world’s lowest power 9-axis MotionTracking device that is ideally suited for Smartphones, Tablets, Wearable Sensors, and IoT applications. ICM-20948 supports an auxiliary I2C interface to external sensors, on-chip 16-bit ADCs, programmable digital filters, an embedded temperature sensor, and programmable interrupts. The device features an operating voltage range down to 1.71V.
ICM-20948 TABLE OF CONTENTS GENERAL DESCRIPTION ......................................................................................................................................................... 1 ORDERING INFORMATION ..................................................................................................................................................... 1 BLOCK DIAGRAM ........................................................................................................................
ICM-20948 4.16 4.17 4.18 4.19 4.20 4.21 4.22 FIFO ................................................................................................................................................................... 25 FSYNC ................................................................................................................................................................ 25 INTERRUPTS..................................................................................................................
ICM-20948 8.29 8.30 8.31 8.32 8.33 8.34 8.35 8.36 8.37 8.38 8.39 8.40 8.41 8.42 8.43 8.44 8.45 8.46 8.47 8.48 8.49 8.50 8.51 8.52 8.53 8.54 8.55 8.56 8.57 8.58 8.59 8.60 8.61 8.62 8.63 8.64 8.65 9 GYRO_ZOUT_L .................................................................................................................................................. 45 TEMP_OUT_H .............................................................................................................................................
ICM-20948 9.13 9.14 10 TIMEBASE_CORRECTION_PLL ........................................................................................................................... 57 REG_BANK_SEL ................................................................................................................................................. 58 USR BANK 2 REGISTER MAP ........................................................................................................................... 59 10.1 10.2 10.3 10.4 10.
ICM-20948 12 12.1 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 REGISTER MAP FOR MAGNETOMETER ........................................................................................................... 77 REGISTER MAP DESCRIPTION ................................................................................................................................... 77 DETAILED DESCRIPTIONS FOR MAGNETOMETER REGISTERS ..............................................................
ICM-20948 LIST OF FIGURES Figure 1. I2C Bus Timing Diagram...................................................................................................................................... 16 Figure 2. SPI Bus Timing Diagram ..................................................................................................................................... 17 Figure 3. Pin out Diagram for ICM-20948 3 mm x 3 mm x 1 mm QFN .............................................................................
ICM-20948 LIST OF TABLES Table 1. Gyroscope Specifications .................................................................................................................................... 11 Table 2. Accelerometer Specifications ............................................................................................................................. 12 Table 3. Magnetometer Specifications ................................................................................................................
ICM-20948 1 GENERAL DESCRIPTION 1.1 PURPOSE AND SCOPE This document is a preliminary data sheet, providing a description, specifications, and design related information on the ICM-20948 MotionTracking device. For references to register map and descriptions of individual registers, please refer to the ICM-20948 Register Map and Register Descriptions document. 1.2 PRODUCT OVERVIEW The ICM-20948 is a multi-chip module (MCM) consisting of two dies integrated into a single QFN package.
ICM-20948 2 FEATURES 2.1 GYROSCOPE FEATURES The triple-axis MEMS gyroscope in the ICM-20948 includes the following features: • • • 2.2 Digital-output X-, Y-, and Z-axis angular rate sensors (gyroscopes) with a user-programmable full-scale range of ±250 dps, ±500 dps, ±1000 dps, and ±2000 dps, and integrated 16-bit ADCs User-selectable ODR; User-selectable low pass filters Self-test ACCELEROMETER FEATURES The triple-axis MEMS accelerometer in ICM-20948 includes the following features: • • • • 2.
ICM-20948 3 ELECTRICAL CHARACTERISTICS 3.1 GYROSCOPE SPECIFICATIONS Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted.
ICM-20948 3.2 ACCELEROMETER SPECIFICATIONS Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted. NOTES: All specifications apply to Low-Power Mode and Low-Noise Mode, unless noted otherwise PARAMETER Full-Scale Range ADC Word Length Sensitivity Scale Factor Initial Tolerance Sensitivity Change vs. Temperature Nonlinearity Cross-Axis Sensitivity Initial Tolerance Initial Tolerance Zero-G Level Change vs.
ICM-20948 3.3 MAGNETOMETER SPECIFICATIONS Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted. PARAMETER CONDITIONS MIN TYP MAX UNITS NOTES MAGNETOMETER SENSITIVITY Full-Scale Range Output Resolution Sensitivity Scale Factor ±4900 16 0.15 µT bits µT / LSB 1 1 1 LSB 2 ZERO-FIELD OUTPUT Initial Calibration Tolerance -2000 +2000 OTHER Output Data Rate 100 Hz 1 Table 3. Magnetometer Specifications NOTES: 1. 2. 3.4 Guaranteed by design.
ICM-20948 A.C. Electrical Characteristics Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted. PARAMETER CONDITIONS MIN TYP MAX UNITS NOTES 100 ms 1 85 °C LSB/°C LSB 1 100 100 ms ms 1 1 0.
ICM-20948 PARAMETER Clock Frequency Initial Tolerance Frequency Variation over Temperature CONDITIONS MIN TYP INTERNAL CLOCK SOURCE Accelerometer Only Mode -5 Gyroscope or 6-Axis Mode WITHOUT Timebase -9 Correction Gyroscope or 6-Axis Mode -1 WITH Timebase Correction Accelerometer Only Mode -10 Gyroscope or 6-Axis Mode MAX UNITS NOTES +5 % +9 % 1 1 +1 +10 % % ±1 1 1 Table 5. A.C. Electrical Characteristics NOTES: 1.
ICM-20948 I2C TIMING CHARACTERIZATION 3.5 Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted. PARAMETERS CONDITIONS I2C TIMING fSCL, SCL Clock Frequency tHD.STA, (Repeated) START Condition Hold Time tLOW, SCL Low Period tHIGH, SCL High Period tSU.STA, Repeated START Condition Setup Time tHD.DAT, SDA Data Hold Time tSU.DAT, SDA Data Setup Time tr, SDA and SCL Rise Time tf, SDA and SCL Fall Time tSU.
ICM-20948 3.6 SPI TIMING CHARACTERIZATION Typical Operating Circuit of section 4.2, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted. PARAMETERS CONDITIONS MIN TYPICAL MAX UNITS 7 MHz NOTES SPI TIMING fSCLK, SCLK Clock Frequency tLOW, SCLK Low Period 64 ns tHIGH, SCLK High Period 64 ns tSU.CS, CS Setup Time 8 ns tHD.CS, CS Hold Time 500 ns tSU.SDI, SDI Setup Time 5 ns tHD.SDI, SDI Hold Time 7 ns tVD.SDO, SDO Valid Time Cload = 20 pF tHD.SDO, SDO Hold Time tDIS.
ICM-20948 3.7 ABSOLUTE MAXIMUM RATINGS Stress above those listed as “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only and functional operation of the device at these conditions is not implied. Exposure to the absolute maximum ratings conditions for extended periods may affect device reliability.
ICM-20948 4 APPLICATIONS INFORMATION 4.1 PIN OUT DIAGRAM AND SIGNAL DESCRIPTION PIN NUMBER 7 8 9 10 11 12 13 18 19 20 21 22 23 24 1 – 6, 14 - 17 PIN NAME AUX_CL VDDIO AD0 / SDO REGOUT FSYNC INT1 VDD GND RESV RESV AUX_DA nCS SCL / SCLK SDA / SDI NC PIN DESCRIPTION I2C Master serial clock, for connecting to external sensors Digital I/O supply voltage I2C Slave Address LSB (AD0); SPI serial data output (SDO) Regulator filter capacitor connection Frame synchronization digital input.
ICM-20948 TYPICAL OPERATING CIRCUIT GND NC 1 18 NC 2 17 NC RESV 19 RESV 20 AUX_DA 21 SCL / SCLK 23 22 SDA / SDI 24 RESV RESV 20 19 AUX_DA 22 21 SCL / SCLK SDA / SDI nCS 23 24 SCLK SDI nCS nCS VDDIO SCL SDA GND NC 1 18 NC 2 17 NC 16 NC NC 3 16 NC NC 3 NC 4 15 NC NC 4 15 NC NC 5 14 NC NC 5 14 NC NC 6 13 VDD NC 6 13 VDD 12 11 1.71 – 3.6VDC C2, 0.1 µF INT1 FSYNC 9 8 REGOUT 10 1.71 – 1.95VDC SDO / AD0 7 C2, 0.1 µF C1, 0.1 µF C3, 0.
ICM-20948 4.
ICM-20948 4.7 THREE-AXIS MEMS GYROSCOPE WITH 16-BIT ADCS AND SIGNAL CONDITIONING The ICM-20948 consists of three independent vibratory MEMS rate gyroscopes, which detect rotation about the X-, Y-, and Z-Axes. When the gyros are rotated about any of the sense axes, the Coriolis Effect causes a vibration that is detected by a capacitive pickoff. The resulting signal is amplified, demodulated, and filtered to produce a voltage that is proportional to the angular rate.
ICM-20948 Once the auxiliary sensors have been configured by the system processor, the interface bypass multiplexer should be disabled so that the ICM-20948 auxiliary I2C master can take control of the sensor I2C bus and gather data from the auxiliary sensors. Interrupt Status Register I2C Processor Bus: for reading all sensor data from MPU and for configuring external sensors (i.e.
ICM-20948 Processor SPI Bus: for reading all data from MPU and for configuring MPU and external sensors Interrupt Status Register INT1 nCS nCS ICM-20948 SDO 2 Slave I C or SPI Serial Interface SDI SCLK SCLK SDI System Processor SDO FIFO Sensor I2C Bus: for configuring and reading data from external sensors Config Register Optional Sensor Master I2C Serial Interface Sensor Register Interface Bypass Mux AUX_CL SCL AUX_DA SDA External Sensor Factory Calibration Digital Motion Processor
ICM-20948 The self-test response for each gyroscope axis is defined in the gyroscope specification table, while that for each accelerometer axis is defined in the accelerometer specification table. When the value of the self-test response is within the specified min/max limits, the part has passed self-test. When the self-test response exceeds the min/max values, the part is deemed to have failed self-test. It is recommended to use InvenSense MotionApps software for executing self-test. 4.
ICM-20948 4.19 DIGITAL-OUTPUT TEMPERATURE SENSOR An on-chip temperature sensor and ADC are used to measure the ICM-20948 die temperature. The readings from the ADC can be read from the FIFO or the Sensor Data registers. 4.20 BIAS AND LDOS The bias and LDO section generates the internal supply and the reference voltages and currents required by the ICM20948. Its two inputs are an unregulated VDD and a VDDIO logic reference supply voltage. The LDO output is bypassed by a capacitor at REGOUT.
ICM-20948 5 PROGRAMMABLE INTERRUPTS The ICM-20948 has a programmable interrupt system which can generate an interrupt signal on the INT pin. Status flags indicate the source of an interrupt. Interrupt sources may be enabled and disabled individually. Table 13 lists the interrupt sources. INTERRUPT SOURCE DMP Interrupt Wake on Motion Interrupt PLL RDY Interrupt I2C Master Interrupt Raw Data Ready Interrupt FIFO Overflow Interrupt FIFO Watermark Interrupt Table 13.
ICM-20948 6 DIGITAL INTERFACE 6.1 I2C AND SPI SERIAL INTERFACES The internal registers and memory of the ICM-20948 can be accessed using either I2C at 400 kHz or SPI at 7 MHz. SPI operates in four-wire mode. PIN NUMBER PIN NAME 9 AD0 / SDO I2C Slave Address LSB (AD0); SPI serial data output (SDO) PIN DESCRIPTION 22 23 24 nCS SCL / SCLK SDA / SDI Chip select (SPI mode only) I2C serial clock (SCL); SPI serial clock (SCLK) I2C serial data (SDA); SPI serial data input (SDI) Table 14.
ICM-20948 Data Format / Acknowledge I2C data bytes are defined to be 8-bits long. There is no restriction to the number of bytes transmitted per data transfer. Each byte transferred must be followed by an acknowledge (ACK) signal. The clock for the acknowledge signal is generated by the master, while the receiver generates the actual acknowledge signal by pulling down SDA and holding it low during the HIGH portion of the acknowledge clock pulse.
ICM-20948 To write the internal ICM-20948 registers, the master transmits the start condition (S), followed by the I2C address and the write bit (0). At the 9th clock cycle (when the clock is high), the ICM-20948 acknowledges the transfer. Then the master puts the register address (RA) on the bus. After the ICM-20948 acknowledges the reception of the register address, the master puts the register data onto the bus.
ICM-20948 6.5 SPI INTERFACE SPI is a 4-wire synchronous serial interface that uses two control lines and two data lines. The ICM-20948 always operates as a Slave device during standard Master-Slave SPI operation. With respect to the Master, the Serial Clock output (SCLK), the Serial Data Output (SDO) and the Serial Data Input (SDI) are shared among the Slave devices. Each SPI slave device requires its own Chip Select (CS) line from the master.
ICM-20948 7 REGISTER MAP FOR GYROSCOPE AND ACCELEROMETER The following table lists the register map for the ICM-20948, for user banks 0, 1, 2, 3. 7.1 ADDR (HEX) USER BANK 0 REGISTER MAP ADDR (DEC.
ICM-20948 ADDR (HEX) ADDR (DEC.
ICM-20948 Addr (Hex) Addr (Dec.) Register Name Serial I/F 28 40 TIMEBASE_CORRECTIO N_PLL R/W 7F 127 REG_BANK_SEL R/W 7.3 ADDR (HEX) Bit7 Bit6 Bit5 Bit4 - USER_BANK[1:0] Bit1 Bit0 BIT1 BIT0 - USER BANK 2 REGISTER MAP ADDR (DEC.
ICM-20948 ADDR (HEX) ADDR (DEC.
ICM-20948 8 USER BANK 0 REGISTER DESCRIPTIONS This section describes the function and contents of the User Bank 0 Register Map within the ICM-20948. NOTE: The device will come up in sleep mode upon power-up. 8.1 WHO_AM_I Name: WHO_AM_I Address: 0 (00h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0xEA BIT NAME 7:0 WHO_AM_I[7:0] 8.2 FUNCTION Register to indicate to user which device is being accessed. The value for ICM-20948 is 0xEA.
ICM-20948 8.3 LP_CONFIG Name: LP_CONFIG Address: 5 (05h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x40 BIT NAME 7 6 I2C_MST_CYCLE 5 ACCEL_CYCLE 4 GYRO_CYCLE 3:0 - 8.4 FUNCTION Reserved. 1 - Operate I2C master in duty cycled mode. ODR is determined by I2C_MST_ODR_CONFIG register. 0 – Disable I2C master duty cycled mode. 1 – Operate ACCEL in duty cycled mode. ODR is determined by ACCEL_SMPLRT_DIV register. 0 – Disable ACCEL duty cycled mode. 1 – Operate GYRO in duty cycled mode.
ICM-20948 8.5 PWR_MGMT_2 Name: PWR_MGMT_2 Address: 7 (07h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:6 5:3 DISABLE_ACCEL 2:0 8.6 DISABLE_GYRO FUNCTION Reserved. Only the following values are applicable: 111 – Accelerometer (all axes) disabled. 000 – Accelerometer (all axes) on. Only the following values are applicable: 111 – Gyroscope (all axes) disabled. 000 – Gyroscope (all axes) on.
ICM-20948 8.7 INT_ENABLE Name: INT_ENABLE Address: 16 (10h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 REG_WOF_EN 6:4 3 WOM_INT_EN 2 PLL_RDY_EN 1 DMP_INT1_EN 0 I2C_MST_INT_EN 8.8 INT_ENABLE_1 Name: INT_ENABLE_1 Address: 17 (11h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:1 0 RAW_DATA_0_RDY_EN FUNCTION 1 – Enable wake on FSYNC interrupt. 0 – Function is disabled. Reserved. 1 – Enable interrupt for wake on motion to propagate to interrupt pin 1.
ICM-20948 8.10 INT_ENABLE_3 Name: INT_ENABLE_3 Address: 19 (13h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:5 4:0 FIFO_WM_EN[4:0] FUNCTION Reserved. 1 – Enable interrupt for FIFO watermark to propagate to interrupt pin 1. 0 – Function is disabled. 8.
ICM-20948 8.13 INT_STATUS_1 Name: INT_STATUS_1 Address: 26 (1Ah) Type: USR0 Bank: 0 Serial IF: R/C Reset Value: 0x00 BIT NAME 7:1 0 RAW_DATA_0_RDY_INT FUNCTION Reserved. 1 – Sensor Register Raw Data, from all sensors, is updated and ready to be read. 8.14 INT_STATUS_2 Name: INT_STATUS_2 Address: 27 (1Bh) Type: USR0 Bank: 0 Serial IF: R/C Reset Value: 0x00 BIT NAME 7:5 4:0 FIFO_OVERFLOW_INT[4:0] FUNCTION Reserved. 1 – FIFO Overflow interrupt occurred. 8.
ICM-20948 8.17 DELAY_TIMEL Name: DELAY_TIMEL Address: 41 (29h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 DELAY_TIMEL[7:0] FUNCTION Low-byte of delay time between FSYNC event and the 1st gyro ODR event (after the FSYNC event). Reading DELAY_TIMEH will lock DELAY_TIMEH and DELAY_TIMEL from the next update. Reading DELAY_TIMEL will unlock DELAY_TIMEH and DELAY_TIMEL to take the next update due to an FSYNC event. Delay time in µs = (DELAY_TIMEH * 256 + DELAY_TIMEL) * 0.9645 8.
ICM-20948 8.21 ACCEL_YOUT_L Name: ACCEL_YOUT_L Address: 48 (30h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 ACCEL_YOUT_L[7:0] FUNCTION Low Byte of Accelerometer Y-axis data. To convert the output of the accelerometer to acceleration measurement use the formula below: Y_acceleration = ACCEL_YOUT/Accel_Sensitivity 8.
ICM-20948 8.25 GYRO_XOUT_L Name: GYRO_XOUT_L Address: 52 (34h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 GYRO_XOUT_L[7:0] FUNCTION Low Byte of Gyroscope X-axis data. To convert the output of the gyroscope to angular rate measurement use the formula below: X_angular_rate = GYRO_XOUT/Gyro_Sensitivity 8.26 GYRO_YOUT_H Name: GYRO_YOUT_H Address: 53 (35h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 GYRO_YOUT_H[7:0] FUNCTION High Byte of Gyroscope Y-axis data. 8.
ICM-20948 8.29 GYRO_ZOUT_L Name: GYRO_ZOUT_L Address: 56 (38h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 GYRO_ZOUT_L[7:0] FUNCTION Low Byte of Gyroscope Z-axis data. To convert the output of the gyroscope to angular rate measurement use the formula below: Z_angular_rate = GYRO_ZOUT/Gyro_Sensitivity 8.30 TEMP_OUT_H Name: TEMP_OUT_H Address: 57 (39h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 TEMP_OUT_H[7:0] FUNCTION High Byte of Temp sensor data. 8.
ICM-20948 8.33 EXT_SLV_SENS_DATA_01 Name: EXT_SLV_SENS_DATA_01 Address: 60 (3Ch) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 EXT_SLV_SENS_DATA_01[7:0] FUNCTION Sensor data read from external I2C devices via the I2C master interface. The data stored is controlled by the I2C_SLV(0-4)_ADDR, I2C_SLV(0-4)_REG, and I2C_SLV(04)_CTRL registers. 8.
ICM-20948 8.37 EXT_SLV_SENS_DATA_05 Name: EXT_SLV_SENS_DATA_05 Address: 64 (40h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 EXT_SLV_SENS_DATA_05[7:0] FUNCTION Sensor data read from external I2C devices via the I2C master interface. The data stored is controlled by the I2C_SLV(0-4)_ADDR, I2C_SLV(0-4)_REG, and I2C_SLV(04)_CTRL registers. 8.
ICM-20948 8.41 EXT_SLV_SENS_DATA_09 Name: EXT_SLV_SENS_DATA_09 Address: 68 (44h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 EXT_SLV_SENS_DATA_09[7:0] FUNCTION Sensor data read from external I2C devices via the I2C master interface. The data stored is controlled by the I2C_SLV(0-4)_ADDR, I2C_SLV(0-4)_REG, and I2C_SLV(04)_CTRL registers. 8.
ICM-20948 8.45 EXT_SLV_SENS_DATA_13 Name: EXT_SLV_SENS_DATA_13 Address: 72 (48h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 EXT_SLV_SENS_DATA_13[7:0] FUNCTION Sensor data read from external I2C devices via the I2C master interface. The data stored is controlled by the I2C_SLV(0-4)_ADDR, I2C_SLV(0-4)_REG, and I2C_SLV(04)_CTRL registers. 8.
ICM-20948 8.49 EXT_SLV_SENS_DATA_17 Name: EXT_SLV_SENS_DATA_17 Address: 76 (4Ch) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 EXT_SLV_SENS_DATA_17[7:0] FUNCTION Sensor data read from external I2C devices via the I2C master interface. The data stored is controlled by the I2C_SLV(0-4)_ADDR, I2C_SLV(0-4)_REG, and I2C_SLV(04)_CTRL registers. 8.
ICM-20948 8.53 EXT_SLV_SENS_DATA_21 Name: EXT_SLV_SENS_DATA_21 Address: 80 (50h) Type: USR0 Bank: 0 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 EXT_SLV_SENS_DATA_21[7:0] FUNCTION Sensor data read from external I2C devices via the I2C master interface. The data stored is controlled by the I2C_SLV(0-4)_ADDR, I2C_SLV(0-4)_REG, and I2C_SLV(04)_CTRL registers. 8.
ICM-20948 8.56 FIFO_EN_1 Name: FIFO_EN_1 Address: 102 (66h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:4 3 SLV_3_FIFO_EN 2 SLV_2_FIFO_EN 1 SLV_1_FIFO_EN 0 SLV_0_FIFO_EN FUNCTION Reserved. 1 – Write EXT_SENS_DATA registers associated to SLV_3 (as determined by I2C_SLV2_CTRL, I2C_SLV1_CTRL, and I2C_SL20_CTRL) to the FIFO at the sample rate; 0 – Function is disabled.
ICM-20948 8.58 FIFO_RST Name: FIFO_RST Address: 104 (68h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:5 4:0 FIFO_RESET[4:0] FUNCTION Reserved. S/W FIFO reset. Assert and hold to set FIFO size to 0. Assert and de-assert to reset FIFO. 8.59 FIFO_MODE Name: FIFO_MODE Address: 105 (69h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:5 4:0 FIFO_MODE[4:0] FUNCTION Reserved. 0 – Stream. 1 – Snapshot.
ICM-20948 8.62 FIFO_R_W Name: FIFO_R_W Address: 114 (72h) Type: USR0 Bank: 0 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 FIFO_R_W[7:0] FUNCTION Reading from or writing to this register actually reads/writes the FIFO. For example, to write a byte to the FIFO, write the desired byte value to FIFO_R_W[7:0]. To read a byte from the FIFO, perform a register read operation and access the result in FIFO_R_W[7:0]. 8.
ICM-20948 9 USR BANK 1 REGISTER DESCRIPTIONS This section describes the function and contents of the User Bank 1 Register Map within the ICM-20948. NOTE: The device will come up in sleep mode upon power-up. 9.1 SELF_TEST_X_GYRO Name: SELF_TEST_X_GYRO Address: 2 (02h) Type: USR1 Bank: 1 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 XG_ST_DATA[7:0] 9.2 SELF_TEST_Y_GYRO Name: SELF_TEST_Y_GYRO Address: 3 (03h) Type: USR1 Bank: 1 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 YG_ST_DATA[7:0] 9.
ICM-20948 9.5 SELF_TEST_Y_ACCEL Name: SELF_TEST_Y_ACCEL Address: 15 (0Fh) Type: USR1 Bank: 1 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 YA_ST_DATA[7:0] 9.6 SELF_TEST_Z_ACCEL Name: SELF_TEST_Z_ACCEL Address: 16 (10h) Type: USR1 Bank: 1 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 ZA_ST_DATA[7:0] 9.7 FUNCTION Contains self-test data for the Y Accelerometer. FUNCTION Contains self-test data for the Z Accelerometer.
ICM-20948 9.10 YA_OFFS_L Name: YA_OFFS_L Address: 24 (18h) Type: USR1 Bank: 1 Serial IF: R/W Reset Value: Trimmed on a per-part basis for optimal performance BIT NAME FUNCTION 7:1 YA_OFFS[6:0] Lower bits of the Y accelerometer offset cancellation. 0 Reserved . 9.11 ZA_OFFS_H Name: ZA_OFFS_H Address: 26 (1Ah) Type: USR1 Bank: 1 Serial IF: R/W Reset Value: Trimmed on a per-part basis for optimal performance BIT NAME FUNCTION 7:0 ZA_OFFS[14:7] Upper bits of the Z accelerometer offset cancellation. 9.
ICM-20948 9.14 REG_BANK_SEL Name: REG_BANK_SEL Address: 127 (7Fh) Type: Bank: 1 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:6 5:4 USER_BANK[1:0] 3:0 - Document Number: DS-000189 Revision: 1.3 FUNCTION Reserved. Use the following values in this bit-field to select a USER BANK. 0: Select USER BANK 0. 1: Select USER BANK 1. 2: Select USER BANK 2. 3: Select USER BANK 3. Reserved.
ICM-20948 10 USR BANK 2 REGISTER MAP This section describes the function and contents of the User Bank 2 Register Map within the ICM-20948. NOTE: The device will come up in sleep mode upon power-up. 10.1 GYRO_SMPLRT_DIV Name: GYRO_SMPLRT_DIV Address: 0 (00h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 GYRO_SMPLRT_DIV[7:0] FUNCTION Gyro sample rate divider.
ICM-20948 OUTPUT GYRO_FCHOICE GYRO_DLPFCFG 3DB BW [HZ] NBW [HZ] 0 x 12106 12316 1 0 196.6 229.8 1 1 151.8 187.6 1 2 119.5 154.3 1 3 51.2 73.3 1 4 23.9 35.9 1 5 11.6 17.8 1 6 5.7 8.9 1 7 361.4 376.
ICM-20948 AVERAGES 1X 2X 4X 8X 16X 32X 64X 128X GYRO_FCHOICE 1 1 1 1 1 1 1 1 GYRO_AVGCFG 0 1 2 3 4 5 6 7 TON [MS] 1.15 1.59 2.48 4.26 7.82 14.93 29.15 57.59 NBW [HZ] 773.5 469.8 257.8 134.8 68.9 34.8 17.5 8.8 RMS NOISE [DPS-RMS] TYP (BASED ON GYROSCOPE NOISE: 0.011 DPS/√HZ) 0.31 0.24 0.18 0.13 0.09 0.06 0.05 0.03 GYRO_SMPLRT_DIV ODR [HZ] CURRENT CONSUMPTION [MA] TYP 255 4.4 1.04 1.05 1.05 1.06 1.09 1.14 1.24 1.45 64 17.3 1.07 1.08 1.
ICM-20948 10.5 XG_OFFS_USRL Name: XG_OFFS_USRL Address: 4 (04h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 X_OFFS_USER[7:0] FUNCTION Lower byte of X gyro offset cancellation. 10.6 YG_OFFS_USRH Name: YG_OFFS_USRH Address: 5 (05h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 Y_OFFS_USER[15:8] FUNCTION Upper byte of Y gyro offset cancellation. 10.
ICM-20948 10.10 ODR_ALIGN_EN Name: ODR_ALIGN_EN Address: 9 (09h) Type: USR2 Bank: 2 OTP: No Serial IF: R/W Reset Value: 0x00 BIT NAME 7:1 0 ODR_ALIGN_EN FUNCTION Reserved. 0: Disables ODR start-time alignment. 1: Enables ODR start-time alignment when any of the following registers is written (with the same value or with different values): GYRO_SMPLRT_DIV, ACCEL_SMPLRT_DIV_1, ACCEL_SMPLRT_DIV_2, I2C_MST_ODR_CONFIG. 10.
ICM-20948 10.14 ACCEL_WOM_THR Name: ACCEL_WOM_THR Address: 19 (13h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 WOM_THRESHOLD[7:0] FUNCTION This register holds the threshold value for the Wake on Motion Interrupt for ACCEL x/y/z axes. LSB = 4 mg. Range is 0 mg to 1020 mg. 10.15 ACCEL_CONFIG Name: ACCEL_CONFIG Address: 20 (14h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x01 BIT NAME 7:6 5:3 ACCEL_DLPFCFG[2:0] 2:1 ACCEL_FS_SEL[1:0] 0 FUNCTION Reserved.
ICM-20948 10.16 ACCEL_CONFIG_2 Name: ACCEL_CONFIG_2 Address: 21 (15h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:5 4 AX_ST_EN_REG 3 AY_ST_EN_REG 2 AZ_ST_EN_REG 1:0 DEC3_CFG[1:0] FUNCTION Reserved. X Accel self-test enable. Y Accel self-test enable. Z Accel self-test enable. Controls the number of samples averaged in the accelerometer decimator: 0: Average 1 or 4 samples depending on ACCEL_FCHOICE (see Table 19). 1: Average 8 samples. 2: Average 16 samples. 3: Average 32 samples.
ICM-20948 5 187.5 121.2 214.9 3 281.3 178.9 319.3 1 562.5 351.7 N/A N/A Table 19. Accelerator Configuration 2 NOTE: Ton is the ON time for motion measurement when the accelerometer is in duty cycle mode. 10.17 FSYNC_CONFIG Name: FSYNC_CONFIG Address: 82 (52h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 DELAY_TIME_EN 6 5 4 WOF_DEGLITCH_EN WOF_EDGE_INT 3:0 EXT_SYNC_SET[3:0] Document Number: DS-000189 Revision: 1.
ICM-20948 10.18 TEMP_CONFIG Name: TEMP_CONFIG Address: 83 (53h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x00 BIT NAME 2:0 TEMP_DLPFCFG[2:0] FUNCTION Low pass filter configuration for temperature sensor as shown in the table below: TEMP_DLPCFG<2:0> 0 1 2 3 4 5 6 7 TEMP SENSOR NBW (HZ) 7932.0 217.9 123.5 65.9 34.1 17.3 8.8 7932.0 10.19 MOD_CTRL_USR Name: MOD_CTRL_USR Address: 84 (54h) Type: USR2 Bank: 2 Serial IF: R/W Reset Value: 0x03 BIT NAME 7:1 0 REG_LP_DMP_EN FUNCTION Reserved.
ICM-20948 11 USR BANK 3 REGISTER MAP This section describes the function and contents of the User Bank 3 Register Map within the ICM-20948. NOTE: The device will come up in sleep mode upon power-up. 11.1 I2C_MST_ODR_CONFIG Name: I2C_MST_ODR_CONFIG Address: 0 (00h) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:4 3:0 I2C_MST_ODR_CONFIG[3:0] FUNCTION Reserved ODR configuration for external sensor when gyroscope and accelerometer are disabled. ODR is computed as follows: 1.
ICM-20948 11.3 I2C_MST_DELAY_CTRL Name: I2C_MST_DELAY_CTRL Address: 2 (02h) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 DELAY_ES_SHADOW 6:5 4 I2C_SLV4_DELAY_EN 3 I2C_SLV3_DELAY_EN 2 I2C_SLV2_DELAY_EN 1 I2C_SLV1_DELAY_EN 0 I2C_SLV0_DELAY_EN FUNCTION Delays shadowing of external sensor data until all data is received. Reserved. When enabled, slave 4 will only be accessed 1/(1+I2C_SLC4_DLY) samples as determined by I2C_MST_ODR_CONFIG.
ICM-20948 11.6 I2C_SLV0_CTRL Name: I2C_SLV0_CTRL Address: 5 (05h) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 I2C_SLV0_EN 6 I2C_SLV0_BYTE_SW 5 I2C_SLV0_REG_DIS 4 I2C_SLV0_GRP 3:0 I2C_SLV0_LENG[3:0] FUNCTION 1 – Enable reading data from this slave at the sample rate and storing data at the first available EXT_SENS_DATA register, which is always EXT_SENS_DATA_00 for I2C slave 0. 0 – Function is disabled for this slave.
ICM-20948 11.9 I2C_SLV1_REG Name: I2C_SLV1_REG Address: 8 (08h) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 I2C_SLV1_REG[7:0] FUNCTION I2C slave 1 register address from where to begin data transfer. 11.
ICM-20948 11.11 I2C_SLV1_DO Name: I2C_SLV1_DO Address: 10 (0Ah) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 I2C_SLV1_DO[7:0] FUNCTION Data out when slave 1 is set to write. 11.12 I2C_SLV2_ADDR Name: I2C_SLV2_ADDR Address: 11 (0Bh) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 I2C_SLV2_RNW 6:0 I2C_ID_2[6:0] FUNCTION 1 – Transfer is a read. 0 – Transfer is a write. Physical address of I2C slave 2. 11.
ICM-20948 11.14 I2C_SLV2_CTRL Name: I2C_SLV2_CTRL Address: 13 (0Dh) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 I2C_SLV2_EN 6 I2C_SLV2_BYTE_SW 5 I2C_SLV2_REG_DIS 4 I2C_SLV2_GRP 3:0 I2C_SLV2_LENG[3:0] FUNCTION 1 – Enable reading data from this slave at the sample rate and storing data at the first available EXT_SENS_DATA register as determined by I2C_SLV0_EN, I2C_SLV0_LENG, I2C_SLV1_EN and I2C_SLV1_LENG. 0 – Function is disabled for this slave.
ICM-20948 11.17 I2C_SLV3_REG Name: I2C_SLV3_REG Address: 16 (10h) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:0 I2C_SLV3_REG[7:0] FUNCTION I2C slave 3 register address from where to begin data transfer. 11.
ICM-20948 11.20 I2C_SLV4_ADDR Name: I2C_SLV4_ADDR Address: 19 (13h) Type: USR3 Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7 I2C_SLV4_RNW 6:0 I2C_ID_4[6:0] FUNCTION 1 – Transfer is a read. 0 – Transfer is a write. Physical address of I2C slave 4. NOTE: The I2C Slave 4 interface can be used to perform only single byte read and write transactions. 11.
ICM-20948 11.24 I2C_SLV4_DI Name: I2C_SLV4_DI Address: 23 (17h) Type: USR3 Bank: 3 Serial IF: R Reset Value: 0x00 BIT NAME 7:0 I2C_SLV4_DI[7:0] FUNCTION Data read from I2C Slave 4. 11.25 REG_BANK_SEL Name: REG_BANK_SEL Address: 127 (7Fh) Type: Bank: 3 Serial IF: R/W Reset Value: 0x00 BIT NAME 7:6 5:4 USER_BANK[1:0] 3:0 - Document Number: DS-000189 Revision: 1.3 FUNCTION Reserved. Use the following values in this bit-field to select a USER BANK. 0: Select USER BANK 0. 1: Select USER BANK 1.
ICM-20948 12 REGISTER MAP FOR MAGNETOMETER The register map for the ICM-20948’s Magnetometer (AK09916) section is listed below.
ICM-20948 13 DETAILED DESCRIPTIONS FOR MAGNETOMETER REGISTERS This section details each register within the ICM-20948 Magnetometer section. 13.1 WIA: DEVICE ID ADDR REGISTER NAME D7 D6 01H WIA 0 0 D5 D4 READ-ONLY REGISTER 0 0 D3 D2 D1 D0 1 0 0 1 D3 D2 D1 D0 0 0 0 0 DOR 0 DRDY 0 Device ID of AK09916. It is described in one byte and fixed value. 09H: fixed 13.
ICM-20948 HZL[7:0]: Z-axis measurement data lower 8bit HZH[15:8]: Z-axis measurement data higher 8bit Measurement data is stored in two’s complement and Little Endian format. Measurement range of each from --32752 to 32752 in 16-bit output. MEASUREMENT DATA (EACH AXIS) [15:0] TWO’S COMPLEMENT HEX DECIMAL MAGNETIC FLUX DENSITY [µT] 0111 1111 1111 0000 7FF0 32752 4912(max.) | | | | 0000 0000 0000 0001 0001 1 0.15 0000 0000 0000 0000 0000 0 0 1111 1111 1111 1111 FFFF -1 -0.
ICM-20948 “00110”: Continuous measurement mode 3 “01000”: Continuous measurement mode 4 “10000”: Self-test mode Other code settings are prohibited When each mode is set, AK09916 transits to the set mode. 13.6 CNTL3: CONTROL 3 ADDR 32H REGISTER NAME CNTL3 Reset D7 D6 0 0 0 0 D5 D4 READ/WRITE REGISTER 0 0 0 0 D3 D2 D1 D0 0 0 0 0 0 0 SRST 0 SRST: Soft reset "0": Normal "1": Reset When “1” is set, all registers are initialized. After reset, SRST bit turns to “0” automatically. 13.
ICM-20948 14 USE NOTES 14.1 GYROSCOPE MODE TRANSITION When gyroscope is transitioning from low-power to low-noise mode, several unsettled output samples will be observed at the gyroscope output due to filter switching and settling. The number of unsettled gyroscope output samples depends on the filter and ODR settings. 14.2 POWER MANAGEMENT 1 REGISTER SETTING CLKSEL[2:0] has to be set to 001 to achieve the datasheet performance. 14.
ICM-20948 I2C_MST_CLK NOMINAL CLK FREQUENCY [KHZ] DUTY CYCLE 14 345.60 46.67% 15 345.60 46.67% Table 23. I2C Master Clock Frequency 14.6 CLOCKING The internal system clock sources include: (1) an internal relaxation oscillator, and (2) a PLL with MEMS gyroscope oscillator as the reference clock. With the recommended clock selection setting (CLKSEL = 1), the best clock source for optimum sensor performance and power consumption will be automatically selected based on the power mode.
ICM-20948 15 ORIENTATION OF AXES Figure 12 and Figure 13 show the orientation of the axes of sensitivity and the polarity of rotation. Note the pin 1 identifier (•) in the figures. +Z +Y +Z ICM +Y -20 94 8 +X +X Figure 12. Orientation of Axes of Sensitivity and Polarity of Rotation ICM -20 94 8 +X +Y +Z Figure 13. Orientation of Axes of Sensitivity for Magnetometer Document Number: DS-000189 Revision: 1.
ICM-20948 16 PACKAGE DIMENSIONS This section provides package dimensions for the device. Information for the 24 Lead QFN 3.0x3.0x0.9 package is in Figure 14 and Table 24 Figure 14. Package Dimensions Document Number: DS-000189 Revision: 1.
ICM-20948 SYMBOLS A A1 b c D D2 E E2 e K L R s y DIMENSIONS IN MILLIMETERS NOM. 1.00 0.02 0.20 0.15 REF. 3.00 1.70 3.00 1.54 0.40 0.35 REF. 0.30 REF. 0.25 REF. --- MIN. 0.95 0.00 0.15 --2.90 1.65 2.90 1.49 ----0.25 0.075 --0.00 Table 24. Package Dimensions Document Number: DS-000189 Revision: 1.3 Page 85 of 89 MAX. 1.05 0.05 0.25 --3.10 1.75 3.10 1.59 ----0.35 ----0.
ICM-20948 17 PART NUMBER PART MARKINGS The part number part markings for ICM-20948 devices are summarized below: PART NUMBER ICM-20948 PART NUMBER PART MARKING I2948 Table 25. Part Number Part Markings TOP VIEW Part Number Lot Traceability Code I2948 XXXXXX YYWW Y Y = Year Code W W = Work Week Figure 15. Part Number Part Markings Document Number: DS-000189 Revision: 1.
ICM-20948 18 REFERENCES Please refer to “InvenSense MEMS Handling Application Note (AN-IVS-0002A-00)” for the following information: • • Manufacturing Recommendations o Assembly Guidelines and Recommendations o PCB Design Guidelines and Recommendations o MEMS Handling Instructions o ESD Considerations o Reflow Specification o Storage Specifications o Package Marking Specification o Tape & Reel Specification o Reel & Pizza Box Label o Packaging o Representative Shipping Carton Label Compliance o Environmen
ICM-20948 19 DOCUMENT INFORMATION 19.1 REVISION HISTORY REVISION DATE REVISION DESCRIPTION 12/07/2016 1.0 Initial Release 1/17/2017 1.1 Formatting fix 04/06/2017 1.2 Updated Section 4 06/02/2017 1.3 Updated Sections 3, 4 Document Number: DS-000189 Revision: 1.
ICM-20948 COMPLIANCE DECLARATION DISCLAIMER InvenSense believes the environmental and other compliance information given in this document to be correct but cannot guarantee accuracy or completeness. Conformity documents substantiating the specifications and component characteristics are on file. InvenSense subcontracts manufacturing and the information contained herein is based on data received from vendors and suppliers, which has not been validated by InvenSense.