Register definitions#

Register definitions.

ICM20648 register banks#

#define

Register bank 0.

#define

Register bank 1.

#define

Register bank 2.

#define

Register bank 3.

Register and associated bit definitions#

#define
ICM20648_REG_WHO_AM_I (ICM20648_BANK_0 | 0x00)

Device ID register

#define
ICM20648_REG_USER_CTRL (ICM20648_BANK_0 | 0x03)

User control register

#define

DMP enable bit

#define

FIFO enable bit

#define

I2C master I/F enable bit

#define

Disable I2C, enable SPI bit

#define

DMP module reset bit

#define

SRAM module reset bit

#define
ICM20648_REG_LP_CONFIG (ICM20648_BANK_0 | 0x05)

Low Power mode config register

#define

I2C master cycle mode enable

#define

Accelerometer cycle mode enable

#define

Gyroscope cycle mode enable

#define
ICM20648_REG_PWR_MGMT_1 (ICM20648_BANK_0 | 0x06)

Power Management 1 register

#define

Device reset bit

#define

Sleep mode enable bit

#define

Low Power feature enable bit

#define

Temperature sensor disable bit

#define

Auto clock source selection setting

#define
ICM20648_REG_PWR_MGMT_2 (ICM20648_BANK_0 | 0x07)

Power Management 2 register

#define

Disable accelerometer

#define

Disable gyroscope

#define

Disable both accel and gyro

#define
ICM20648_REG_INT_PIN_CFG (ICM20648_BANK_0 | 0x0F)

Interrupt Pin Configuration register

#define

Active low setting bit

#define

Open collector configuration bit

#define

Latch enable bit

#define
ICM20648_REG_INT_ENABLE (ICM20648_BANK_0 | 0x10)

Interrupt Enable register

#define

Wake-up On Motion enable bit

#define
ICM20648_REG_INT_ENABLE_1 (ICM20648_BANK_0 | 0x11)

Interrupt Enable 1 register

#define

Raw data ready interrupt enable bit

#define
ICM20648_REG_INT_ENABLE_2 (ICM20648_BANK_0 | 0x12)

Interrupt Enable 2 register

#define

FIFO overflow interrupt enable bit

#define
ICM20648_REG_INT_ENABLE_3 (ICM20648_BANK_0 | 0x13)

Interrupt Enable 2 register

#define
ICM20648_REG_INT_STATUS (ICM20648_BANK_0 | 0x19)

Interrupt Status register

#define

Wake-up on motion interrupt occurred bit

#define

PLL ready interrupt occurred bit

#define
ICM20648_REG_INT_STATUS_1 (ICM20648_BANK_0 | 0x1A)

Interrupt Status 1 register

#define

Raw data ready interrupt occurred bit

#define
ICM20648_REG_INT_STATUS_2 (ICM20648_BANK_0 | 0x1B)

Interrupt Status 2 register

#define
ICM20648_REG_ACCEL_XOUT_H_SH (ICM20648_BANK_0 | 0x2D)

Accelerometer X-axis data high byte

#define
ICM20648_REG_ACCEL_XOUT_L_SH (ICM20648_BANK_0 | 0x2E)

Accelerometer X-axis data low byte

#define
ICM20648_REG_ACCEL_YOUT_H_SH (ICM20648_BANK_0 | 0x2F)

Accelerometer Y-axis data high byte

#define
ICM20648_REG_ACCEL_YOUT_L_SH (ICM20648_BANK_0 | 0x30)

Accelerometer Y-axis data low byte

#define
ICM20648_REG_ACCEL_ZOUT_H_SH (ICM20648_BANK_0 | 0x31)

Accelerometer Z-axis data high byte

#define
ICM20648_REG_ACCEL_ZOUT_L_SH (ICM20648_BANK_0 | 0x32)

Accelerometer Z-axis data low byte

#define
ICM20648_REG_GYRO_XOUT_H_SH (ICM20648_BANK_0 | 0x33)

Gyroscope X-axis data high byte

#define
ICM20648_REG_GYRO_XOUT_L_SH (ICM20648_BANK_0 | 0x34)

Gyroscope X-axis data low byte

#define
ICM20648_REG_GYRO_YOUT_H_SH (ICM20648_BANK_0 | 0x35)

Gyroscope Y-axis data high byte

#define
ICM20648_REG_GYRO_YOUT_L_SH (ICM20648_BANK_0 | 0x36)

Gyroscope Y-axis data low byte

#define
ICM20648_REG_GYRO_ZOUT_H_SH (ICM20648_BANK_0 | 0x37)

Gyroscope Z-axis data high byte

#define
ICM20648_REG_GYRO_ZOUT_L_SH (ICM20648_BANK_0 | 0x38)

Gyroscope Z-axis data low byte

#define
ICM20648_REG_TEMPERATURE_H (ICM20648_BANK_0 | 0x39)

Temperature data high byte

#define
ICM20648_REG_TEMPERATURE_L (ICM20648_BANK_0 | 0x3A)

Temperature data low byte

#define
ICM20648_REG_TEMP_CONFIG (ICM20648_BANK_0 | 0x53)

Temperature Configuration register

#define
ICM20648_REG_FIFO_EN_1 (ICM20648_BANK_0 | 0x66)

FIFO Enable 1 register

#define
ICM20648_REG_FIFO_EN_2 (ICM20648_BANK_0 | 0x67)

FIFO Enable 2 register

#define

Enable writing acceleration data to FIFO bit

#define

Enable writing gyroscope data to FIFO bit

#define
ICM20648_REG_FIFO_RST (ICM20648_BANK_0 | 0x68)

FIFO Reset register

#define
ICM20648_REG_FIFO_MODE (ICM20648_BANK_0 | 0x69)

FIFO Mode register

#define
ICM20648_REG_FIFO_COUNT_H (ICM20648_BANK_0 | 0x70)

FIFO data count high byte

#define
ICM20648_REG_FIFO_COUNT_L (ICM20648_BANK_0 | 0x71)

FIFO data count low byte

#define
ICM20648_REG_FIFO_R_W (ICM20648_BANK_0 | 0x72)

FIFO Read/Write register

