DevLab_ICM20948 1.0.0
ICM-20948 9-Axis Motion Sensor Driver
Loading...
Searching...
No Matches
ICM20948_regs.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define WHO_AM_I   0x00 /* WHO_AM_I[7:0] */
 
#define WHO_AM_I_VAL   0xEA
 
#define USER_CTRL   0x03 /* DMP_EN FIFO_EN I2C_MST_EN I2C_IF_DIS DMP_RST SRAM_RST I2C_MST_RST - */
 
#define USER_CTRL_DMP_EN   BIT(7)
 
#define USER_CTRL_FIFO_EN   BIT(6)
 
#define USER_CTRL_I2C_MST_EN   BIT(5)
 
#define USER_CTRL_I2C_IF_DIS   BIT(4)
 
#define USER_CTRL_DMP_RST   BIT(3)
 
#define USER_CTRL_SRAM_RST   BIT(2)
 
#define USER_CTRL_I2C_MST_RST   BIT(1)
 
#define LP_CONFIG   0x05 /* I2C_MST_CYCLE ACCEL_CYCLE GYRO_CYCLE - */
 
#define LP_I2C_MST_CYCLE   BIT(6)
 
#define LP_ACCEL_CYCLE   BIT(5)
 
#define LP_GYRO_CYCLE   BIT(4)
 
#define PWR_MGMT_1   0x06 /* DEVICE_RESET SLEEP LP_EN - TEMP_DIS CLKSEL[2:0] */
 
#define PWR_DEVICE_RESET   BIT(7)
 
#define PWR_SLEEP   BIT(6)
 
#define PWR_LP_EN   BIT(5)
 
#define PWR_TEMP_DIS   BIT(3)
 
#define PWR_CLKSEL_MASK   0x07
 
#define PWR_CLKSEL_INT_20MHZ   0x01
 
#define PWR_CLKSEL_AUTO   0x01 /* typical: auto selects best source */
 
#define PWR_MGMT_2   0x07 /* - DISABLE_ACCEL DISABLE_GYRO */
 
#define PWR_DISABLE_ACCEL   BIT(3)
 
#define PWR_DISABLE_GYRO   BIT(0)
 
#define INT_PIN_CFG   0x0F /* INT1_ACTL INT1_OPEN INT1_LATCH_INT_EN INT_ANYRD_2CLEAR ACTL_FSYNC FSYNC_INT_MODE_EN BYPASS_EN - */
 
#define INT1_ACTL   BIT(7) /* active low */
 
#define INT1_OPEN   BIT(6) /* open-drain */
 
#define INT1_LATCH_INT_EN   BIT(5) /* latch until status read */
 
#define INT_ANYRD_2CLEAR   BIT(4)
 
#define INT_ACTL_FSYNC   BIT(3)
 
#define FSYNC_INT_MODE_EN   BIT(2)
 
#define BYPASS_EN   BIT(1) /* I2C bypass to aux devices */
 
#define INT_ENABLE   0x10 /* REG_WOF_EN - WOM_INT_EN PLL_RDY_EN DMP_INT1_EN I2C_MST_INT_EN */
 
#define INT_REG_WOF_EN   BIT(7)
 
#define INT_WOM_INT_EN   BIT(3)
 
#define INT_PLL_RDY_EN   BIT(2)
 
#define INT_DMP_INT1_EN   BIT(1)
 
#define INT_I2C_MST_INT_EN   BIT(0)
 
#define INT_ENABLE_1   0x11 /* RAW_DATA_0_RDY_EN */
 
#define INT_RAW_DATA_0_RDY_EN   BIT(0)
 
#define INT_ENABLE_2   0x12 /* FIFO_OVERFLOW_EN[4:0] */
 
#define INT_ENABLE_3   0x13 /* FIFO_WM_EN[4:0] */
 
#define I2C_MST_STATUS   0x17 /* PASS_THROUGH, *_DONE, *_NACK, LOST_ARB */
 
#define MST_PASS_THROUGH   BIT(7)
 
#define MST_SLV4_DONE   BIT(6)
 
#define MST_LOST_ARB   BIT(5)
 
#define MST_SLV4_NACK   BIT(4)
 
#define MST_SLV3_NACK   BIT(3)
 
#define MST_SLV2_NACK   BIT(2)
 
#define MST_SLV1_NACK   BIT(1)
 
#define MST_SLV0_NACK   BIT(0)
 
#define INT_STATUS   0x19 /* WOM_INT PLL_RDY_INT DMP_INT1 I2C_MST_INT */
 
#define STS_WOM_INT   BIT(3)
 
#define STS_PLL_RDY_INT   BIT(2)
 
#define STS_DMP_INT1   BIT(1)
 
#define STS_I2C_MST_INT   BIT(0)
 
#define INT_STATUS_1   0x1A /* RAW_DATA_0_RDY_INT */
 
#define STS_RAW_DATA_0_RDY_INT   BIT(0)
 
#define INT_STATUS_2   0x1B /* FIFO_OVERFLOW_INT[4:0] */
 
#define INT_STATUS_3   0x1C /* FIFO_WM_INT[4:0] */
 
#define DELAY_TIMEH   0x28
 
#define DELAY_TIMEL   0x29
 
#define ACCEL_XOUT_H   0x2D
 
#define ACCEL_XOUT_L   0x2E
 
#define ACCEL_YOUT_H   0x2F
 
#define ACCEL_YOUT_L   0x30
 
#define ACCEL_ZOUT_H   0x31
 
#define ACCEL_ZOUT_L   0x32
 
#define GYRO_XOUT_H   0x33
 
#define GYRO_XOUT_L   0x34
 
#define GYRO_YOUT_H   0x35
 
#define GYRO_YOUT_L   0x36
 
#define GYRO_ZOUT_H   0x37
 
#define GYRO_ZOUT_L   0x38
 
#define TEMP_OUT_H   0x39
 
#define TEMP_OUT_L   0x3A
 
#define EXT_SLV_SENS_DATA_00   0x3B
 
#define EXT_SLV_SENS_DATA_23   0x52 /* contiguous range 0x3B..0x52 */
 
#define FIFO_EN_1   0x66 /* SLV3..SLV0 FIFO_EN */
 
#define FIFO_EN_2   0x67 /* ACCEL GYRO_Z/Y/X TEMP FIFO_EN */
 
#define FIFO_RST   0x68 /* FIFO_RESET[4:0] */
 
#define FIFO_MODE   0x69 /* FIFO_MODE[4:0] */
 
#define FIFO_COUNTH   0x70
 
#define FIFO_COUNTL   0x71
 
#define FIFO_R_W   0x72
 
#define FIFO_CFG   0x76
 
#define REG_BANK_SEL   0x7F /* USER_BANK[1:0] */
 
#define SELF_TEST_X_GYRO   0x02 /* XG_ST_DATA[7:0] */
 
#define SELF_TEST_Y_GYRO   0x03 /* YG_ST_DATA[7:0] */
 
#define SELF_TEST_Z_GYRO   0x04 /* ZG_ST_DATA[7:0] */
 
#define SELF_TEST_X_ACCEL   0x0E /* XA_ST_DATA[7:0] */
 
#define SELF_TEST_Y_ACCEL   0x0F /* YA_ST_DATA[7:0] */
 
#define SELF_TEST_Z_ACCEL   0x10 /* ZA_ST_DATA[7:0] */
 
#define XA_OFFS_H   0x14 /* XA_OFFS[14:7] */
 
#define XA_OFFS_L   0x15 /* XA_OFFS[6:0] */
 
#define YA_OFFS_H   0x17 /* YA_OFFS[14:7] */
 
#define YA_OFFS_L   0x18 /* YA_OFFS[6:0] */
 
#define ZA_OFFS_H   0x1A /* ZA_OFFS[14:7] */
 
#define ZA_OFFS_L   0x1B /* ZA_OFFS[6:0] */
 
#define TIMEBASE_CORRECTION_PLL   0x28 /* TBC_PLL[7:0] */
 
#define BANK1_REG_BANK_SEL   0x7F /* mirror of REG_BANK_SEL */
 
#define GYRO_SMPLRT_DIV   0x00 /* GYRO_SMPLRT_DIV[7:0] */
 
#define GYRO_CONFIG_1   0x01 /* GYRO_DLPFCFG[2:0] GYRO_FS_SEL[1:0] GYRO_FCHOICE */
 
#define GYRO_FCHOICE   BIT(0) /* when 0: DLPF on, when 1: off (per datasheet) */
 
#define GYRO_FS_SEL_SHIFT   1
 
#define GYRO_FS_SEL_MASK   (0x3u << GYRO_FS_SEL_SHIFT)
 
#define GYRO_FS_250DPS   (0u << GYRO_FS_SEL_SHIFT)
 
