Table of Tables
1 Document Information
1.1 Revision History
1.2 Purpose and Scope
1.3 Product Overview
1.4 Applications
2 Features
2.1 Gyroscope Features
2.2 Accelerometer Features
2.3 Magnetometer Features
2.4 DMP Features
2.5 Additional Features
3 Electrical Characteristics
3.1 Gyroscope Specifications
3.2 Accelerometer Specifications
3.3 Magnetometer Specifications
3.4 Electrical Specifications
11.1.1 D.C. Electrical Characteristics
21.1.1 A.C. Electrical Characteristics
31.1.1 Other Electrical Specifications
3.5 I2C Timing Characterization
3.6 SPI Timing Characterization
3.7 Absolute Maximum Ratings
4 Applications Information
4.1 Pin Out Diagram and Signal Description
4.2 Typical Operating Circuit
4.3 Bill of Materials for External Components
4.4 Exposed Die Pad Precautions
4.5 Block Diagram
4.6 Overview
4.7 Three-Axis MEMS Gyroscope with 16-bit ADCs and Signal Conditioning
4.8 Three-Axis MEMS Accelerometer with 16-bit ADCs and Signal Conditioning
4.9 Three-Axis MEMS Magnetometer with 16-bit ADCs and Signal Conditioning
4.10 Digital Motion Processor
4.11 Primary I2C and SPI Serial Communications Interfaces
41.1.1 ICM-20948 Solution Using I2C Interface
51.1.1 ICM-20948 Solution Using SPI Interface
4.12 Auxiliary I2C Serial Interface
4.13 Self-Test
4.14 Clocking
4.15 Sensor Data Registers
4.16 FIFO
4.17 FSYNC
4.18 Interrupts
4.19 Digital-Output Temperature Sensor
4.20 Bias and LDOs
4.21 Charge Pump
4.22 Power Modes
5 Programmable Interrupts
6 Digital Interface
6.1 I2C and SPI Serial Interfaces
6.2 I2C Interface
6.3 I2C Communications Protocol
6.4 I2C Terms
6.5 SPI Interface
7 Orientation of Axes
8 Package Dimensions
9 Part Number Part Markings
10 Register Map for Gyroscope and Accelerometer
11 Register Descriptions
11.1 USR Bank 0 Register Map
11.1.1 WHO_AM_I
11.1.2 USER_CTRL
11.1.3 LP_CONFIG
11.1.4 PWR_MGMT_1
11.1.5 PWR_MGMT_2
11.1.6 INT_PIN_CFG
11.1.7 INT_ENABLE
11.1.8 INT_ENABLE_1
11.1.9 INT_ENABLE_2
11.1.10 INT_ENABLE_3
11.1.11 I2C_MST_STATUS
11.1.12 INT_STATUS
11.1.13 INT_STATUS_1
11.1.14 INT_STATUS_2
11.1.15 INT_STATUS_3
11.1.16 DELAY_TIMEH
11.1.17 DELAY_TIMEL
11.1.18 ACCEL_XOUT_H
11.1.19 ACCEL_XOUT_L
11.1.20 ACCEL_YOUT_H
11.1.21 ACCEL_YOUT_L
11.1.22 ACCEL_ZOUT_H
11.1.23 ACCEL_ZOUT_L
11.1.24 GYRO_XOUT_H
11.1.25 GYRO_XOUT_L
11.1.26 GYRO_YOUT_H
11.1.27 GYRO_YOUT_L
11.1.28 GYRO_ZOUT_H
11.1.29 GYRO_ZOUT_L
11.1.30 TEMP_OUT_H
11.1.31 TEMP_OUT_L
11.1.32 EXT_SLV_SENS_DATA_00
11.1.33 EXT_SLV_SENS_DATA_01
11.1.34 EXT_SLV_SENS_DATA_02
11.1.35 EXT_SLV_SENS_DATA_03
11.1.36 EXT_SLV_SENS_DATA_04
11.1.37 EXT_SLV_SENS_DATA_05
11.1.38 EXT_SLV_SENS_DATA_06
11.1.39 EXT_SLV_SENS_DATA_07
11.1.40 EXT_SLV_SENS_DATA_08
11.1.41 EXT_SLV_SENS_DATA_09
11.1.42 EXT_SLV_SENS_DATA_10
11.1.43 EXT_SLV_SENS_DATA_11
11.1.44 EXT_SLV_SENS_DATA_12
11.1.45 EXT_SLV_SENS_DATA_13
11.1.46 EXT_SLV_SENS_DATA_14
11.1.47 EXT_SLV_SENS_DATA_15
11.1.48 EXT_SLV_SENS_DATA_16
11.1.49 EXT_SLV_SENS_DATA_17
11.1.50 EXT_SLV_SENS_DATA_18
11.1.51 EXT_SLV_SENS_DATA_19
11.1.52 EXT_SLV_SENS_DATA_20
11.1.53 EXT_SLV_SENS_DATA_21
11.1.54 EXT_SLV_SENS_DATA_22
11.1.55 EXT_SLV_SENS_DATA_23
11.1.56 FIFO_EN_1
11.1.57 FIFO_EN_2
11.1.58 FIFO_RST
11.1.59 FIFO_MODE
11.1.60 FIFO_COUNTH
11.1.61 FIFO_COUNTL
11.1.62 FIFO_R_W
11.1.63 DATA_RDY_STATUS
11.1.64 FIFO_CFG
11.1.65 REG_BANK_SEL
11.2 USR Bank 1 Register Map
11.2.2 SELF_TEST_X_GYRO
11.2.3 SELF_TEST_Y_GYRO
11.2.4 SELF_TEST_Z_GYRO
11.2.5 SELF_TEST_X_ACCEL
11.2.6 SELF_TEST_Y_ACCEL
11.2.7 SELF_TEST_Z_ACCEL
11.2.8 XA_OFFS_H
11.2.9 XA_OFFS_L
11.2.10 YA_OFFS_H
11.2.11 YA_OFFS_L
11.2.12 ZA_OFFS_H
11.2.13 ZA_OFFS_L
11.2.14 TIMEBASE_CORRECTION_PLL
11.2.15 REG_BANK_SEL
11.3 USR Bank 2 Register Map
11.3.2 GYRO_SMPLRT_DIV
11.3.2 GYRO_CONFIG_1
11.3.3 GYRO_CONFIG_2
11.3.4 XG_OFFS_USRH
11.3.5 XG_OFFS_USRL
11.3.6 YG_OFFS_USRH
11.3.7 YG_OFFS_USRL
11.3.8 ZG_OFFS_USRH
11.3.9 ZG_OFFS_USRL
11.3.10 ODR_ALIGN_EN
11.3.11 ACCEL_SMPLRT_DIV_1
11.3.12 ACCEL_SMPLRT_DIV_2
11.3.13 ACCEL_INTEL_CTRL
11.3.14 ACCEL_WOM_THR
11.3.15 ACCEL_CONFIG
11.3.16 ACCEL_CONFIG_2
11.3.17 FSYNC_CONFIG
11.3.18 TEMP_CONFIG
11.3.19 MOD_CTRL_USR
11.3.20 REG_BANK_SEL
11.4 USR Bank 3 Register Map
11.4.2 I2C_MST_ODR_CONFIG
11.4.3 I2C_MST_CTRL
11.4.4 I2C_MST_DELAY_CTRL
11.4.5 I2C_SLV0_ADDR
11.4.6 I2C_SLV0_REG
11.4.7 I2C_SLV0_CTRL
11.4.8 I2C_SLV0_DO
11.4.9 I2C_SLV1_ADDR
11.4.10 I2C_SLV1_REG
11.4.11 I2C_SLV1_CTRL
11.4.12 I2C_SLV1_DO
11.4.13 I2C_SLV2_ADDR
11.4.14 I2C_SLV2_REG
11.4.15 I2C_SLV2_CTRL
11.4.16 I2C_SLV2_DO
11.4.17 I2C_SLV3_ADDR
11.4.18 I2C_SLV3_REG
11.4.19 I2C_SLV3_CTRL
11.4.20 I2C_SLV3_DO
11.4.21 I2C_SLV4_ADDR
11.4.22 I2C_SLV4_REG
11.4.23 I2C_SLV4_CTRL
11.4.24 I2C_SLV4_DO
11.4.25 I2C_SLV4_DI
11.4.26 REG_BANK_SEL
12 Register Map for Magnetometer
12.1 Register Map Description
12.2 Detailed Descriptions for Magnetometer Registers
12.3 WIA: Device ID
12.4 ST1: Status 1
12.5 HXL to HZH: Measurement Data
12.6 ST2: Status 2
12.7 CNTL2: Control 2
12.8 CNTL3: Control 3
12.9 TS1, TS2: Test 1, 2
13 Use Notes
13.1 Gyroscope Mode Transition
13.2 Power Management 1 Register Setting
13.3 DMP Memory Access
13.4 Time Base Correction
13.5 I2C Master Clock Frequency
13.6 Clocking
13.7 LP_EN Bit-Field Usage
13.8 Register Access Using SPI Interface
14 References