#define
ICM20648_REG_DATA_RDY_STATUS (ICM20648_BANK_0 | 0x74)

Data Ready Status register

#define

Raw Data Ready bit

#define
ICM20648_REG_FIFO_CFG (ICM20648_BANK_0 | 0x76)

FIFO Configuration register

#define

Interrupt status for each sensor is required

#define

Interrupt status for only a single sensor is required

#define
ICM20648_REG_XA_OFFSET_H (ICM20648_BANK_1 | 0x14)

Acceleration sensor X-axis offset cancellation high byte

#define
ICM20648_REG_XA_OFFSET_L (ICM20648_BANK_1 | 0x15)

Acceleration sensor X-axis offset cancellation low byte

#define
ICM20648_REG_YA_OFFSET_H (ICM20648_BANK_1 | 0x17)

Acceleration sensor Y-axis offset cancellation high byte

#define
ICM20648_REG_YA_OFFSET_L (ICM20648_BANK_1 | 0x18)

Acceleration sensor Y-axis offset cancellation low byte

#define
ICM20648_REG_ZA_OFFSET_H (ICM20648_BANK_1 | 0x1A)

Acceleration sensor Z-axis offset cancellation high byte

#define
ICM20648_REG_ZA_OFFSET_L (ICM20648_BANK_1 | 0x1B)

Acceleration sensor Z-axis offset cancellation low byte

#define
ICM20648_REG_TIMEBASE_CORR_PLL (ICM20648_BANK_1 | 0x28)

PLL Timebase Correction register

#define
ICM20648_REG_GYRO_SMPLRT_DIV (ICM20648_BANK_2 | 0x00)

Gyroscope Sample Rate Divider register

#define
ICM20648_REG_GYRO_CONFIG_1 (ICM20648_BANK_2 | 0x01)

Gyroscope Configuration 1 register

#define

Gyro Digital Low-Pass Filter enable bit

#define

Gyro Full Scale Select bit shift

#define

Gyro DLPF Config bit shift

#define

Gyro Full Scale Select bitmask

#define

Gyro Bandwidth Select bitmask