#define GYRO_FS_500DPS   (1u << GYRO_FS_SEL_SHIFT)
 
#define GYRO_FS_1000DPS   (2u << GYRO_FS_SEL_SHIFT)
 
#define GYRO_FS_2000DPS   (3u << GYRO_FS_SEL_SHIFT)
 
#define GYRO_DLPFCFG_SHIFT   5
 
#define GYRO_DLPFCFG_MASK   (0x7u << GYRO_DLPFCFG_SHIFT)
 
#define GYRO_CONFIG_2   0x02 /* XGYRO_CTEN YGYRO_CTEN ZGYRO_CTEN GYRO_AVGCFG[2:0] */
 
#define XGYRO_CTEN   BIT(5)
 
#define YGYRO_CTEN   BIT(4)
 
#define ZGYRO_CTEN   BIT(3)
 
#define GYRO_AVGCFG_SHIFT   0
 
#define GYRO_AVGCFG_MASK   (0x7u << GYRO_AVGCFG_SHIFT)
 
#define XG_OFFS_USRH   0x03
 
#define XG_OFFS_USRL   0x04
 
#define YG_OFFS_USRH   0x05
 
#define YG_OFFS_USRL   0x06
 
#define ZG_OFFS_USRH   0x07
 
#define ZG_OFFS_USRL   0x08
 
#define ODR_ALIGN_EN   0x09 /* ODR_ALIGN_EN */
 
#define ODR_ALIGN_EN_BIT   BIT(0)
 
#define ACCEL_SMPLRT_DIV_1   0x10 /* ACCEL_SMPLRT_DIV[11:8] */
 
#define ACCEL_SMPLRT_DIV_2   0x11 /* ACCEL_SMPLRT_DIV[7:0] */
 
#define ACCEL_INTEL_CTRL   0x12 /* ACCEL_INTEL_EN ACCEL_INTEL_MODE_INT */
 
#define ACCEL_INTEL_EN   BIT(7)
 
#define ACCEL_INTEL_MODE_INT   BIT(6)
 
#define ACCEL_WOM_THR   0x13 /* WOM_THRESHOLD[7:0] */
 
#define ACCEL_CONFIG   0x14 /* ACCEL_DLPFCFG[2:0] ACCEL_FS_SEL[1:0] ACCEL_FCHOICE */
 
#define ACCEL_FCHOICE   BIT(0)
 
#define ACCEL_FS_SEL_SHIFT   1
 
#define ACCEL_FS_SEL_MASK   (0x3u << ACCEL_FS_SEL_SHIFT)
 
#define ACCEL_FS_2G   (0u << ACCEL_FS_SEL_SHIFT)
 
#define ACCEL_FS_4G   (1u << ACCEL_FS_SEL_SHIFT)
 
#define ACCEL_FS_8G   (2u << ACCEL_FS_SEL_SHIFT)
 
#define ACCEL_FS_16G   (3u << ACCEL_FS_SEL_SHIFT)
 
#define ACCEL_DLPFCFG_SHIFT   5
 
#define ACCEL_DLPFCFG_MASK   (0x7u << ACCEL_DLPFCFG_SHIFT)
 
#define ACCEL_CONFIG_2   0x15 /* AX_ST_EN_REG AY_ST_EN_REG AZ_ST_EN_REG DEC3_CFG[1:0] */
 
#define AX_ST_EN_REG   BIT(7)
 
#define AY_ST_EN_REG   BIT(6)
 
#define AZ_ST_EN_REG   BIT(5)
 
#define DEC3_CFG_SHIFT   0
 
#define DEC3_CFG_MASK   (0x3u << DEC3_CFG_SHIFT)
 
#define FSYNC_CONFIG   0x52 /* DELAY_TIME_EN WOF_DEGLITCH_EN WOF_EDGE_INT EXT_SYNC_SET[3:0] */
 
#define DELAY_TIME_EN   BIT(7)
 
#define WOF_DEGLITCH_EN   BIT(6)
 
#define WOF_EDGE_INT   BIT(5)
 
#define EXT_SYNC_SET_MASK   0x0F
 
#define TEMP_CONFIG   0x53 /* TEMP_DLPFCFG[2:0] */
 
#define TEMP_DLPFCFG_SHIFT   5
 
#define TEMP_DLPFCFG_MASK   (0x7u << TEMP_DLPFCFG_SHIFT)
 
#define MOD_CTRL_USR   0x54 /* REG_LP_DMP_EN */
 
#define REG_LP_DMP_EN   BIT(7)
 
#define BANK2_REG_BANK_SEL   0x7F /* mirror of REG_BANK_SEL */
 
#define I2C_MST_ODR_CONFIG   0x00 /* I2C_MST_ODR_CONFIG[3:0] */
 
#define MST_ODR_CFG_MASK   0x0F
 
#define I2C_MST_CTRL   0x01 /* MULT_MST_EN - I2C_MST_P_NSR I2C_MST_CLK[3:0] */
 
#define MULT_MST_EN   BIT(7)
 
#define I2C_MST_P_NSR   BIT(4)
 
#define I2C_MST_CLK_MASK   0x0F
 
#define I2C_MST_DELAY_CTRL   0x02 /* DELAY_ES_SHADOW + I2C_SLVx_DELAY_EN bits */
 
#define DELAY_ES_SHADOW   BIT(7)
 
#define I2C_SLV4_DELAY_EN   BIT(4)
 
#define I2C_SLV3_DELAY_EN   BIT(3)
 
#define I2C_SLV2_DELAY_EN   BIT(2)
 
#define I2C_SLV1_DELAY_EN   BIT(1)
 
#define I2C_SLV0_DELAY_EN   BIT(0)
 
#define I2C_SLV0_ADDR   0x03 /* RNW + ID[6:0] */
 
#define I2C_SLVx_RNW   BIT(7)
 
#define I2C_SLV0_REG   0x04
 
#define I2C_SLV0_CTRL   0x05 /* EN BYTE_SW REG_DIS GRP LENG[3:0] */
 
#define I2C_SLVx_EN   BIT(7)
 
#define I2C_SLVx_BYTE_SW   BIT(6)
 
#define I2C_SLVx_REG_DIS   BIT(5)
 
#define I2C_SLVx_GRP   BIT(4)
 
#define I2C_SLVx_LENG_MASK   0x0F
 
#define I2C_SLV0_DO   0x06
 
#define I2C_SLV1_ADDR   0x07
 
#define I2C_SLV1_REG   0x08
 
#define I2C_SLV1_CTRL   0x09
 
#define I2C_SLV1_DO   0x0A
 
#define I2C_SLV2_ADDR   0x0B
 
#define I2C_SLV2_REG   0x0C
 
#define I2C_SLV2_CTRL   0x0D
 
#define I2C_SLV2_DO   0x0E
 
#define I2C_SLV3_ADDR   0x0F
 
#define I2C_SLV3_REG   0x10
 
#define I2C_SLV3_CTRL   0x11
 
#define I2C_SLV3_DO   0x12
 
#define I2C_SLV4_ADDR   0x13
 
#define I2C_SLV4_REG   0x14
 
#define I2C_SLV4_CTRL   0x15 /* EN BYTE_SW REG_DIS DLY[4:0] */
 
#define I2C_SLV4_DLY_MASK   0x1F
 
#define I2C_SLV4_DO   0x16
 
#define I2C_SLV4_DI   0x17
 
#define BANK3_REG_BANK_SEL   0x7F /* mirror of REG_BANK_SEL */
 
#define REG_BANK_SEL_USER_BANK_SHIFT   4
 
#define REG_BANK_SEL_USER_BANK_MASK   (0x3u << REG_BANK_SEL_USER_BANK_SHIFT)
 
#define USER_BANK_0   BANK0
 
#define USER_BANK_1   BANK1
 
#define USER_BANK_2   BANK2
 
#define USER_BANK_3   BANK3
 
#define AK09916_I2C_ADDR   0x0C
 
#define AK_WIA2   0x01
 
#define AK_ST1   0x10
 
#define AK_HXL   0x11
 
#define AK_ST2   0x18
 
#define AK_CNTL2   0x31
 
#define AK_CNTL3   0x32
 
#define AK_WIA2_VAL   0x09 /* AK09916C WIA2 expected */
 
#define INTERNAL_20MHZ   0x00 /* 0: Internal 20 MHz RC */
 
#define AUTO_SEL   0x01 /* 1–5: Auto/PLL preferred (use 1 as default) */
 
#define CLK_STOP   0x07 /* 7: Stop clock / timing gen reset */
 
#define g2   0
 
#define g4   1
 
#define g8   2
 
#define g16   3
 
#define ACCEL_FCHOICE_BYPASS   0
 
#define ACCEL_FCHOICE_DLPF   1
 
#define ACCEL_DLPFCFG_0   0
 
#define ACCEL_DLPFCFG_1   1
 
#define ACCEL_DLPFCFG_2   2
 
#define ACCEL_DLPFCFG_3   3
 
#define ACCEL_DLPFCFG_4   4
 
#define ACCEL_DLPFCFG_5   5
 
#define ACCEL_DLPFCFG_6   6
 
#define ACCEL_DLPFCFG_7   7
 
#define ACCEL_DEC3_AVG_4   0u /* averages 1 or 4 (depends on FCHOICE) */
 
#define ACCEL_DEC3_AVG_8   1u
 
#define ACCEL_DEC3_AVG_16   2u
 
#define ACCEL_DEC3_AVG_32   3u
 
#define ACCEL_SMPLRT_DIV_MIN   0u
 
#define ACCEL_SMPLRT_DIV_MAX   4095u
 
#define ACCEL_DLPF_BASE_HZ   1125.0f
 
#define ACCEL_DLPF_ODR_HZ(div)   (ACCEL_DLPF_BASE_HZ / (1.0f + (float)(div)))
 
#define ACCEL_BYPASS_3DB_BW_HZ   1209.0f
 
#define ACCEL_BYPASS_NBW_HZ   1248.0f
 
#define ACCEL_BYPASS_RATE_HZ   4500.0f
 
#define ACCEL_DLPF0_3DB_BW_HZ   246.0f
 
#define ACCEL_DLPF0_NBW_HZ   265.0f
 
#define ACCEL_DLPF1_3DB_BW_HZ   246.0f
 
#define ACCEL_DLPF1_NBW_HZ   265.0f
 
#define ACCEL_DLPF2_3DB_BW_HZ   111.4f
 
#define ACCEL_DLPF2_NBW_HZ   136.0f
 
#define ACCEL_DLPF3_3DB_BW_HZ   50.4f
 
#define ACCEL_DLPF3_NBW_HZ   68.8f
 
#define ACCEL_DLPF4_3DB_BW_HZ   23.9f
 
#define ACCEL_DLPF4_NBW_HZ   34.4f
 
#define ACCEL_DLPF5_3DB_BW_HZ   11.5f
 
#define ACCEL_DLPF5_NBW_HZ   17.0f
 
#define ACCEL_DLPF6_3DB_BW_HZ   5.7f
 
#define ACCEL_DLPF6_NBW_HZ   8.3f
 
#define ACCEL_DLPF7_3DB_BW_HZ   473.0f
 
#define ACCEL_DLPF7_NBW_HZ   499.0f
 
#define dps250   0
 
#define dps500   1
 
#define dps1000   2
 
#define dps2000   3
 
#define GYRO_FCHOICE_BYPASS   0
 
#define GYRO_FCHOICE_DLPF   1
 
#define GYRO_DLPFCFG_0   0
 
#define GYRO_DLPFCFG_1   1
 
#define GYRO_DLPFCFG_2   2
 
#define GYRO_DLPFCFG_3   3
 
#define GYRO_DLPFCFG_4   4
 
#define GYRO_DLPFCFG_5   5
 
#define GYRO_DLPFCFG_6   6
 
#define GYRO_DLPFCFG_7   7
 
#define GYRO_SMPLRT_MIN_HZ   4.3f
 
#define GYRO_DLPF_BASE_HZ   1100.0f
 
#define GYRO_DLPF_ODR_HZ(rate_request)   (rate_request) /* symbolic; your driver computes DIV = round(1100/rate)-1 */
 
#define GYRO_BW_ULTRA_WIDE   0 /* bypass path */
 
#define GYRO_BW_WIDE   1 /* e.g., CFG 0/1 */
 
#define GYRO_BW_MEDIUM   2 /* e.g., CFG 2/3 */
 
#define GYRO_BW_NARROW   3 /* e.g., CFG 4/5/6/7 */
 
#define Hz2   0
 
#define Hz6   1
 
#define Hz8   2
 
#define Hz10   3
 
#define Hz15   4
 
#define Hz20   5
 
#define Hz25   6
 
#define Hz30   7
 
#define LowPower   0
 
#define Regular   1
 
#define EnhancedRegular   2
 
#define HighAccuracy   3
 

Macro Definition Documentation

◆ ACCEL_BYPASS_3DB_BW_HZ

#define ACCEL_BYPASS_3DB_BW_HZ   1209.0f

Definition at line 369 of file ICM20948_regs.h.

◆ ACCEL_BYPASS_NBW_HZ

#define ACCEL_BYPASS_NBW_HZ   1248.0f

Definition at line 370 of file ICM20948_regs.h.

◆ ACCEL_BYPASS_RATE_HZ

#define ACCEL_BYPASS_RATE_HZ   4500.0f

Definition at line 371 of file ICM20948_regs.h.

◆ ACCEL_CONFIG

#define ACCEL_CONFIG   0x14 /* ACCEL_DLPFCFG[2:0] ACCEL_FS_SEL[1:0] ACCEL_FCHOICE */

Definition at line 209 of file ICM20948_regs.h.

◆ ACCEL_CONFIG_2

#define ACCEL_CONFIG_2   0x15 /* AX_ST_EN_REG AY_ST_EN_REG AZ_ST_EN_REG DEC3_CFG[1:0] */

Definition at line 220 of file ICM20948_regs.h.

◆ ACCEL_DEC3_AVG_16

#define ACCEL_DEC3_AVG_16   2u

Definition at line 356 of file ICM20948_regs.h.

◆ ACCEL_DEC3_AVG_32

#define ACCEL_DEC3_AVG_32   3u

Definition at line 357 of file ICM20948_regs.h.

◆ ACCEL_DEC3_AVG_4

#define ACCEL_DEC3_AVG_4   0u /* averages 1 or 4 (depends on FCHOICE) */

Definition at line 354 of file ICM20948_regs.h.

◆ ACCEL_DEC3_AVG_8

#define ACCEL_DEC3_AVG_8   1u

Definition at line 355 of file ICM20948_regs.h.

◆ ACCEL_DLPF0_3DB_BW_HZ

#define ACCEL_DLPF0_3DB_BW_HZ   246.0f

Definition at line 376 of file ICM20948_regs.h.

◆ ACCEL_DLPF0_NBW_HZ

#define ACCEL_DLPF0_NBW_HZ   265.0f

Definition at line 377 of file ICM20948_regs.h.

◆ ACCEL_DLPF1_3DB_BW_HZ

#define ACCEL_DLPF1_3DB_BW_HZ   246.0f

Definition at line 378 of file ICM20948_regs.h.

◆ ACCEL_DLPF1_NBW_HZ

#define ACCEL_DLPF1_NBW_HZ   265.0f

Definition at line 379 of file ICM20948_regs.h.

◆ ACCEL_DLPF2_3DB_BW_HZ

#define ACCEL_DLPF2_3DB_BW_HZ   111.4f

Definition at line 380 of file ICM20948_regs.h.

◆ ACCEL_DLPF2_NBW_HZ

#define ACCEL_DLPF2_NBW_HZ   136.0f

Definition at line 381 of file ICM20948_regs.h.

◆ ACCEL_DLPF3_3DB_BW_HZ

#define ACCEL_DLPF3_3DB_BW_HZ   50.4f

Definition at line 382 of file ICM20948_regs.h.

◆ ACCEL_DLPF3_NBW_HZ

#define ACCEL_DLPF3_NBW_HZ   68.8f

Definition at line 383 of file ICM20948_regs.h.

◆ ACCEL_DLPF4_3DB_BW_HZ

#define ACCEL_DLPF4_3DB_BW_HZ   23.9f

Definition at line 384 of file ICM20948_regs.h.

◆ ACCEL_DLPF4_NBW_HZ

#define ACCEL_DLPF4_NBW_HZ   34.4f

Definition at line 385 of file ICM20948_regs.h.

◆ ACCEL_DLPF5_3DB_BW_HZ

#define ACCEL_DLPF5_3DB_BW_HZ   11.5f

Definition at line 386 of file ICM20948_regs.h.

◆ ACCEL_DLPF5_NBW_HZ

#define ACCEL_DLPF5_NBW_HZ   17.0f

Definition at line 387 of file ICM20948_regs.h.

◆ ACCEL_DLPF6_3DB_BW_HZ

#define ACCEL_DLPF6_3DB_BW_HZ   5.7f

Definition at line 388 of file ICM20948_regs.h.

◆ ACCEL_DLPF6_NBW_HZ

#define ACCEL_DLPF6_NBW_HZ   8.3f

Definition at line 389 of file ICM20948_regs.h.

◆ ACCEL_DLPF7_3DB_BW_HZ

#define ACCEL_DLPF7_3DB_BW_HZ   473.0f

Definition at line 390 of file ICM20948_regs.h.

◆ ACCEL_DLPF7_NBW_HZ

#define ACCEL_DLPF7_NBW_HZ   499.0f