#define
ICM20648_GYRO_FULLSCALE_250DPS (0x00 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 250 deg/sec

#define
ICM20648_GYRO_FULLSCALE_500DPS (0x01 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 500 deg/sec

#define
ICM20648_GYRO_FULLSCALE_1000DPS (0x02 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 1000 deg/sec.

#define
ICM20648_GYRO_FULLSCALE_2000DPS (0x03 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 2000 deg/sec.

#define
ICM20648_GYRO_BW_12100HZ (0x00 << ICM20648_SHIFT_GYRO_DLPCFG)

Gyro Bandwidth = 12100 Hz.

#define
ICM20648_GYRO_BW_360HZ ( (0x07 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 360 Hz

#define
ICM20648_GYRO_BW_200HZ ( (0x00 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 200 Hz

#define
ICM20648_GYRO_BW_150HZ ( (0x01 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 150 Hz

#define
ICM20648_GYRO_BW_120HZ ( (0x02 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 120 Hz

#define
ICM20648_GYRO_BW_51HZ ( (0x03 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 51 Hz

#define
ICM20648_GYRO_BW_24HZ ( (0x04 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 24 Hz

#define
ICM20648_GYRO_BW_12HZ ( (0x05 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 12 Hz

#define
ICM20648_GYRO_BW_6HZ ( (0x06 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 6 Hz

#define
ICM20648_REG_GYRO_CONFIG_2 (ICM20648_BANK_2 | 0x02)

Gyroscope Configuration 2 register

#define

Gyroscope Self-Test Enable bits

#define
ICM20648_REG_XG_OFFS_USRH (ICM20648_BANK_2 | 0x03)

Gyroscope sensor X-axis offset cancellation high byte

#define
ICM20648_REG_XG_OFFS_USRL (ICM20648_BANK_2 | 0x04)

Gyroscope sensor X-axis offset cancellation low byte

#define
ICM20648_REG_YG_OFFS_USRH (ICM20648_BANK_2 | 0x05)

Gyroscope sensor Y-axis offset cancellation high byte

#define
ICM20648_REG_YG_OFFS_USRL (ICM20648_BANK_2 | 0x06)

Gyroscope sensor Y-axis offset cancellation low byte

#define
ICM20648_REG_ZG_OFFS_USRH (ICM20648_BANK_2 | 0x07)

Gyroscope sensor Z-axis offset cancellation high byte

#define
ICM20648_REG_ZG_OFFS_USRL (ICM20648_BANK_2 | 0x08)

Gyroscope sensor Z-axis offset cancellation low byte

#define
ICM20648_REG_ODR_ALIGN_EN (ICM20648_BANK_2 | 0x09)

Output Data Rate start time alignment

#define
ICM20648_REG_ACCEL_SMPLRT_DIV_1 (ICM20648_BANK_2 | 0x10)

Acceleration Sensor Sample Rate Divider 1 register

#define
ICM20648_REG_ACCEL_SMPLRT_DIV_2 (ICM20648_BANK_2 | 0x11)

Acceleration Sensor Sample Rate Divider 2 register

#define
ICM20648_REG_ACCEL_INTEL_CTRL (ICM20648_BANK_2 | 0x12)

Accelerometer Hardware Intelligence Control register

#define

Wake-up On Motion enable bit

#define

WOM algorithm selection bit

#define
ICM20648_REG_ACCEL_WOM_THR (ICM20648_BANK_2 | 0x13)

Wake-up On Motion Threshold register

#define
ICM20648_REG_ACCEL_CONFIG (ICM20648_BANK_2 | 0x14)

Accelerometer Configuration register

#define

Accel Digital Low-Pass Filter enable bit

#define

Accel Full Scale Select bit shift

#define

Accel DLPF Config bit shift

#define

Accel Full Scale Select bitmask

#define

Accel Bandwidth Select bitmask

#define
ICM20648_ACCEL_FULLSCALE_2G (0x00 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 2 g

#define
ICM20648_ACCEL_FULLSCALE_4G (0x01 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 4 g

#define
ICM20648_ACCEL_FULLSCALE_8G (0x02 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 8 g

#define
ICM20648_ACCEL_FULLSCALE_16G (0x03 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 16 g.

#define
ICM20648_ACCEL_BW_1210HZ (0x00 << ICM20648_SHIFT_ACCEL_DLPCFG)

Accel Bandwidth = 1210 Hz

#define
ICM20648_ACCEL_BW_470HZ ( (0x07 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 470 Hz

#define
ICM20648_ACCEL_BW_246HZ ( (0x00 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 246 Hz

#define
ICM20648_ACCEL_BW_111HZ ( (0x02 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 111 Hz

#define
ICM20648_ACCEL_BW_50HZ ( (0x03 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 50 Hz

#define
ICM20648_ACCEL_BW_24HZ ( (0x04 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 24 Hz

#define
ICM20648_ACCEL_BW_12HZ ( (0x05 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 12 Hz

#define
ICM20648_ACCEL_BW_6HZ ( (0x06 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 6 Hz

#define
ICM20648_REG_ACCEL_CONFIG_2 (ICM20648_BANK_2 | 0x15)

Accelerometer Configuration 2 register

#define

Accelerometer Self-Test Enable bits

#define
ICM20648_REG_I2C_MST_ODR_CONFIG (ICM20648_BANK_3 | 0x00)

I2C Master Output Data Rate Configuration register

#define
ICM20648_REG_I2C_MST_CTRL (ICM20648_BANK_3 | 0x01)

I2C Master Control register

#define

Stop between reads enabling bit

#define
ICM20648_REG_I2C_MST_DELAY_CTRL (ICM20648_BANK_3 | 0x02)

I2C Master Delay Control register

#define

I2C Slave0 Delay Enable bit

#define

I2C Slave1 Delay Enable bit

#define

I2C Slave2 Delay Enable bit

#define

I2C Slave3 Delay Enable bit

#define
ICM20648_REG_I2C_SLV0_ADDR (ICM20648_BANK_3 | 0x03)

I2C Slave0 Physical Address register

#define
ICM20648_REG_I2C_SLV0_REG (ICM20648_BANK_3 | 0x04)

I2C Slave0 Register Address register

#define
ICM20648_REG_I2C_SLV0_CTRL (ICM20648_BANK_3 | 0x05)

I2C Slave0 Control register

#define
ICM20648_REG_I2C_SLV0_DO (ICM20648_BANK_3 | 0x06)

I2C Slave0 Data Out register

#define
ICM20648_REG_I2C_SLV1_ADDR (ICM20648_BANK_3 | 0x07)

I2C Slave1 Physical Address register

#define
ICM20648_REG_I2C_SLV1_REG (ICM20648_BANK_3 | 0x08)

I2C Slave1 Register Address register

#define
ICM20648_REG_I2C_SLV1_CTRL (ICM20648_BANK_3 | 0x09)

I2C Slave1 Control register

#define
ICM20648_REG_I2C_SLV1_DO (ICM20648_BANK_3 | 0x0A)

I2C Slave1 Data Out register

#define
ICM20648_REG_I2C_SLV2_ADDR (ICM20648_BANK_3 | 0x0B)

I2C Slave2 Physical Address register

#define
ICM20648_REG_I2C_SLV2_REG (ICM20648_BANK_3 | 0x0C)

I2C Slave2 Register Address register

#define
ICM20648_REG_I2C_SLV2_CTRL (ICM20648_BANK_3 | 0x0D)

I2C Slave2 Control register

#define
ICM20648_REG_I2C_SLV2_DO (ICM20648_BANK_3 | 0x0E)

I2C Slave2 Data Out register

#define
ICM20648_REG_I2C_SLV3_ADDR (ICM20648_BANK_3 | 0x0F)

I2C Slave3 Physical Address register

#define
ICM20648_REG_I2C_SLV3_REG (ICM20648_BANK_3 | 0x10)

I2C Slave3 Register Address register

#define
ICM20648_REG_I2C_SLV3_CTRL (ICM20648_BANK_3 | 0x11)

I2C Slave3 Control register

#define
ICM20648_REG_I2C_SLV3_DO (ICM20648_BANK_3 | 0x12)

I2C Slave3 Data Out register

#define
ICM20648_REG_I2C_SLV4_ADDR (ICM20648_BANK_3 | 0x13)

I2C Slave4 Physical Address register

#define
ICM20648_REG_I2C_SLV4_REG (ICM20648_BANK_3 | 0x14)

I2C Slave4 Register Address register

#define
ICM20648_REG_I2C_SLV4_CTRL (ICM20648_BANK_3 | 0x15)

I2C Slave4 Control register

#define
ICM20648_REG_I2C_SLV4_DO (ICM20648_BANK_3 | 0x16)

I2C Slave4 Data Out register

#define
ICM20648_REG_I2C_SLV4_DI (ICM20648_BANK_3 | 0x17)

I2C Slave4 Data In register

#define

I2C Slave Enable bit

#define

I2C Slave Byte Swap enable bit

#define

I2C Slave Do Not Write Register Value bit

#define

I2C Slave Group bit

#define

I2C Slave R/W bit

#define

Bank Select register

#define

ICM20648 Device ID value

#define

ICM20948 Device ID value

ICM20648 register banks Documentation#

ICM20648_BANK_0#

#define ICM20648_BANK_0
Value:
(0 << 7)

Register bank 0.


Definition at line 56 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BANK_1#

#define ICM20648_BANK_1
Value:
(1 << 7)

Register bank 1.


Definition at line 57 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BANK_2#

#define ICM20648_BANK_2
Value:
(2 << 7)

Register bank 2.


Definition at line 58 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BANK_3#

#define ICM20648_BANK_3
Value:
(3 << 7)

Register bank 3.


Definition at line 59 of file hardware/driver/icm20648/inc/sl_icm20648.h

Register and associated bit definitions Documentation#

ICM20648_REG_WHO_AM_I#

#define ICM20648_REG_WHO_AM_I
Value:
(ICM20648_BANK_0 | 0x00)

Device ID register


Definition at line 69 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_USER_CTRL#

#define ICM20648_REG_USER_CTRL
Value:
(ICM20648_BANK_0 | 0x03)

User control register


Definition at line 71 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_DMP_EN#

#define ICM20648_BIT_DMP_EN
Value:
0x80

DMP enable bit


Definition at line 72 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_FIFO_EN#

#define ICM20648_BIT_FIFO_EN
Value:
0x40

FIFO enable bit


Definition at line 73 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_MST_EN#

#define ICM20648_BIT_I2C_MST_EN
Value:
0x20

I2C master I/F enable bit


Definition at line 74 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_IF_DIS#

#define ICM20648_BIT_I2C_IF_DIS
Value:
0x10

Disable I2C, enable SPI bit


Definition at line 75 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_DMP_RST#

#define ICM20648_BIT_DMP_RST
Value:
0x08

DMP module reset bit


Definition at line 76 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_DIAMOND_DMP_RST#

#define ICM20648_BIT_DIAMOND_DMP_RST
Value:
0x04

SRAM module reset bit


Definition at line 77 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_LP_CONFIG#

#define ICM20648_REG_LP_CONFIG
Value:
(ICM20648_BANK_0 | 0x05)

Low Power mode config register


Definition at line 79 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_MST_CYCLE#

#define ICM20648_BIT_I2C_MST_CYCLE
Value:
0x40

I2C master cycle mode enable


Definition at line 80 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_ACCEL_CYCLE#

#define ICM20648_BIT_ACCEL_CYCLE
Value:
0x20

Accelerometer cycle mode enable


Definition at line 81 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_GYRO_CYCLE#

#define ICM20648_BIT_GYRO_CYCLE
Value:
0x10

Gyroscope cycle mode enable


Definition at line 82 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_PWR_MGMT_1#

#define ICM20648_REG_PWR_MGMT_1
Value:
(ICM20648_BANK_0 | 0x06)

Power Management 1 register


Definition at line 84 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_H_RESET#

#define ICM20648_BIT_H_RESET
Value:
0x80

Device reset bit


Definition at line 85 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_SLEEP#

#define ICM20648_BIT_SLEEP
Value:
0x40

Sleep mode enable bit


Definition at line 86 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_LP_EN#

#define ICM20648_BIT_LP_EN
Value:
0x20

Low Power feature enable bit


Definition at line 87 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_TEMP_DIS#

#define ICM20648_BIT_TEMP_DIS
Value:
0x08

Temperature sensor disable bit


Definition at line 88 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_CLK_PLL#

#define ICM20648_BIT_CLK_PLL
Value:
0x01

Auto clock source selection setting


Definition at line 89 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_PWR_MGMT_2#

#define ICM20648_REG_PWR_MGMT_2
Value:
(ICM20648_BANK_0 | 0x07)

Power Management 2 register


Definition at line 91 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_PWR_ACCEL_STBY#

#define ICM20648_BIT_PWR_ACCEL_STBY
Value:
0x38

Disable accelerometer


Definition at line 92 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_PWR_GYRO_STBY#

#define ICM20648_BIT_PWR_GYRO_STBY
Value:
0x07

Disable gyroscope


Definition at line 93 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_PWR_ALL_OFF#

#define ICM20648_BIT_PWR_ALL_OFF
Value:
0x7F

Disable both accel and gyro


Definition at line 94 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_PIN_CFG#

#define ICM20648_REG_INT_PIN_CFG
Value:
(ICM20648_BANK_0 | 0x0F)

Interrupt Pin Configuration register


Definition at line 96 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_INT_ACTL#

#define ICM20648_BIT_INT_ACTL
Value:
0x80

Active low setting bit


Definition at line 97 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_INT_OPEN#

#define ICM20648_BIT_INT_OPEN
Value:
0x40

Open collector configuration bit


Definition at line 98 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_INT_LATCH_EN#

#define ICM20648_BIT_INT_LATCH_EN
Value:
0x20

Latch enable bit


Definition at line 99 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_ENABLE#

#define ICM20648_REG_INT_ENABLE
Value:
(ICM20648_BANK_0 | 0x10)

Interrupt Enable register


Definition at line 101 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_WOM_INT_EN#

#define ICM20648_BIT_WOM_INT_EN
Value:
0x08

Wake-up On Motion enable bit


Definition at line 102 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_ENABLE_1#

#define ICM20648_REG_INT_ENABLE_1
Value:
(ICM20648_BANK_0 | 0x11)

Interrupt Enable 1 register


Definition at line 104 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_RAW_DATA_0_RDY_EN#

#define ICM20648_BIT_RAW_DATA_0_RDY_EN
Value:
0x01

Raw data ready interrupt enable bit


Definition at line 105 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_ENABLE_2#

#define ICM20648_REG_INT_ENABLE_2
Value:
(ICM20648_BANK_0 | 0x12)

Interrupt Enable 2 register


Definition at line 107 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_FIFO_OVERFLOW_EN_0#

#define ICM20648_BIT_FIFO_OVERFLOW_EN_0
Value:
0x01

FIFO overflow interrupt enable bit


Definition at line 108 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_ENABLE_3#

#define ICM20648_REG_INT_ENABLE_3
Value:
(ICM20648_BANK_0 | 0x13)

Interrupt Enable 2 register


Definition at line 110 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_STATUS#

#define ICM20648_REG_INT_STATUS
Value:
(ICM20648_BANK_0 | 0x19)

Interrupt Status register


Definition at line 112 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_WOM_INT#

#define ICM20648_BIT_WOM_INT
Value:
0x08

Wake-up on motion interrupt occurred bit


Definition at line 113 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_PLL_RDY#

#define ICM20648_BIT_PLL_RDY
Value:
0x04

PLL ready interrupt occurred bit


Definition at line 114 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_STATUS_1#

#define ICM20648_REG_INT_STATUS_1
Value:
(ICM20648_BANK_0 | 0x1A)

Interrupt Status 1 register


Definition at line 116 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_RAW_DATA_0_RDY_INT#

#define ICM20648_BIT_RAW_DATA_0_RDY_INT
Value:
0x01

Raw data ready interrupt occurred bit


Definition at line 117 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_INT_STATUS_2#

#define ICM20648_REG_INT_STATUS_2
Value:
(ICM20648_BANK_0 | 0x1B)

Interrupt Status 2 register


Definition at line 119 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_XOUT_H_SH#

#define ICM20648_REG_ACCEL_XOUT_H_SH
Value:
(ICM20648_BANK_0 | 0x2D)

Accelerometer X-axis data high byte


Definition at line 121 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_XOUT_L_SH#

#define ICM20648_REG_ACCEL_XOUT_L_SH
Value:
(ICM20648_BANK_0 | 0x2E)

Accelerometer X-axis data low byte


Definition at line 122 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_YOUT_H_SH#

#define ICM20648_REG_ACCEL_YOUT_H_SH
Value:
(ICM20648_BANK_0 | 0x2F)

Accelerometer Y-axis data high byte


Definition at line 123 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_YOUT_L_SH#

#define ICM20648_REG_ACCEL_YOUT_L_SH
Value:
(ICM20648_BANK_0 | 0x30)

Accelerometer Y-axis data low byte


Definition at line 124 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_ZOUT_H_SH#

#define ICM20648_REG_ACCEL_ZOUT_H_SH
Value:
(ICM20648_BANK_0 | 0x31)

Accelerometer Z-axis data high byte


Definition at line 125 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_ZOUT_L_SH#

#define ICM20648_REG_ACCEL_ZOUT_L_SH
Value:
(ICM20648_BANK_0 | 0x32)

Accelerometer Z-axis data low byte


Definition at line 126 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_XOUT_H_SH#

#define ICM20648_REG_GYRO_XOUT_H_SH
Value:
(ICM20648_BANK_0 | 0x33)

Gyroscope X-axis data high byte


Definition at line 128 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_XOUT_L_SH#

#define ICM20648_REG_GYRO_XOUT_L_SH
Value:
(ICM20648_BANK_0 | 0x34)

Gyroscope X-axis data low byte


Definition at line 129 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_YOUT_H_SH#

#define ICM20648_REG_GYRO_YOUT_H_SH
Value:
(ICM20648_BANK_0 | 0x35)

Gyroscope Y-axis data high byte


Definition at line 130 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_YOUT_L_SH#

#define ICM20648_REG_GYRO_YOUT_L_SH
Value:
(ICM20648_BANK_0 | 0x36)

Gyroscope Y-axis data low byte


Definition at line 131 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_ZOUT_H_SH#

#define ICM20648_REG_GYRO_ZOUT_H_SH
Value:
(ICM20648_BANK_0 | 0x37)

Gyroscope Z-axis data high byte


Definition at line 132 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_ZOUT_L_SH#

#define ICM20648_REG_GYRO_ZOUT_L_SH
Value:
(ICM20648_BANK_0 | 0x38)

Gyroscope Z-axis data low byte


Definition at line 133 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_TEMPERATURE_H#

#define ICM20648_REG_TEMPERATURE_H
Value:
(ICM20648_BANK_0 | 0x39)

Temperature data high byte


Definition at line 135 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_TEMPERATURE_L#

#define ICM20648_REG_TEMPERATURE_L
Value:
(ICM20648_BANK_0 | 0x3A)

Temperature data low byte


Definition at line 136 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_TEMP_CONFIG#

#define ICM20648_REG_TEMP_CONFIG
Value:
(ICM20648_BANK_0 | 0x53)

Temperature Configuration register


Definition at line 137 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_EN_1#

#define ICM20648_REG_FIFO_EN_1
Value:
(ICM20648_BANK_0 | 0x66)

FIFO Enable 1 register


Definition at line 139 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_EN_2#

#define ICM20648_REG_FIFO_EN_2
Value:
(ICM20648_BANK_0 | 0x67)

FIFO Enable 2 register


Definition at line 141 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_ACCEL_FIFO_EN#

#define ICM20648_BIT_ACCEL_FIFO_EN
Value:
0x10

Enable writing acceleration data to FIFO bit


Definition at line 142 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BITS_GYRO_FIFO_EN#

#define ICM20648_BITS_GYRO_FIFO_EN
Value:
0x0E

Enable writing gyroscope data to FIFO bit


Definition at line 143 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_RST#

#define ICM20648_REG_FIFO_RST
Value:
(ICM20648_BANK_0 | 0x68)

FIFO Reset register


Definition at line 145 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_MODE#

#define ICM20648_REG_FIFO_MODE
Value:
(ICM20648_BANK_0 | 0x69)

FIFO Mode register


Definition at line 146 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_COUNT_H#

#define ICM20648_REG_FIFO_COUNT_H
Value:
(ICM20648_BANK_0 | 0x70)

FIFO data count high byte


Definition at line 148 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_COUNT_L#

#define ICM20648_REG_FIFO_COUNT_L
Value:
(ICM20648_BANK_0 | 0x71)

FIFO data count low byte


Definition at line 149 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_R_W#

#define ICM20648_REG_FIFO_R_W
Value:
(ICM20648_BANK_0 | 0x72)

FIFO Read/Write register


Definition at line 150 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_DATA_RDY_STATUS#

#define ICM20648_REG_DATA_RDY_STATUS
Value:
(ICM20648_BANK_0 | 0x74)

Data Ready Status register


Definition at line 152 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_RAW_DATA_0_RDY#

#define ICM20648_BIT_RAW_DATA_0_RDY
Value:
0x01

Raw Data Ready bit


Definition at line 153 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_FIFO_CFG#

#define ICM20648_REG_FIFO_CFG
Value:
(ICM20648_BANK_0 | 0x76)

FIFO Configuration register


Definition at line 155 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_MULTI_FIFO_CFG#

#define ICM20648_BIT_MULTI_FIFO_CFG
Value:
0x01

Interrupt status for each sensor is required


Definition at line 156 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_SINGLE_FIFO_CFG#

#define ICM20648_BIT_SINGLE_FIFO_CFG
Value:
0x00

Interrupt status for only a single sensor is required


Definition at line 157 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_XA_OFFSET_H#

#define ICM20648_REG_XA_OFFSET_H
Value:
(ICM20648_BANK_1 | 0x14)

Acceleration sensor X-axis offset cancellation high byte


Definition at line 162 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_XA_OFFSET_L#

#define ICM20648_REG_XA_OFFSET_L
Value:
(ICM20648_BANK_1 | 0x15)

Acceleration sensor X-axis offset cancellation low byte


Definition at line 163 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_YA_OFFSET_H#

#define ICM20648_REG_YA_OFFSET_H
Value:
(ICM20648_BANK_1 | 0x17)

Acceleration sensor Y-axis offset cancellation high byte


Definition at line 164 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_YA_OFFSET_L#

#define ICM20648_REG_YA_OFFSET_L
Value:
(ICM20648_BANK_1 | 0x18)

Acceleration sensor Y-axis offset cancellation low byte


Definition at line 165 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ZA_OFFSET_H#

#define ICM20648_REG_ZA_OFFSET_H
Value:
(ICM20648_BANK_1 | 0x1A)

Acceleration sensor Z-axis offset cancellation high byte


Definition at line 166 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ZA_OFFSET_L#

#define ICM20648_REG_ZA_OFFSET_L
Value:
(ICM20648_BANK_1 | 0x1B)

Acceleration sensor Z-axis offset cancellation low byte


Definition at line 167 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_TIMEBASE_CORR_PLL#

#define ICM20648_REG_TIMEBASE_CORR_PLL
Value:
(ICM20648_BANK_1 | 0x28)

PLL Timebase Correction register


Definition at line 169 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_SMPLRT_DIV#

#define ICM20648_REG_GYRO_SMPLRT_DIV
Value:
(ICM20648_BANK_2 | 0x00)

Gyroscope Sample Rate Divider register


Definition at line 174 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_CONFIG_1#

#define ICM20648_REG_GYRO_CONFIG_1
Value:
(ICM20648_BANK_2 | 0x01)

Gyroscope Configuration 1 register


Definition at line 176 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_GYRO_FCHOICE#

#define ICM20648_BIT_GYRO_FCHOICE
Value:
0x01

Gyro Digital Low-Pass Filter enable bit


Definition at line 177 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_SHIFT_GYRO_FS_SEL#

#define ICM20648_SHIFT_GYRO_FS_SEL
Value:
1

Gyro Full Scale Select bit shift


Definition at line 178 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_SHIFT_GYRO_DLPCFG#

#define ICM20648_SHIFT_GYRO_DLPCFG
Value:
3

Gyro DLPF Config bit shift


Definition at line 179 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_MASK_GYRO_FULLSCALE#

#define ICM20648_MASK_GYRO_FULLSCALE
Value:
0x06

Gyro Full Scale Select bitmask


Definition at line 180 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_MASK_GYRO_BW#

#define ICM20648_MASK_GYRO_BW
Value:
0x39

Gyro Bandwidth Select bitmask


Definition at line 181 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_FULLSCALE_250DPS#

#define ICM20648_GYRO_FULLSCALE_250DPS
Value:
(0x00 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 250 deg/sec


Definition at line 182 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_FULLSCALE_500DPS#

#define ICM20648_GYRO_FULLSCALE_500DPS
Value:
(0x01 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 500 deg/sec


Definition at line 183 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_FULLSCALE_1000DPS#

#define ICM20648_GYRO_FULLSCALE_1000DPS
Value:
(0x02 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 1000 deg/sec.


Definition at line 184 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_FULLSCALE_2000DPS#

#define ICM20648_GYRO_FULLSCALE_2000DPS
Value:
(0x03 << ICM20648_SHIFT_GYRO_FS_SEL)

Gyro Full Scale = 2000 deg/sec.


Definition at line 185 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_12100HZ#

#define ICM20648_GYRO_BW_12100HZ
Value:
(0x00 << ICM20648_SHIFT_GYRO_DLPCFG)

Gyro Bandwidth = 12100 Hz.


Definition at line 186 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_360HZ#

#define ICM20648_GYRO_BW_360HZ
Value:
( (0x07 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 360 Hz


Definition at line 187 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_200HZ#

#define ICM20648_GYRO_BW_200HZ
Value:
( (0x00 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 200 Hz


Definition at line 188 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_150HZ#

#define ICM20648_GYRO_BW_150HZ
Value:
( (0x01 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 150 Hz


Definition at line 189 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_120HZ#

#define ICM20648_GYRO_BW_120HZ
Value:
( (0x02 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 120 Hz


Definition at line 190 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_51HZ#

#define ICM20648_GYRO_BW_51HZ
Value:
( (0x03 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 51 Hz


Definition at line 191 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_24HZ#

#define ICM20648_GYRO_BW_24HZ
Value:
( (0x04 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 24 Hz


Definition at line 192 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_12HZ#

#define ICM20648_GYRO_BW_12HZ
Value:
( (0x05 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 12 Hz


Definition at line 193 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_GYRO_BW_6HZ#

#define ICM20648_GYRO_BW_6HZ
Value:
( (0x06 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)

Gyro Bandwidth = 6 Hz


Definition at line 194 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_GYRO_CONFIG_2#

#define ICM20648_REG_GYRO_CONFIG_2
Value:
(ICM20648_BANK_2 | 0x02)

Gyroscope Configuration 2 register


Definition at line 196 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_GYRO_CTEN#

#define ICM20648_BIT_GYRO_CTEN
Value:
0x38

Gyroscope Self-Test Enable bits


Definition at line 197 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_XG_OFFS_USRH#

#define ICM20648_REG_XG_OFFS_USRH
Value:
(ICM20648_BANK_2 | 0x03)

Gyroscope sensor X-axis offset cancellation high byte


Definition at line 199 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_XG_OFFS_USRL#

#define ICM20648_REG_XG_OFFS_USRL
Value:
(ICM20648_BANK_2 | 0x04)

Gyroscope sensor X-axis offset cancellation low byte


Definition at line 200 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_YG_OFFS_USRH#

#define ICM20648_REG_YG_OFFS_USRH
Value:
(ICM20648_BANK_2 | 0x05)

Gyroscope sensor Y-axis offset cancellation high byte


Definition at line 201 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_YG_OFFS_USRL#

#define ICM20648_REG_YG_OFFS_USRL
Value:
(ICM20648_BANK_2 | 0x06)

Gyroscope sensor Y-axis offset cancellation low byte


Definition at line 202 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ZG_OFFS_USRH#

#define ICM20648_REG_ZG_OFFS_USRH
Value:
(ICM20648_BANK_2 | 0x07)

Gyroscope sensor Z-axis offset cancellation high byte


Definition at line 203 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ZG_OFFS_USRL#

#define ICM20648_REG_ZG_OFFS_USRL
Value:
(ICM20648_BANK_2 | 0x08)

Gyroscope sensor Z-axis offset cancellation low byte


Definition at line 204 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ODR_ALIGN_EN#

#define ICM20648_REG_ODR_ALIGN_EN
Value:
(ICM20648_BANK_2 | 0x09)

Output Data Rate start time alignment


Definition at line 206 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_SMPLRT_DIV_1#

#define ICM20648_REG_ACCEL_SMPLRT_DIV_1
Value:
(ICM20648_BANK_2 | 0x10)

Acceleration Sensor Sample Rate Divider 1 register


Definition at line 208 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_SMPLRT_DIV_2#

#define ICM20648_REG_ACCEL_SMPLRT_DIV_2
Value:
(ICM20648_BANK_2 | 0x11)

Acceleration Sensor Sample Rate Divider 2 register


Definition at line 209 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_INTEL_CTRL#

#define ICM20648_REG_ACCEL_INTEL_CTRL
Value:
(ICM20648_BANK_2 | 0x12)

Accelerometer Hardware Intelligence Control register


Definition at line 211 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_ACCEL_INTEL_EN#

#define ICM20648_BIT_ACCEL_INTEL_EN
Value:
0x02

Wake-up On Motion enable bit


Definition at line 212 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_ACCEL_INTEL_MODE#

#define ICM20648_BIT_ACCEL_INTEL_MODE
Value:
0x01

WOM algorithm selection bit


Definition at line 213 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_WOM_THR#

#define ICM20648_REG_ACCEL_WOM_THR
Value:
(ICM20648_BANK_2 | 0x13)

Wake-up On Motion Threshold register


Definition at line 215 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_CONFIG#

#define ICM20648_REG_ACCEL_CONFIG
Value:
(ICM20648_BANK_2 | 0x14)

Accelerometer Configuration register


Definition at line 217 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_ACCEL_FCHOICE#

#define ICM20648_BIT_ACCEL_FCHOICE
Value:
0x01

Accel Digital Low-Pass Filter enable bit


Definition at line 218 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_SHIFT_ACCEL_FS#

#define ICM20648_SHIFT_ACCEL_FS
Value:
1

Accel Full Scale Select bit shift


Definition at line 219 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_SHIFT_ACCEL_DLPCFG#

#define ICM20648_SHIFT_ACCEL_DLPCFG
Value:
3

Accel DLPF Config bit shift


Definition at line 220 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_MASK_ACCEL_FULLSCALE#

#define ICM20648_MASK_ACCEL_FULLSCALE
Value:
0x06

Accel Full Scale Select bitmask


Definition at line 221 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_MASK_ACCEL_BW#

#define ICM20648_MASK_ACCEL_BW
Value:
0x39

Accel Bandwidth Select bitmask


Definition at line 222 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_FULLSCALE_2G#

#define ICM20648_ACCEL_FULLSCALE_2G
Value:
(0x00 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 2 g


Definition at line 223 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_FULLSCALE_4G#

#define ICM20648_ACCEL_FULLSCALE_4G
Value:
(0x01 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 4 g


Definition at line 224 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_FULLSCALE_8G#

#define ICM20648_ACCEL_FULLSCALE_8G
Value:
(0x02 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 8 g


Definition at line 225 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_FULLSCALE_16G#

#define ICM20648_ACCEL_FULLSCALE_16G
Value:
(0x03 << ICM20648_SHIFT_ACCEL_FS)

Accel Full Scale = 16 g.


Definition at line 226 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_1210HZ#

#define ICM20648_ACCEL_BW_1210HZ
Value:
(0x00 << ICM20648_SHIFT_ACCEL_DLPCFG)

Accel Bandwidth = 1210 Hz


Definition at line 227 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_470HZ#

#define ICM20648_ACCEL_BW_470HZ
Value:
( (0x07 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 470 Hz


Definition at line 228 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_246HZ#

#define ICM20648_ACCEL_BW_246HZ
Value:
( (0x00 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 246 Hz


Definition at line 229 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_111HZ#

#define ICM20648_ACCEL_BW_111HZ
Value:
( (0x02 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 111 Hz


Definition at line 230 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_50HZ#

#define ICM20648_ACCEL_BW_50HZ
Value:
( (0x03 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 50 Hz


Definition at line 231 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_24HZ#

#define ICM20648_ACCEL_BW_24HZ
Value:
( (0x04 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 24 Hz


Definition at line 232 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_12HZ#

#define ICM20648_ACCEL_BW_12HZ
Value:
( (0x05 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 12 Hz


Definition at line 233 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_ACCEL_BW_6HZ#

#define ICM20648_ACCEL_BW_6HZ
Value:
( (0x06 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)

Accel Bandwidth = 6 Hz


Definition at line 234 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_ACCEL_CONFIG_2#

#define ICM20648_REG_ACCEL_CONFIG_2
Value:
(ICM20648_BANK_2 | 0x15)

Accelerometer Configuration 2 register


Definition at line 236 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_ACCEL_CTEN#

#define ICM20648_BIT_ACCEL_CTEN
Value:
0x1C

Accelerometer Self-Test Enable bits


Definition at line 237 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_MST_ODR_CONFIG#

#define ICM20648_REG_I2C_MST_ODR_CONFIG
Value:
(ICM20648_BANK_3 | 0x00)

I2C Master Output Data Rate Configuration register


Definition at line 242 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_MST_CTRL#

#define ICM20648_REG_I2C_MST_CTRL
Value:
(ICM20648_BANK_3 | 0x01)

I2C Master Control register


Definition at line 244 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_MST_P_NSR#

#define ICM20648_BIT_I2C_MST_P_NSR
Value:
0x10

Stop between reads enabling bit


Definition at line 245 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_MST_DELAY_CTRL#

#define ICM20648_REG_I2C_MST_DELAY_CTRL
Value:
(ICM20648_BANK_3 | 0x02)

I2C Master Delay Control register


Definition at line 247 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_SLV0_DLY_EN#

#define ICM20648_BIT_SLV0_DLY_EN
Value:
0x01

I2C Slave0 Delay Enable bit


Definition at line 248 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_SLV1_DLY_EN#

#define ICM20648_BIT_SLV1_DLY_EN
Value:
0x02

I2C Slave1 Delay Enable bit


Definition at line 249 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_SLV2_DLY_EN#

#define ICM20648_BIT_SLV2_DLY_EN
Value:
0x04

I2C Slave2 Delay Enable bit


Definition at line 250 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_SLV3_DLY_EN#

#define ICM20648_BIT_SLV3_DLY_EN
Value:
0x08

I2C Slave3 Delay Enable bit


Definition at line 251 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV0_ADDR#

#define ICM20648_REG_I2C_SLV0_ADDR
Value:
(ICM20648_BANK_3 | 0x03)

I2C Slave0 Physical Address register


Definition at line 253 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV0_REG#

#define ICM20648_REG_I2C_SLV0_REG
Value:
(ICM20648_BANK_3 | 0x04)

I2C Slave0 Register Address register


Definition at line 254 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV0_CTRL#

#define ICM20648_REG_I2C_SLV0_CTRL
Value:
(ICM20648_BANK_3 | 0x05)

I2C Slave0 Control register


Definition at line 255 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV0_DO#

#define ICM20648_REG_I2C_SLV0_DO
Value:
(ICM20648_BANK_3 | 0x06)

I2C Slave0 Data Out register


Definition at line 256 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV1_ADDR#

#define ICM20648_REG_I2C_SLV1_ADDR
Value:
(ICM20648_BANK_3 | 0x07)

I2C Slave1 Physical Address register


Definition at line 258 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV1_REG#

#define ICM20648_REG_I2C_SLV1_REG
Value:
(ICM20648_BANK_3 | 0x08)

I2C Slave1 Register Address register


Definition at line 259 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV1_CTRL#

#define ICM20648_REG_I2C_SLV1_CTRL
Value:
(ICM20648_BANK_3 | 0x09)

I2C Slave1 Control register


Definition at line 260 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV1_DO#

#define ICM20648_REG_I2C_SLV1_DO
Value:
(ICM20648_BANK_3 | 0x0A)

I2C Slave1 Data Out register


Definition at line 261 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV2_ADDR#

#define ICM20648_REG_I2C_SLV2_ADDR
Value:
(ICM20648_BANK_3 | 0x0B)

I2C Slave2 Physical Address register


Definition at line 263 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV2_REG#

#define ICM20648_REG_I2C_SLV2_REG
Value:
(ICM20648_BANK_3 | 0x0C)

I2C Slave2 Register Address register


Definition at line 264 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV2_CTRL#

#define ICM20648_REG_I2C_SLV2_CTRL
Value:
(ICM20648_BANK_3 | 0x0D)

I2C Slave2 Control register


Definition at line 265 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV2_DO#

#define ICM20648_REG_I2C_SLV2_DO
Value:
(ICM20648_BANK_3 | 0x0E)

I2C Slave2 Data Out register


Definition at line 266 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV3_ADDR#

#define ICM20648_REG_I2C_SLV3_ADDR
Value:
(ICM20648_BANK_3 | 0x0F)

I2C Slave3 Physical Address register


Definition at line 268 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV3_REG#

#define ICM20648_REG_I2C_SLV3_REG
Value:
(ICM20648_BANK_3 | 0x10)

I2C Slave3 Register Address register


Definition at line 269 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV3_CTRL#

#define ICM20648_REG_I2C_SLV3_CTRL
Value:
(ICM20648_BANK_3 | 0x11)

I2C Slave3 Control register


Definition at line 270 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV3_DO#

#define ICM20648_REG_I2C_SLV3_DO
Value:
(ICM20648_BANK_3 | 0x12)

I2C Slave3 Data Out register


Definition at line 271 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV4_ADDR#

#define ICM20648_REG_I2C_SLV4_ADDR
Value:
(ICM20648_BANK_3 | 0x13)

I2C Slave4 Physical Address register


Definition at line 273 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV4_REG#

#define ICM20648_REG_I2C_SLV4_REG
Value:
(ICM20648_BANK_3 | 0x14)

I2C Slave4 Register Address register


Definition at line 274 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV4_CTRL#

#define ICM20648_REG_I2C_SLV4_CTRL
Value:
(ICM20648_BANK_3 | 0x15)

I2C Slave4 Control register


Definition at line 275 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV4_DO#

#define ICM20648_REG_I2C_SLV4_DO
Value:
(ICM20648_BANK_3 | 0x16)

I2C Slave4 Data Out register


Definition at line 276 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_I2C_SLV4_DI#

#define ICM20648_REG_I2C_SLV4_DI
Value:
(ICM20648_BANK_3 | 0x17)

I2C Slave4 Data In register


Definition at line 277 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_SLV_EN#

#define ICM20648_BIT_I2C_SLV_EN
Value:
0x80

I2C Slave Enable bit


Definition at line 279 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_BYTE_SW#

#define ICM20648_BIT_I2C_BYTE_SW
Value:
0x40

I2C Slave Byte Swap enable bit


Definition at line 280 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_REG_DIS#

#define ICM20648_BIT_I2C_REG_DIS
Value:
0x20

I2C Slave Do Not Write Register Value bit


Definition at line 281 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_GRP#

#define ICM20648_BIT_I2C_GRP
Value:
0x10

I2C Slave Group bit


Definition at line 282 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_BIT_I2C_READ#

#define ICM20648_BIT_I2C_READ
Value:
0x80

I2C Slave R/W bit


Definition at line 283 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_REG_BANK_SEL#

#define ICM20648_REG_BANK_SEL
Value:
0x7F

Bank Select register


Definition at line 286 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20648_DEVICE_ID#

#define ICM20648_DEVICE_ID
Value:
0xE0

ICM20648 Device ID value


Definition at line 288 of file hardware/driver/icm20648/inc/sl_icm20648.h

ICM20948_DEVICE_ID#

#define ICM20948_DEVICE_ID
Value:
0xEA

ICM20948 Device ID value


Definition at line 289 of file hardware/driver/icm20648/inc/sl_icm20648.h