Definition at line 391 of file ICM20948_regs.h.

◆ ACCEL_DLPF_BASE_HZ

#define ACCEL_DLPF_BASE_HZ   1125.0f

Definition at line 362 of file ICM20948_regs.h.

◆ ACCEL_DLPF_ODR_HZ

#define ACCEL_DLPF_ODR_HZ (   div)    (ACCEL_DLPF_BASE_HZ / (1.0f + (float)(div)))

Definition at line 363 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_0

#define ACCEL_DLPFCFG_0   0

ACCEL_DLPFCFG (0..7) — choose cutoff/noise BW set (when DLPF is ON). Tip: start with ACCEL_DLPFCFG_3 for a good noise/latency tradeoff.

Definition at line 345 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_1

#define ACCEL_DLPFCFG_1   1

Definition at line 346 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_2

#define ACCEL_DLPFCFG_2   2

Definition at line 347 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_3

#define ACCEL_DLPFCFG_3   3

Definition at line 348 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_4

#define ACCEL_DLPFCFG_4   4

Definition at line 349 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_5

#define ACCEL_DLPFCFG_5   5

Definition at line 350 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_6

#define ACCEL_DLPFCFG_6   6

Definition at line 351 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_7

#define ACCEL_DLPFCFG_7   7

Definition at line 352 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_MASK

#define ACCEL_DLPFCFG_MASK   (0x7u << ACCEL_DLPFCFG_SHIFT)

Definition at line 218 of file ICM20948_regs.h.

◆ ACCEL_DLPFCFG_SHIFT

#define ACCEL_DLPFCFG_SHIFT   5

Definition at line 217 of file ICM20948_regs.h.

◆ ACCEL_FCHOICE

#define ACCEL_FCHOICE   BIT(0)

Definition at line 210 of file ICM20948_regs.h.

◆ ACCEL_FCHOICE_BYPASS

#define ACCEL_FCHOICE_BYPASS   0

Path select for accel:

  • ACCEL_FCHOICE_BYPASS : DLPF bypassed (very wide BW, fastest)
  • ACCEL_FCHOICE_DLPF : DLPF enabled (use ACCEL_DLPFCFG + SMPLRT_DIV)

Definition at line 337 of file ICM20948_regs.h.

◆ ACCEL_FCHOICE_DLPF

#define ACCEL_FCHOICE_DLPF   1

Definition at line 338 of file ICM20948_regs.h.

◆ ACCEL_FS_16G

#define ACCEL_FS_16G   (3u << ACCEL_FS_SEL_SHIFT)

Definition at line 216 of file ICM20948_regs.h.

◆ ACCEL_FS_2G

#define ACCEL_FS_2G   (0u << ACCEL_FS_SEL_SHIFT)

Definition at line 213 of file ICM20948_regs.h.

◆ ACCEL_FS_4G

#define ACCEL_FS_4G   (1u << ACCEL_FS_SEL_SHIFT)

Definition at line 214 of file ICM20948_regs.h.

◆ ACCEL_FS_8G

#define ACCEL_FS_8G   (2u << ACCEL_FS_SEL_SHIFT)

Definition at line 215 of file ICM20948_regs.h.

◆ ACCEL_FS_SEL_MASK

#define ACCEL_FS_SEL_MASK   (0x3u << ACCEL_FS_SEL_SHIFT)

Definition at line 212 of file ICM20948_regs.h.

◆ ACCEL_FS_SEL_SHIFT

#define ACCEL_FS_SEL_SHIFT   1

Definition at line 211 of file ICM20948_regs.h.

◆ ACCEL_INTEL_CTRL

#define ACCEL_INTEL_CTRL   0x12 /* ACCEL_INTEL_EN ACCEL_INTEL_MODE_INT */

Definition at line 203 of file ICM20948_regs.h.

◆ ACCEL_INTEL_EN

#define ACCEL_INTEL_EN   BIT(7)

Definition at line 204 of file ICM20948_regs.h.

◆ ACCEL_INTEL_MODE_INT

#define ACCEL_INTEL_MODE_INT   BIT(6)

Definition at line 205 of file ICM20948_regs.h.

◆ ACCEL_SMPLRT_DIV_1

#define ACCEL_SMPLRT_DIV_1   0x10 /* ACCEL_SMPLRT_DIV[11:8] */

Definition at line 200 of file ICM20948_regs.h.

◆ ACCEL_SMPLRT_DIV_2

#define ACCEL_SMPLRT_DIV_2   0x11 /* ACCEL_SMPLRT_DIV[7:0] */

Definition at line 201 of file ICM20948_regs.h.

◆ ACCEL_SMPLRT_DIV_MAX

#define ACCEL_SMPLRT_DIV_MAX   4095u

Definition at line 361 of file ICM20948_regs.h.

◆ ACCEL_SMPLRT_DIV_MIN

#define ACCEL_SMPLRT_DIV_MIN   0u

Definition at line 360 of file ICM20948_regs.h.

◆ ACCEL_WOM_THR

#define ACCEL_WOM_THR   0x13 /* WOM_THRESHOLD[7:0] */

Definition at line 207 of file ICM20948_regs.h.

◆ ACCEL_XOUT_H

#define ACCEL_XOUT_H   0x2D

Definition at line 111 of file ICM20948_regs.h.

◆ ACCEL_XOUT_L

#define ACCEL_XOUT_L   0x2E

Definition at line 112 of file ICM20948_regs.h.

◆ ACCEL_YOUT_H

#define ACCEL_YOUT_H   0x2F

Definition at line 113 of file ICM20948_regs.h.

◆ ACCEL_YOUT_L

#define ACCEL_YOUT_L   0x30

Definition at line 114 of file ICM20948_regs.h.

◆ ACCEL_ZOUT_H

#define ACCEL_ZOUT_H   0x31

Definition at line 115 of file ICM20948_regs.h.

◆ ACCEL_ZOUT_L

#define ACCEL_ZOUT_L   0x32

Definition at line 116 of file ICM20948_regs.h.

◆ AK09916_I2C_ADDR

#define AK09916_I2C_ADDR   0x0C

Definition at line 310 of file ICM20948_regs.h.

◆ AK_CNTL2

#define AK_CNTL2   0x31

Definition at line 315 of file ICM20948_regs.h.

◆ AK_CNTL3

#define AK_CNTL3   0x32

Definition at line 316 of file ICM20948_regs.h.

◆ AK_HXL

#define AK_HXL   0x11

Definition at line 313 of file ICM20948_regs.h.

◆ AK_ST1

#define AK_ST1   0x10

Definition at line 312 of file ICM20948_regs.h.

◆ AK_ST2

#define AK_ST2   0x18

Definition at line 314 of file ICM20948_regs.h.

◆ AK_WIA2

#define AK_WIA2   0x01

Definition at line 311 of file ICM20948_regs.h.

◆ AK_WIA2_VAL

#define AK_WIA2_VAL   0x09 /* AK09916C WIA2 expected */

Definition at line 317 of file ICM20948_regs.h.

◆ AUTO_SEL

#define AUTO_SEL   0x01 /* 1–5: Auto/PLL preferred (use 1 as default) */

Definition at line 320 of file ICM20948_regs.h.

◆ AX_ST_EN_REG

#define AX_ST_EN_REG   BIT(7)

Definition at line 221 of file ICM20948_regs.h.

◆ AY_ST_EN_REG

#define AY_ST_EN_REG   BIT(6)

Definition at line 222 of file ICM20948_regs.h.

◆ AZ_ST_EN_REG

#define AZ_ST_EN_REG   BIT(5)

Definition at line 223 of file ICM20948_regs.h.

◆ BANK1_REG_BANK_SEL

#define BANK1_REG_BANK_SEL   0x7F /* mirror of REG_BANK_SEL */

Definition at line 163 of file ICM20948_regs.h.

◆ BANK2_REG_BANK_SEL

#define BANK2_REG_BANK_SEL   0x7F /* mirror of REG_BANK_SEL */

Definition at line 240 of file ICM20948_regs.h.

◆ BANK3_REG_BANK_SEL

#define BANK3_REG_BANK_SEL   0x7F /* mirror of REG_BANK_SEL */

Definition at line 296 of file ICM20948_regs.h.

◆ BYPASS_EN

#define BYPASS_EN   BIT(1) /* I2C bypass to aux devices */

Definition at line 71 of file ICM20948_regs.h.

◆ CLK_STOP

#define CLK_STOP   0x07 /* 7: Stop clock / timing gen reset */

Definition at line 321 of file ICM20948_regs.h.

◆ DEC3_CFG_MASK

#define DEC3_CFG_MASK   (0x3u << DEC3_CFG_SHIFT)

Definition at line 225 of file ICM20948_regs.h.

◆ DEC3_CFG_SHIFT

#define DEC3_CFG_SHIFT   0

Definition at line 224 of file ICM20948_regs.h.

◆ DELAY_ES_SHADOW

#define DELAY_ES_SHADOW   BIT(7)

Definition at line 256 of file ICM20948_regs.h.

◆ DELAY_TIME_EN

#define DELAY_TIME_EN   BIT(7)

Definition at line 228 of file ICM20948_regs.h.

◆ DELAY_TIMEH

#define DELAY_TIMEH   0x28

Definition at line 107 of file ICM20948_regs.h.

◆ DELAY_TIMEL

#define DELAY_TIMEL   0x29

Definition at line 108 of file ICM20948_regs.h.

◆ dps1000

#define dps1000   2

Definition at line 398 of file ICM20948_regs.h.

◆ dps2000

#define dps2000   3

Definition at line 399 of file ICM20948_regs.h.

◆ dps250

#define dps250   0
  • ±250/±500/±1000/±2000 dps (maps to FS_SEL 0..3)

Definition at line 396 of file ICM20948_regs.h.

◆ dps500

#define dps500   1

Definition at line 397 of file ICM20948_regs.h.

◆ EnhancedRegular

#define EnhancedRegular   2

Definition at line 456 of file ICM20948_regs.h.

◆ EXT_SLV_SENS_DATA_00

#define EXT_SLV_SENS_DATA_00   0x3B

Definition at line 127 of file ICM20948_regs.h.

◆ EXT_SLV_SENS_DATA_23

#define EXT_SLV_SENS_DATA_23   0x52 /* contiguous range 0x3B..0x52 */

Definition at line 128 of file ICM20948_regs.h.

◆ EXT_SYNC_SET_MASK

#define EXT_SYNC_SET_MASK   0x0F

Definition at line 231 of file ICM20948_regs.h.

◆ FIFO_CFG

#define FIFO_CFG   0x76

Definition at line 138 of file ICM20948_regs.h.

◆ FIFO_COUNTH

#define FIFO_COUNTH   0x70

Definition at line 134 of file ICM20948_regs.h.

◆ FIFO_COUNTL

#define FIFO_COUNTL   0x71

Definition at line 135 of file ICM20948_regs.h.

◆ FIFO_EN_1

#define FIFO_EN_1   0x66 /* SLV3..SLV0 FIFO_EN */

Definition at line 130 of file ICM20948_regs.h.

◆ FIFO_EN_2

#define FIFO_EN_2   0x67 /* ACCEL GYRO_Z/Y/X TEMP FIFO_EN */

Definition at line 131 of file ICM20948_regs.h.

◆ FIFO_MODE

#define FIFO_MODE   0x69 /* FIFO_MODE[4:0] */

Definition at line 133 of file ICM20948_regs.h.

◆ FIFO_R_W

#define FIFO_R_W   0x72

Definition at line 136 of file ICM20948_regs.h.

◆ FIFO_RST

#define FIFO_RST   0x68 /* FIFO_RESET[4:0] */

Definition at line 132 of file ICM20948_regs.h.

◆ FSYNC_CONFIG

#define FSYNC_CONFIG   0x52 /* DELAY_TIME_EN WOF_DEGLITCH_EN WOF_EDGE_INT EXT_SYNC_SET[3:0] */

Definition at line 227 of file ICM20948_regs.h.

◆ FSYNC_INT_MODE_EN

#define FSYNC_INT_MODE_EN   BIT(2)

Definition at line 70 of file ICM20948_regs.h.

◆ g16

#define g16   3

Definition at line 329 of file ICM20948_regs.h.

◆ g2

#define g2   0
  • ±2g / ±4g / ±8g / ±16g (maps to FS_SEL 0..3)

Definition at line 326 of file ICM20948_regs.h.

◆ g4

#define g4   1

Definition at line 327 of file ICM20948_regs.h.

◆ g8

#define g8   2

Definition at line 328 of file ICM20948_regs.h.

◆ GYRO_AVGCFG_MASK

#define GYRO_AVGCFG_MASK   (0x7u << GYRO_AVGCFG_SHIFT)

Definition at line 188 of file ICM20948_regs.h.

◆ GYRO_AVGCFG_SHIFT

#define GYRO_AVGCFG_SHIFT   0

Definition at line 187 of file ICM20948_regs.h.

◆ GYRO_BW_MEDIUM

#define GYRO_BW_MEDIUM   2 /* e.g., CFG 2/3 */

Definition at line 435 of file ICM20948_regs.h.

◆ GYRO_BW_NARROW

#define GYRO_BW_NARROW   3 /* e.g., CFG 4/5/6/7 */

Definition at line 436 of file ICM20948_regs.h.

◆ GYRO_BW_ULTRA_WIDE

#define GYRO_BW_ULTRA_WIDE   0 /* bypass path */

Definition at line 433 of file ICM20948_regs.h.

◆ GYRO_BW_WIDE

#define GYRO_BW_WIDE   1 /* e.g., CFG 0/1 */

Definition at line 434 of file ICM20948_regs.h.

◆ GYRO_CONFIG_1

#define GYRO_CONFIG_1   0x01 /* GYRO_DLPFCFG[2:0] GYRO_FS_SEL[1:0] GYRO_FCHOICE */

Definition at line 172 of file ICM20948_regs.h.

◆ GYRO_CONFIG_2

#define GYRO_CONFIG_2   0x02 /* XGYRO_CTEN YGYRO_CTEN ZGYRO_CTEN GYRO_AVGCFG[2:0] */

Definition at line 183 of file ICM20948_regs.h.

◆ GYRO_DLPF_BASE_HZ

#define GYRO_DLPF_BASE_HZ   1100.0f

Definition at line 426 of file ICM20948_regs.h.

◆ GYRO_DLPF_ODR_HZ

#define GYRO_DLPF_ODR_HZ (   rate_request)    (rate_request) /* symbolic; your driver computes DIV = round(1100/rate)-1 */

Definition at line 427 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_0

#define GYRO_DLPFCFG_0   0

GYRO_DLPFCFG (0..7) — choose cutoff/noise BW set (when DLPF is ON). Tip: start with GYRO_DLPFCFG_3 or _2 for balanced noise/latency.

Definition at line 415 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_1

#define GYRO_DLPFCFG_1   1

Definition at line 416 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_2

#define GYRO_DLPFCFG_2   2

Definition at line 417 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_3

#define GYRO_DLPFCFG_3   3

Definition at line 418 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_4

#define GYRO_DLPFCFG_4   4

Definition at line 419 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_5

#define GYRO_DLPFCFG_5   5

Definition at line 420 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_6

#define GYRO_DLPFCFG_6   6

Definition at line 421 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_7

#define GYRO_DLPFCFG_7   7

Definition at line 422 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_MASK

#define GYRO_DLPFCFG_MASK   (0x7u << GYRO_DLPFCFG_SHIFT)

Definition at line 181 of file ICM20948_regs.h.

◆ GYRO_DLPFCFG_SHIFT

#define GYRO_DLPFCFG_SHIFT   5

Definition at line 180 of file ICM20948_regs.h.

◆ GYRO_FCHOICE

#define GYRO_FCHOICE   BIT(0) /* when 0: DLPF on, when 1: off (per datasheet) */

Definition at line 173 of file ICM20948_regs.h.

◆ GYRO_FCHOICE_BYPASS

#define GYRO_FCHOICE_BYPASS   0

Path select for gyro:

  • GYRO_FCHOICE_BYPASS : DLPF bypassed (widest BW, fastest)
  • GYRO_FCHOICE_DLPF : DLPF enabled (use GYRO_DLPFCFG + SMPLRT_DIV)

Definition at line 407 of file ICM20948_regs.h.

◆ GYRO_FCHOICE_DLPF

#define GYRO_FCHOICE_DLPF   1

Definition at line 408 of file ICM20948_regs.h.

◆ GYRO_FS_1000DPS

#define GYRO_FS_1000DPS   (2u << GYRO_FS_SEL_SHIFT)

Definition at line 178 of file ICM20948_regs.h.

◆ GYRO_FS_2000DPS

#define GYRO_FS_2000DPS   (3u << GYRO_FS_SEL_SHIFT)

Definition at line 179 of file ICM20948_regs.h.

◆ GYRO_FS_250DPS

#define GYRO_FS_250DPS   (0u << GYRO_FS_SEL_SHIFT)

Definition at line 176 of file ICM20948_regs.h.

◆ GYRO_FS_500DPS

#define GYRO_FS_500DPS   (1u << GYRO_FS_SEL_SHIFT)

Definition at line 177 of file ICM20948_regs.h.

◆ GYRO_FS_SEL_MASK

#define GYRO_FS_SEL_MASK   (0x3u << GYRO_FS_SEL_SHIFT)

Definition at line 175 of file ICM20948_regs.h.

◆ GYRO_FS_SEL_SHIFT

#define GYRO_FS_SEL_SHIFT   1

Definition at line 174 of file ICM20948_regs.h.

◆ GYRO_SMPLRT_DIV

#define GYRO_SMPLRT_DIV   0x00 /* GYRO_SMPLRT_DIV[7:0] */
  • Gyro/Accel configuration, offsets, FSYNC, temperature filter

Definition at line 170 of file ICM20948_regs.h.

◆ GYRO_SMPLRT_MIN_HZ

#define GYRO_SMPLRT_MIN_HZ   4.3f

Definition at line 425 of file ICM20948_regs.h.

◆ GYRO_XOUT_H

#define GYRO_XOUT_H   0x33

Definition at line 117 of file ICM20948_regs.h.

◆ GYRO_XOUT_L

#define GYRO_XOUT_L   0x34

Definition at line 118 of file ICM20948_regs.h.

◆ GYRO_YOUT_H

#define GYRO_YOUT_H   0x35

Definition at line 119 of file ICM20948_regs.h.

◆ GYRO_YOUT_L

#define GYRO_YOUT_L   0x36

Definition at line 120 of file ICM20948_regs.h.

◆ GYRO_ZOUT_H

#define GYRO_ZOUT_H   0x37

Definition at line 121 of file ICM20948_regs.h.

◆ GYRO_ZOUT_L

#define GYRO_ZOUT_L   0x38

Definition at line 122 of file ICM20948_regs.h.

◆ HighAccuracy

#define HighAccuracy   3

Definition at line 457 of file ICM20948_regs.h.

◆ Hz10

#define Hz10   3

Definition at line 443 of file ICM20948_regs.h.

◆ Hz15

#define Hz15   4

Definition at line 444 of file ICM20948_regs.h.

◆ Hz2

#define Hz2   0
  • Friendly ODR presets you can map to dividers

Definition at line 440 of file ICM20948_regs.h.

◆ Hz20

#define Hz20   5

Definition at line 445 of file ICM20948_regs.h.

◆ Hz25

#define Hz25   6

Definition at line 446 of file ICM20948_regs.h.

◆ Hz30

#define Hz30   7

Definition at line 447 of file ICM20948_regs.h.

◆ Hz6

#define Hz6   1

Definition at line 441 of file ICM20948_regs.h.

◆ Hz8

#define Hz8   2

Definition at line 442 of file ICM20948_regs.h.

◆ I2C_MST_CLK_MASK

#define I2C_MST_CLK_MASK   0x0F

Definition at line 253 of file ICM20948_regs.h.

◆ I2C_MST_CTRL

#define I2C_MST_CTRL   0x01 /* MULT_MST_EN - I2C_MST_P_NSR I2C_MST_CLK[3:0] */

Definition at line 250 of file ICM20948_regs.h.

◆ I2C_MST_DELAY_CTRL

#define I2C_MST_DELAY_CTRL   0x02 /* DELAY_ES_SHADOW + I2C_SLVx_DELAY_EN bits */

Definition at line 255 of file ICM20948_regs.h.

◆ I2C_MST_ODR_CONFIG

#define I2C_MST_ODR_CONFIG   0x00 /* I2C_MST_ODR_CONFIG[3:0] */
  • I2C master (aux) interface and slave windows

Definition at line 247 of file ICM20948_regs.h.

◆ I2C_MST_P_NSR

#define I2C_MST_P_NSR   BIT(4)

Definition at line 252 of file ICM20948_regs.h.

◆ I2C_MST_STATUS

#define I2C_MST_STATUS   0x17 /* PASS_THROUGH, *_DONE, *_NACK, LOST_ARB */

Definition at line 86 of file ICM20948_regs.h.

◆ I2C_SLV0_ADDR

#define I2C_SLV0_ADDR   0x03 /* RNW + ID[6:0] */

Definition at line 263 of file ICM20948_regs.h.

◆ I2C_SLV0_CTRL

#define I2C_SLV0_CTRL   0x05 /* EN BYTE_SW REG_DIS GRP LENG[3:0] */

Definition at line 266 of file ICM20948_regs.h.

◆ I2C_SLV0_DELAY_EN

#define I2C_SLV0_DELAY_EN   BIT(0)

Definition at line 261 of file ICM20948_regs.h.

◆ I2C_SLV0_DO

#define I2C_SLV0_DO   0x06

Definition at line 272 of file ICM20948_regs.h.

◆ I2C_SLV0_REG

#define I2C_SLV0_REG   0x04

Definition at line 265 of file ICM20948_regs.h.

◆ I2C_SLV1_ADDR

#define I2C_SLV1_ADDR   0x07

Definition at line 274 of file ICM20948_regs.h.

◆ I2C_SLV1_CTRL

#define I2C_SLV1_CTRL   0x09

Definition at line 276 of file ICM20948_regs.h.

◆ I2C_SLV1_DELAY_EN

#define I2C_SLV1_DELAY_EN   BIT(1)

Definition at line 260 of file ICM20948_regs.h.

◆ I2C_SLV1_DO

#define I2C_SLV1_DO   0x0A

Definition at line 277 of file ICM20948_regs.h.

◆ I2C_SLV1_REG

#define I2C_SLV1_REG   0x08

Definition at line 275 of file ICM20948_regs.h.

◆ I2C_SLV2_ADDR

#define I2C_SLV2_ADDR   0x0B

Definition at line 279 of file ICM20948_regs.h.

◆ I2C_SLV2_CTRL

#define I2C_SLV2_CTRL   0x0D

Definition at line 281 of file ICM20948_regs.h.

◆ I2C_SLV2_DELAY_EN

#define I2C_SLV2_DELAY_EN   BIT(2)

Definition at line 259 of file ICM20948_regs.h.

◆ I2C_SLV2_DO

#define I2C_SLV2_DO   0x0E

Definition at line 282 of file ICM20948_regs.h.

◆ I2C_SLV2_REG

#define I2C_SLV2_REG   0x0C

Definition at line 280 of file ICM20948_regs.h.

◆ I2C_SLV3_ADDR

#define I2C_SLV3_ADDR   0x0F

Definition at line 284 of file ICM20948_regs.h.

◆ I2C_SLV3_CTRL

#define I2C_SLV3_CTRL   0x11

Definition at line 286 of file ICM20948_regs.h.

◆ I2C_SLV3_DELAY_EN

#define I2C_SLV3_DELAY_EN   BIT(3)

Definition at line 258 of file ICM20948_regs.h.

◆ I2C_SLV3_DO

#define I2C_SLV3_DO   0x12

Definition at line 287 of file ICM20948_regs.h.

◆ I2C_SLV3_REG

#define I2C_SLV3_REG   0x10

Definition at line 285 of file ICM20948_regs.h.

◆ I2C_SLV4_ADDR

#define I2C_SLV4_ADDR   0x13

Definition at line 289 of file ICM20948_regs.h.

◆ I2C_SLV4_CTRL

#define I2C_SLV4_CTRL   0x15 /* EN BYTE_SW REG_DIS DLY[4:0] */

Definition at line 291 of file ICM20948_regs.h.

◆ I2C_SLV4_DELAY_EN

#define I2C_SLV4_DELAY_EN   BIT(4)

Definition at line 257 of file ICM20948_regs.h.

◆ I2C_SLV4_DI

#define I2C_SLV4_DI   0x17

Definition at line 294 of file ICM20948_regs.h.

◆ I2C_SLV4_DLY_MASK

#define I2C_SLV4_DLY_MASK   0x1F

Definition at line 292 of file ICM20948_regs.h.

◆ I2C_SLV4_DO

#define I2C_SLV4_DO   0x16

Definition at line 293 of file ICM20948_regs.h.

◆ I2C_SLV4_REG

#define I2C_SLV4_REG   0x14

Definition at line 290 of file ICM20948_regs.h.

◆ I2C_SLVx_BYTE_SW

#define I2C_SLVx_BYTE_SW   BIT(6)

Definition at line 268 of file ICM20948_regs.h.

◆ I2C_SLVx_EN

#define I2C_SLVx_EN   BIT(7)

Definition at line 267 of file ICM20948_regs.h.

◆ I2C_SLVx_GRP

#define I2C_SLVx_GRP   BIT(4)

Definition at line 270 of file ICM20948_regs.h.

◆ I2C_SLVx_LENG_MASK

#define I2C_SLVx_LENG_MASK   0x0F

Definition at line 271 of file ICM20948_regs.h.

◆ I2C_SLVx_REG_DIS

#define I2C_SLVx_REG_DIS   BIT(5)

Definition at line 269 of file ICM20948_regs.h.

◆ I2C_SLVx_RNW

#define I2C_SLVx_RNW   BIT(7)

Definition at line 264 of file ICM20948_regs.h.

◆ INT1_ACTL

#define INT1_ACTL   BIT(7) /* active low */

Definition at line 65 of file ICM20948_regs.h.

◆ INT1_LATCH_INT_EN

#define INT1_LATCH_INT_EN   BIT(5) /* latch until status read */

Definition at line 67 of file ICM20948_regs.h.

◆ INT1_OPEN

#define INT1_OPEN   BIT(6) /* open-drain */

Definition at line 66 of file ICM20948_regs.h.

◆ INT_ACTL_FSYNC

#define INT_ACTL_FSYNC   BIT(3)

Definition at line 69 of file ICM20948_regs.h.

◆ INT_ANYRD_2CLEAR

#define INT_ANYRD_2CLEAR   BIT(4)

Definition at line 68 of file ICM20948_regs.h.

◆ INT_DMP_INT1_EN

#define INT_DMP_INT1_EN   BIT(1)

Definition at line 77 of file ICM20948_regs.h.

◆ INT_ENABLE

#define INT_ENABLE   0x10 /* REG_WOF_EN - WOM_INT_EN PLL_RDY_EN DMP_INT1_EN I2C_MST_INT_EN */

Definition at line 73 of file ICM20948_regs.h.

◆ INT_ENABLE_1

#define INT_ENABLE_1   0x11 /* RAW_DATA_0_RDY_EN */

Definition at line 80 of file ICM20948_regs.h.

◆ INT_ENABLE_2

#define INT_ENABLE_2   0x12 /* FIFO_OVERFLOW_EN[4:0] */

Definition at line 83 of file ICM20948_regs.h.

◆ INT_ENABLE_3

#define INT_ENABLE_3   0x13 /* FIFO_WM_EN[4:0] */

Definition at line 84 of file ICM20948_regs.h.

◆ INT_I2C_MST_INT_EN

#define INT_I2C_MST_INT_EN   BIT(0)

Definition at line 78 of file ICM20948_regs.h.

◆ INT_PIN_CFG

#define INT_PIN_CFG   0x0F /* INT1_ACTL INT1_OPEN INT1_LATCH_INT_EN INT_ANYRD_2CLEAR ACTL_FSYNC FSYNC_INT_MODE_EN BYPASS_EN - */

Definition at line 64 of file ICM20948_regs.h.

◆ INT_PLL_RDY_EN

#define INT_PLL_RDY_EN   BIT(2)

Definition at line 76 of file ICM20948_regs.h.

◆ INT_RAW_DATA_0_RDY_EN

#define INT_RAW_DATA_0_RDY_EN   BIT(0)

Definition at line 81 of file ICM20948_regs.h.

◆ INT_REG_WOF_EN

#define INT_REG_WOF_EN   BIT(7)

Definition at line 74 of file ICM20948_regs.h.

◆ INT_STATUS

#define INT_STATUS   0x19 /* WOM_INT PLL_RDY_INT DMP_INT1 I2C_MST_INT */

Definition at line 96 of file ICM20948_regs.h.

◆ INT_STATUS_1

#define INT_STATUS_1   0x1A /* RAW_DATA_0_RDY_INT */

Definition at line 102 of file ICM20948_regs.h.

◆ INT_STATUS_2

#define INT_STATUS_2   0x1B /* FIFO_OVERFLOW_INT[4:0] */

Definition at line 104 of file ICM20948_regs.h.

◆ INT_STATUS_3

#define INT_STATUS_3   0x1C /* FIFO_WM_INT[4:0] */

Definition at line 105 of file ICM20948_regs.h.

◆ INT_WOM_INT_EN

#define INT_WOM_INT_EN   BIT(3)

Definition at line 75 of file ICM20948_regs.h.

◆ INTERNAL_20MHZ

#define INTERNAL_20MHZ   0x00 /* 0: Internal 20 MHz RC */

Definition at line 319 of file ICM20948_regs.h.

◆ LowPower

#define LowPower   0

Generic power or fusion quality modes (BNO-style). Map to sensor-specific sequences inside your driver.

Definition at line 454 of file ICM20948_regs.h.

◆ LP_ACCEL_CYCLE

#define LP_ACCEL_CYCLE   BIT(5)

Definition at line 47 of file ICM20948_regs.h.

◆ LP_CONFIG

#define LP_CONFIG   0x05 /* I2C_MST_CYCLE ACCEL_CYCLE GYRO_CYCLE - */

Definition at line 45 of file ICM20948_regs.h.

◆ LP_GYRO_CYCLE

#define LP_GYRO_CYCLE   BIT(4)

Definition at line 48 of file ICM20948_regs.h.

◆ LP_I2C_MST_CYCLE

#define LP_I2C_MST_CYCLE   BIT(6)

Definition at line 46 of file ICM20948_regs.h.

◆ MOD_CTRL_USR

#define MOD_CTRL_USR   0x54 /* REG_LP_DMP_EN */

Definition at line 237 of file ICM20948_regs.h.

◆ MST_LOST_ARB

#define MST_LOST_ARB   BIT(5)

Definition at line 89 of file ICM20948_regs.h.

◆ MST_ODR_CFG_MASK

#define MST_ODR_CFG_MASK   0x0F

Definition at line 248 of file ICM20948_regs.h.

◆ MST_PASS_THROUGH

#define MST_PASS_THROUGH   BIT(7)

Definition at line 87 of file ICM20948_regs.h.

◆ MST_SLV0_NACK

#define MST_SLV0_NACK   BIT(0)

Definition at line 94 of file ICM20948_regs.h.

◆ MST_SLV1_NACK

#define MST_SLV1_NACK   BIT(1)

Definition at line 93 of file ICM20948_regs.h.

◆ MST_SLV2_NACK

#define MST_SLV2_NACK   BIT(2)

Definition at line 92 of file ICM20948_regs.h.

◆ MST_SLV3_NACK

#define MST_SLV3_NACK   BIT(3)

Definition at line 91 of file ICM20948_regs.h.

◆ MST_SLV4_DONE

#define MST_SLV4_DONE   BIT(6)

Definition at line 88 of file ICM20948_regs.h.

◆ MST_SLV4_NACK

#define MST_SLV4_NACK   BIT(4)

Definition at line 90 of file ICM20948_regs.h.

◆ MULT_MST_EN

#define MULT_MST_EN   BIT(7)

Definition at line 251 of file ICM20948_regs.h.

◆ ODR_ALIGN_EN

#define ODR_ALIGN_EN   0x09 /* ODR_ALIGN_EN */

Definition at line 197 of file ICM20948_regs.h.

◆ ODR_ALIGN_EN_BIT

#define ODR_ALIGN_EN_BIT   BIT(0)

Definition at line 198 of file ICM20948_regs.h.

◆ PWR_CLKSEL_AUTO

#define PWR_CLKSEL_AUTO   0x01 /* typical: auto selects best source */

Definition at line 57 of file ICM20948_regs.h.

◆ PWR_CLKSEL_INT_20MHZ

#define PWR_CLKSEL_INT_20MHZ   0x01

Definition at line 56 of file ICM20948_regs.h.

◆ PWR_CLKSEL_MASK

#define PWR_CLKSEL_MASK   0x07

Definition at line 55 of file ICM20948_regs.h.

◆ PWR_DEVICE_RESET

#define PWR_DEVICE_RESET   BIT(7)

Definition at line 51 of file ICM20948_regs.h.

◆ PWR_DISABLE_ACCEL

#define PWR_DISABLE_ACCEL   BIT(3)

Definition at line 60 of file ICM20948_regs.h.

◆ PWR_DISABLE_GYRO

#define PWR_DISABLE_GYRO   BIT(0)

Definition at line 61 of file ICM20948_regs.h.

◆ PWR_LP_EN

#define PWR_LP_EN   BIT(5)

Definition at line 53 of file ICM20948_regs.h.

◆ PWR_MGMT_1

#define PWR_MGMT_1   0x06 /* DEVICE_RESET SLEEP LP_EN - TEMP_DIS CLKSEL[2:0] */

Definition at line 50 of file ICM20948_regs.h.

◆ PWR_MGMT_2

#define PWR_MGMT_2   0x07 /* - DISABLE_ACCEL DISABLE_GYRO */

Definition at line 59 of file ICM20948_regs.h.

◆ PWR_SLEEP

#define PWR_SLEEP   BIT(6)

Definition at line 52 of file ICM20948_regs.h.

◆ PWR_TEMP_DIS

#define PWR_TEMP_DIS   BIT(3)

Definition at line 54 of file ICM20948_regs.h.

◆ REG_BANK_SEL

#define REG_BANK_SEL   0x7F /* USER_BANK[1:0] */

Definition at line 140 of file ICM20948_regs.h.

◆ REG_BANK_SEL_USER_BANK_MASK

#define REG_BANK_SEL_USER_BANK_MASK   (0x3u << REG_BANK_SEL_USER_BANK_SHIFT)

Definition at line 303 of file ICM20948_regs.h.

◆ REG_BANK_SEL_USER_BANK_SHIFT

#define REG_BANK_SEL_USER_BANK_SHIFT   4

Definition at line 302 of file ICM20948_regs.h.

◆ REG_LP_DMP_EN

#define REG_LP_DMP_EN   BIT(7)

Definition at line 238 of file ICM20948_regs.h.

◆ Regular

#define Regular   1

Definition at line 455 of file ICM20948_regs.h.

◆ SELF_TEST_X_ACCEL

#define SELF_TEST_X_ACCEL   0x0E /* XA_ST_DATA[7:0] */

Definition at line 150 of file ICM20948_regs.h.

◆ SELF_TEST_X_GYRO

#define SELF_TEST_X_GYRO   0x02 /* XG_ST_DATA[7:0] */
  • Self-test / accel offsets / timebase

Definition at line 147 of file ICM20948_regs.h.

◆ SELF_TEST_Y_ACCEL

#define SELF_TEST_Y_ACCEL   0x0F /* YA_ST_DATA[7:0] */

Definition at line 151 of file ICM20948_regs.h.

◆ SELF_TEST_Y_GYRO

#define SELF_TEST_Y_GYRO   0x03 /* YG_ST_DATA[7:0] */

Definition at line 148 of file ICM20948_regs.h.

◆ SELF_TEST_Z_ACCEL

#define SELF_TEST_Z_ACCEL   0x10 /* ZA_ST_DATA[7:0] */

Definition at line 152 of file ICM20948_regs.h.

◆ SELF_TEST_Z_GYRO

#define SELF_TEST_Z_GYRO   0x04 /* ZG_ST_DATA[7:0] */

Definition at line 149 of file ICM20948_regs.h.

◆ STS_DMP_INT1

#define STS_DMP_INT1   BIT(1)

Definition at line 99 of file ICM20948_regs.h.

◆ STS_I2C_MST_INT

#define STS_I2C_MST_INT   BIT(0)

Definition at line 100 of file ICM20948_regs.h.

◆ STS_PLL_RDY_INT

#define STS_PLL_RDY_INT   BIT(2)

Definition at line 98 of file ICM20948_regs.h.

◆ STS_RAW_DATA_0_RDY_INT

#define STS_RAW_DATA_0_RDY_INT   BIT(0)

Definition at line 103 of file ICM20948_regs.h.

◆ STS_WOM_INT

#define STS_WOM_INT   BIT(3)

Definition at line 97 of file ICM20948_regs.h.

◆ TEMP_CONFIG

#define TEMP_CONFIG   0x53 /* TEMP_DLPFCFG[2:0] */

Definition at line 233 of file ICM20948_regs.h.

◆ TEMP_DLPFCFG_MASK

#define TEMP_DLPFCFG_MASK   (0x7u << TEMP_DLPFCFG_SHIFT)

Definition at line 235 of file ICM20948_regs.h.

◆ TEMP_DLPFCFG_SHIFT

#define TEMP_DLPFCFG_SHIFT   5

Definition at line 234 of file ICM20948_regs.h.

◆ TEMP_OUT_H

#define TEMP_OUT_H   0x39

Definition at line 123 of file ICM20948_regs.h.

◆ TEMP_OUT_L

#define TEMP_OUT_L   0x3A

Definition at line 124 of file ICM20948_regs.h.

◆ TIMEBASE_CORRECTION_PLL

#define TIMEBASE_CORRECTION_PLL   0x28 /* TBC_PLL[7:0] */

Definition at line 161 of file ICM20948_regs.h.

◆ USER_BANK_0

#define USER_BANK_0   BANK0

Definition at line 304 of file ICM20948_regs.h.

◆ USER_BANK_1

#define USER_BANK_1   BANK1

Definition at line 305 of file ICM20948_regs.h.

◆ USER_BANK_2

#define USER_BANK_2   BANK2

Definition at line 306 of file ICM20948_regs.h.

◆ USER_BANK_3

#define USER_BANK_3   BANK3

Definition at line 307 of file ICM20948_regs.h.

◆ USER_CTRL

#define USER_CTRL   0x03 /* DMP_EN FIFO_EN I2C_MST_EN I2C_IF_DIS DMP_RST SRAM_RST I2C_MST_RST - */

Definition at line 35 of file ICM20948_regs.h.

◆ USER_CTRL_DMP_EN

#define USER_CTRL_DMP_EN   BIT(7)

Definition at line 37 of file ICM20948_regs.h.

◆ USER_CTRL_DMP_RST

#define USER_CTRL_DMP_RST   BIT(3)

Definition at line 41 of file ICM20948_regs.h.

◆ USER_CTRL_FIFO_EN

#define USER_CTRL_FIFO_EN   BIT(6)

Definition at line 38 of file ICM20948_regs.h.

◆ USER_CTRL_I2C_IF_DIS

#define USER_CTRL_I2C_IF_DIS   BIT(4)

Definition at line 40 of file ICM20948_regs.h.

◆ USER_CTRL_I2C_MST_EN

#define USER_CTRL_I2C_MST_EN   BIT(5)

Definition at line 39 of file ICM20948_regs.h.

◆ USER_CTRL_I2C_MST_RST

#define USER_CTRL_I2C_MST_RST   BIT(1)

Definition at line 43 of file ICM20948_regs.h.

◆ USER_CTRL_SRAM_RST

#define USER_CTRL_SRAM_RST   BIT(2)

Definition at line 42 of file ICM20948_regs.h.

◆ WHO_AM_I

#define WHO_AM_I   0x00 /* WHO_AM_I[7:0] */

7Semi comment style

  • Full ICM-20948 register map (Banks 0–3) + key bit fields
  • Simple, portable #defines for firmware use
  • Datasheet naming kept where practical; fields grouped by bank

Notes

  • WHO_AM_I expected value: 0xEA
  • Select register bank via REG_BANK_SEL in any bank
  • Use BANK(n) helper or write raw values 0x00/0x10/0x20/0x30
  • Identity / power / interrupts / sensor data

Definition at line 32 of file ICM20948_regs.h.

◆ WHO_AM_I_VAL

#define WHO_AM_I_VAL   0xEA

Definition at line 33 of file ICM20948_regs.h.

◆ WOF_DEGLITCH_EN

#define WOF_DEGLITCH_EN   BIT(6)

Definition at line 229 of file ICM20948_regs.h.

◆ WOF_EDGE_INT

#define WOF_EDGE_INT   BIT(5)

Definition at line 230 of file ICM20948_regs.h.

◆ XA_OFFS_H

#define XA_OFFS_H   0x14 /* XA_OFFS[14:7] */

Definition at line 154 of file ICM20948_regs.h.

◆ XA_OFFS_L

#define XA_OFFS_L   0x15 /* XA_OFFS[6:0] */

Definition at line 155 of file ICM20948_regs.h.

◆ XG_OFFS_USRH

#define XG_OFFS_USRH   0x03

Definition at line 190 of file ICM20948_regs.h.

◆ XG_OFFS_USRL

#define XG_OFFS_USRL   0x04

Definition at line 191 of file ICM20948_regs.h.

◆ XGYRO_CTEN

#define XGYRO_CTEN   BIT(5)

Definition at line 184 of file ICM20948_regs.h.

◆ YA_OFFS_H

#define YA_OFFS_H   0x17 /* YA_OFFS[14:7] */

Definition at line 156 of file ICM20948_regs.h.

◆ YA_OFFS_L

#define YA_OFFS_L   0x18 /* YA_OFFS[6:0] */

Definition at line 157 of file ICM20948_regs.h.

◆ YG_OFFS_USRH

#define YG_OFFS_USRH   0x05

Definition at line 192 of file ICM20948_regs.h.

◆ YG_OFFS_USRL

#define YG_OFFS_USRL   0x06

Definition at line 193 of file ICM20948_regs.h.

◆ YGYRO_CTEN

#define YGYRO_CTEN   BIT(4)

Definition at line 185 of file ICM20948_regs.h.

◆ ZA_OFFS_H

#define ZA_OFFS_H   0x1A /* ZA_OFFS[14:7] */

Definition at line 158 of file ICM20948_regs.h.

◆ ZA_OFFS_L

#define ZA_OFFS_L   0x1B /* ZA_OFFS[6:0] */

Definition at line 159 of file ICM20948_regs.h.

◆ ZG_OFFS_USRH

#define ZG_OFFS_USRH   0x07

Definition at line 194 of file ICM20948_regs.h.

◆ ZG_OFFS_USRL

#define ZG_OFFS_USRL   0x08

Definition at line 195 of file ICM20948_regs.h.

◆ ZGYRO_CTEN

#define ZGYRO_CTEN   BIT(3)

Definition at line 186 of file ICM20948_regs.h.