Register definitions#
Register definitions.
ICM20648 register banks#
Register bank 0.
Register bank 1.
Register bank 2.
Register bank 3.
Register and associated bit definitions#
Device ID register
User control register
DMP enable bit
FIFO enable bit
I2C master I/F enable bit
Disable I2C, enable SPI bit
DMP module reset bit
SRAM module reset bit
Low Power mode config register
I2C master cycle mode enable
Accelerometer cycle mode enable
Gyroscope cycle mode enable
Power Management 1 register
Device reset bit
Sleep mode enable bit
Low Power feature enable bit
Temperature sensor disable bit
Auto clock source selection setting
Power Management 2 register
Disable accelerometer
Disable gyroscope
Disable both accel and gyro
Interrupt Pin Configuration register
Active low setting bit
Open collector configuration bit
Latch enable bit
Interrupt Enable register
Wake-up On Motion enable bit
Interrupt Enable 1 register
Raw data ready interrupt enable bit
Interrupt Enable 2 register
FIFO overflow interrupt enable bit
Interrupt Enable 2 register
Interrupt Status register
Wake-up on motion interrupt occurred bit
PLL ready interrupt occurred bit
Interrupt Status 1 register
Raw data ready interrupt occurred bit
Interrupt Status 2 register
Accelerometer X-axis data high byte
Accelerometer X-axis data low byte
Accelerometer Y-axis data high byte
Accelerometer Y-axis data low byte
Accelerometer Z-axis data high byte
Accelerometer Z-axis data low byte
Gyroscope X-axis data high byte
Gyroscope X-axis data low byte
Gyroscope Y-axis data high byte
Gyroscope Y-axis data low byte
Gyroscope Z-axis data high byte
Gyroscope Z-axis data low byte
Temperature data high byte
Temperature data low byte
Temperature Configuration register
FIFO Enable 1 register
FIFO Enable 2 register
Enable writing acceleration data to FIFO bit
Enable writing gyroscope data to FIFO bit
FIFO Reset register
FIFO Mode register
FIFO data count high byte
FIFO data count low byte
FIFO Read/Write register
Data Ready Status register
Raw Data Ready bit
FIFO Configuration register
Interrupt status for each sensor is required
Interrupt status for only a single sensor is required
Acceleration sensor X-axis offset cancellation high byte
Acceleration sensor X-axis offset cancellation low byte
Acceleration sensor Y-axis offset cancellation high byte
Acceleration sensor Y-axis offset cancellation low byte
Acceleration sensor Z-axis offset cancellation high byte
Acceleration sensor Z-axis offset cancellation low byte
PLL Timebase Correction register
Gyroscope Sample Rate Divider register
Gyroscope Configuration 1 register
Gyro Digital Low-Pass Filter enable bit
Gyro Full Scale Select bit shift
Gyro DLPF Config bit shift
Gyro Full Scale Select bitmask
Gyro Bandwidth Select bitmask
Gyro Full Scale = 250 deg/sec
Gyro Full Scale = 500 deg/sec
Gyro Full Scale = 1000 deg/sec.
Gyro Full Scale = 2000 deg/sec.
Gyro Bandwidth = 12100 Hz.
Gyro Bandwidth = 360 Hz
Gyro Bandwidth = 200 Hz
Gyro Bandwidth = 150 Hz
Gyro Bandwidth = 120 Hz
Gyro Bandwidth = 51 Hz
Gyro Bandwidth = 24 Hz
Gyro Bandwidth = 12 Hz
Gyro Bandwidth = 6 Hz
Gyroscope Configuration 2 register
Gyroscope Self-Test Enable bits
Gyroscope sensor X-axis offset cancellation high byte
Gyroscope sensor X-axis offset cancellation low byte
Gyroscope sensor Y-axis offset cancellation high byte
Gyroscope sensor Y-axis offset cancellation low byte
Gyroscope sensor Z-axis offset cancellation high byte
Gyroscope sensor Z-axis offset cancellation low byte
Output Data Rate start time alignment
Acceleration Sensor Sample Rate Divider 1 register
Acceleration Sensor Sample Rate Divider 2 register
Accelerometer Hardware Intelligence Control register
Wake-up On Motion enable bit
WOM algorithm selection bit
Wake-up On Motion Threshold register
Accelerometer Configuration register
Accel Digital Low-Pass Filter enable bit
Accel Full Scale Select bit shift
Accel DLPF Config bit shift
Accel Full Scale Select bitmask
Accel Bandwidth Select bitmask
Accel Full Scale = 2 g
Accel Full Scale = 4 g
Accel Full Scale = 8 g
Accel Full Scale = 16 g.
Accel Bandwidth = 1210 Hz
Accel Bandwidth = 470 Hz
Accel Bandwidth = 246 Hz
Accel Bandwidth = 111 Hz
Accel Bandwidth = 50 Hz
Accel Bandwidth = 24 Hz
Accel Bandwidth = 12 Hz
Accel Bandwidth = 6 Hz
Accelerometer Configuration 2 register
Accelerometer Self-Test Enable bits
I2C Master Output Data Rate Configuration register
I2C Master Control register
Stop between reads enabling bit
I2C Master Delay Control register
I2C Slave0 Delay Enable bit
I2C Slave1 Delay Enable bit
I2C Slave2 Delay Enable bit
I2C Slave3 Delay Enable bit
I2C Slave0 Physical Address register
I2C Slave0 Register Address register
I2C Slave0 Control register
I2C Slave0 Data Out register
I2C Slave1 Physical Address register
I2C Slave1 Register Address register
I2C Slave1 Control register
I2C Slave1 Data Out register
I2C Slave2 Physical Address register
I2C Slave2 Register Address register
I2C Slave2 Control register
I2C Slave2 Data Out register
I2C Slave3 Physical Address register
I2C Slave3 Register Address register
I2C Slave3 Control register
I2C Slave3 Data Out register
I2C Slave4 Physical Address register
I2C Slave4 Register Address register
I2C Slave4 Control register
I2C Slave4 Data Out register
I2C Slave4 Data In register
I2C Slave Enable bit
I2C Slave Byte Swap enable bit
I2C Slave Do Not Write Register Value bit
I2C Slave Group bit
I2C Slave R/W bit
Bank Select register
ICM20648 Device ID value
ICM20948 Device ID value
ICM20648 register banks Documentation#
Register and associated bit definitions Documentation#
ICM20648_REG_USER_CTRL#
#define ICM20648_REG_USER_CTRLValue:
(ICM20648_BANK_0 | 0x03)
User control register
ICM20648_REG_LP_CONFIG#
#define ICM20648_REG_LP_CONFIGValue:
(ICM20648_BANK_0 | 0x05)
Low Power mode config register
ICM20648_REG_PWR_MGMT_1#
#define ICM20648_REG_PWR_MGMT_1Value:
(ICM20648_BANK_0 | 0x06)
Power Management 1 register
ICM20648_REG_PWR_MGMT_2#
#define ICM20648_REG_PWR_MGMT_2Value:
(ICM20648_BANK_0 | 0x07)
Power Management 2 register
ICM20648_REG_INT_PIN_CFG#
#define ICM20648_REG_INT_PIN_CFGValue:
(ICM20648_BANK_0 | 0x0F)
Interrupt Pin Configuration register
ICM20648_REG_INT_ENABLE#
#define ICM20648_REG_INT_ENABLEValue:
(ICM20648_BANK_0 | 0x10)
Interrupt Enable register
ICM20648_REG_INT_ENABLE_1#
#define ICM20648_REG_INT_ENABLE_1Value:
(ICM20648_BANK_0 | 0x11)
Interrupt Enable 1 register
ICM20648_BIT_RAW_DATA_0_RDY_EN#
#define ICM20648_BIT_RAW_DATA_0_RDY_ENValue:
0x01
Raw data ready interrupt enable bit
ICM20648_REG_INT_ENABLE_2#
#define ICM20648_REG_INT_ENABLE_2Value:
(ICM20648_BANK_0 | 0x12)
Interrupt Enable 2 register
ICM20648_BIT_FIFO_OVERFLOW_EN_0#
#define ICM20648_BIT_FIFO_OVERFLOW_EN_0Value:
0x01
FIFO overflow interrupt enable bit
ICM20648_REG_INT_ENABLE_3#
#define ICM20648_REG_INT_ENABLE_3Value:
(ICM20648_BANK_0 | 0x13)
Interrupt Enable 2 register
ICM20648_REG_INT_STATUS#
#define ICM20648_REG_INT_STATUSValue:
(ICM20648_BANK_0 | 0x19)
Interrupt Status register
ICM20648_REG_INT_STATUS_1#
#define ICM20648_REG_INT_STATUS_1Value:
(ICM20648_BANK_0 | 0x1A)
Interrupt Status 1 register
ICM20648_BIT_RAW_DATA_0_RDY_INT#
#define ICM20648_BIT_RAW_DATA_0_RDY_INTValue:
0x01
Raw data ready interrupt occurred bit
ICM20648_REG_INT_STATUS_2#
#define ICM20648_REG_INT_STATUS_2Value:
(ICM20648_BANK_0 | 0x1B)
Interrupt Status 2 register
ICM20648_REG_ACCEL_XOUT_H_SH#
#define ICM20648_REG_ACCEL_XOUT_H_SHValue:
(ICM20648_BANK_0 | 0x2D)
Accelerometer X-axis data high byte
ICM20648_REG_ACCEL_XOUT_L_SH#
#define ICM20648_REG_ACCEL_XOUT_L_SHValue:
(ICM20648_BANK_0 | 0x2E)
Accelerometer X-axis data low byte
ICM20648_REG_ACCEL_YOUT_H_SH#
#define ICM20648_REG_ACCEL_YOUT_H_SHValue:
(ICM20648_BANK_0 | 0x2F)
Accelerometer Y-axis data high byte
ICM20648_REG_ACCEL_YOUT_L_SH#
#define ICM20648_REG_ACCEL_YOUT_L_SHValue:
(ICM20648_BANK_0 | 0x30)
Accelerometer Y-axis data low byte
ICM20648_REG_ACCEL_ZOUT_H_SH#
#define ICM20648_REG_ACCEL_ZOUT_H_SHValue:
(ICM20648_BANK_0 | 0x31)
Accelerometer Z-axis data high byte
ICM20648_REG_ACCEL_ZOUT_L_SH#
#define ICM20648_REG_ACCEL_ZOUT_L_SHValue:
(ICM20648_BANK_0 | 0x32)
Accelerometer Z-axis data low byte
ICM20648_REG_GYRO_XOUT_H_SH#
#define ICM20648_REG_GYRO_XOUT_H_SHValue:
(ICM20648_BANK_0 | 0x33)
Gyroscope X-axis data high byte
ICM20648_REG_GYRO_XOUT_L_SH#
#define ICM20648_REG_GYRO_XOUT_L_SHValue:
(ICM20648_BANK_0 | 0x34)
Gyroscope X-axis data low byte
ICM20648_REG_GYRO_YOUT_H_SH#
#define ICM20648_REG_GYRO_YOUT_H_SHValue:
(ICM20648_BANK_0 | 0x35)
Gyroscope Y-axis data high byte
ICM20648_REG_GYRO_YOUT_L_SH#
#define ICM20648_REG_GYRO_YOUT_L_SHValue:
(ICM20648_BANK_0 | 0x36)
Gyroscope Y-axis data low byte
ICM20648_REG_GYRO_ZOUT_H_SH#
#define ICM20648_REG_GYRO_ZOUT_H_SHValue:
(ICM20648_BANK_0 | 0x37)
Gyroscope Z-axis data high byte
ICM20648_REG_GYRO_ZOUT_L_SH#
#define ICM20648_REG_GYRO_ZOUT_L_SHValue:
(ICM20648_BANK_0 | 0x38)
Gyroscope Z-axis data low byte
ICM20648_REG_TEMPERATURE_H#
#define ICM20648_REG_TEMPERATURE_HValue:
(ICM20648_BANK_0 | 0x39)
Temperature data high byte
ICM20648_REG_TEMPERATURE_L#
#define ICM20648_REG_TEMPERATURE_LValue:
(ICM20648_BANK_0 | 0x3A)
Temperature data low byte
ICM20648_REG_TEMP_CONFIG#
#define ICM20648_REG_TEMP_CONFIGValue:
(ICM20648_BANK_0 | 0x53)
Temperature Configuration register
ICM20648_REG_FIFO_EN_1#
#define ICM20648_REG_FIFO_EN_1Value:
(ICM20648_BANK_0 | 0x66)
FIFO Enable 1 register
ICM20648_REG_FIFO_EN_2#
#define ICM20648_REG_FIFO_EN_2Value:
(ICM20648_BANK_0 | 0x67)
FIFO Enable 2 register
ICM20648_BIT_ACCEL_FIFO_EN#
#define ICM20648_BIT_ACCEL_FIFO_ENValue:
0x10
Enable writing acceleration data to FIFO bit
ICM20648_BITS_GYRO_FIFO_EN#
#define ICM20648_BITS_GYRO_FIFO_ENValue:
0x0E
Enable writing gyroscope data to FIFO bit
ICM20648_REG_FIFO_RST#
#define ICM20648_REG_FIFO_RSTValue:
(ICM20648_BANK_0 | 0x68)
FIFO Reset register
ICM20648_REG_FIFO_MODE#
#define ICM20648_REG_FIFO_MODEValue:
(ICM20648_BANK_0 | 0x69)
FIFO Mode register
ICM20648_REG_FIFO_COUNT_H#
#define ICM20648_REG_FIFO_COUNT_HValue:
(ICM20648_BANK_0 | 0x70)
FIFO data count high byte
ICM20648_REG_FIFO_COUNT_L#
#define ICM20648_REG_FIFO_COUNT_LValue:
(ICM20648_BANK_0 | 0x71)
FIFO data count low byte
ICM20648_REG_FIFO_R_W#
#define ICM20648_REG_FIFO_R_WValue:
(ICM20648_BANK_0 | 0x72)
FIFO Read/Write register
ICM20648_REG_DATA_RDY_STATUS#
#define ICM20648_REG_DATA_RDY_STATUSValue:
(ICM20648_BANK_0 | 0x74)
Data Ready Status register
ICM20648_REG_FIFO_CFG#
#define ICM20648_REG_FIFO_CFGValue:
(ICM20648_BANK_0 | 0x76)
FIFO Configuration register
ICM20648_BIT_MULTI_FIFO_CFG#
#define ICM20648_BIT_MULTI_FIFO_CFGValue:
0x01
Interrupt status for each sensor is required
ICM20648_BIT_SINGLE_FIFO_CFG#
#define ICM20648_BIT_SINGLE_FIFO_CFGValue:
0x00
Interrupt status for only a single sensor is required
ICM20648_REG_XA_OFFSET_H#
#define ICM20648_REG_XA_OFFSET_HValue:
(ICM20648_BANK_1 | 0x14)
Acceleration sensor X-axis offset cancellation high byte
ICM20648_REG_XA_OFFSET_L#
#define ICM20648_REG_XA_OFFSET_LValue:
(ICM20648_BANK_1 | 0x15)
Acceleration sensor X-axis offset cancellation low byte
ICM20648_REG_YA_OFFSET_H#
#define ICM20648_REG_YA_OFFSET_HValue:
(ICM20648_BANK_1 | 0x17)
Acceleration sensor Y-axis offset cancellation high byte
ICM20648_REG_YA_OFFSET_L#
#define ICM20648_REG_YA_OFFSET_LValue:
(ICM20648_BANK_1 | 0x18)
Acceleration sensor Y-axis offset cancellation low byte
ICM20648_REG_ZA_OFFSET_H#
#define ICM20648_REG_ZA_OFFSET_HValue:
(ICM20648_BANK_1 | 0x1A)
Acceleration sensor Z-axis offset cancellation high byte
ICM20648_REG_ZA_OFFSET_L#
#define ICM20648_REG_ZA_OFFSET_LValue:
(ICM20648_BANK_1 | 0x1B)
Acceleration sensor Z-axis offset cancellation low byte
ICM20648_REG_TIMEBASE_CORR_PLL#
#define ICM20648_REG_TIMEBASE_CORR_PLLValue:
(ICM20648_BANK_1 | 0x28)
PLL Timebase Correction register
ICM20648_REG_GYRO_SMPLRT_DIV#
#define ICM20648_REG_GYRO_SMPLRT_DIVValue:
(ICM20648_BANK_2 | 0x00)
Gyroscope Sample Rate Divider register
ICM20648_REG_GYRO_CONFIG_1#
#define ICM20648_REG_GYRO_CONFIG_1Value:
(ICM20648_BANK_2 | 0x01)
Gyroscope Configuration 1 register
ICM20648_BIT_GYRO_FCHOICE#
#define ICM20648_BIT_GYRO_FCHOICEValue:
0x01
Gyro Digital Low-Pass Filter enable bit
ICM20648_SHIFT_GYRO_FS_SEL#
#define ICM20648_SHIFT_GYRO_FS_SELValue:
1
Gyro Full Scale Select bit shift
ICM20648_MASK_GYRO_FULLSCALE#
#define ICM20648_MASK_GYRO_FULLSCALEValue:
0x06
Gyro Full Scale Select bitmask
ICM20648_GYRO_FULLSCALE_250DPS#
#define ICM20648_GYRO_FULLSCALE_250DPSValue:
(0x00 << ICM20648_SHIFT_GYRO_FS_SEL)
Gyro Full Scale = 250 deg/sec
ICM20648_GYRO_FULLSCALE_500DPS#
#define ICM20648_GYRO_FULLSCALE_500DPSValue:
(0x01 << ICM20648_SHIFT_GYRO_FS_SEL)
Gyro Full Scale = 500 deg/sec
ICM20648_GYRO_FULLSCALE_1000DPS#
#define ICM20648_GYRO_FULLSCALE_1000DPSValue:
(0x02 << ICM20648_SHIFT_GYRO_FS_SEL)
Gyro Full Scale = 1000 deg/sec.
ICM20648_GYRO_FULLSCALE_2000DPS#
#define ICM20648_GYRO_FULLSCALE_2000DPSValue:
(0x03 << ICM20648_SHIFT_GYRO_FS_SEL)
Gyro Full Scale = 2000 deg/sec.
ICM20648_GYRO_BW_12100HZ#
#define ICM20648_GYRO_BW_12100HZValue:
(0x00 << ICM20648_SHIFT_GYRO_DLPCFG)
Gyro Bandwidth = 12100 Hz.
ICM20648_GYRO_BW_360HZ#
#define ICM20648_GYRO_BW_360HZValue:
( (0x07 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 360 Hz
ICM20648_GYRO_BW_200HZ#
#define ICM20648_GYRO_BW_200HZValue:
( (0x00 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 200 Hz
ICM20648_GYRO_BW_150HZ#
#define ICM20648_GYRO_BW_150HZValue:
( (0x01 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 150 Hz
ICM20648_GYRO_BW_120HZ#
#define ICM20648_GYRO_BW_120HZValue:
( (0x02 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 120 Hz
ICM20648_GYRO_BW_51HZ#
#define ICM20648_GYRO_BW_51HZValue:
( (0x03 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 51 Hz
ICM20648_GYRO_BW_24HZ#
#define ICM20648_GYRO_BW_24HZValue:
( (0x04 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 24 Hz
ICM20648_GYRO_BW_12HZ#
#define ICM20648_GYRO_BW_12HZValue:
( (0x05 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 12 Hz
ICM20648_GYRO_BW_6HZ#
#define ICM20648_GYRO_BW_6HZValue:
( (0x06 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE)
Gyro Bandwidth = 6 Hz
ICM20648_REG_GYRO_CONFIG_2#
#define ICM20648_REG_GYRO_CONFIG_2Value:
(ICM20648_BANK_2 | 0x02)
Gyroscope Configuration 2 register
ICM20648_REG_XG_OFFS_USRH#
#define ICM20648_REG_XG_OFFS_USRHValue:
(ICM20648_BANK_2 | 0x03)
Gyroscope sensor X-axis offset cancellation high byte
ICM20648_REG_XG_OFFS_USRL#
#define ICM20648_REG_XG_OFFS_USRLValue:
(ICM20648_BANK_2 | 0x04)
Gyroscope sensor X-axis offset cancellation low byte
ICM20648_REG_YG_OFFS_USRH#
#define ICM20648_REG_YG_OFFS_USRHValue:
(ICM20648_BANK_2 | 0x05)
Gyroscope sensor Y-axis offset cancellation high byte
ICM20648_REG_YG_OFFS_USRL#
#define ICM20648_REG_YG_OFFS_USRLValue:
(ICM20648_BANK_2 | 0x06)
Gyroscope sensor Y-axis offset cancellation low byte
ICM20648_REG_ZG_OFFS_USRH#
#define ICM20648_REG_ZG_OFFS_USRHValue:
(ICM20648_BANK_2 | 0x07)
Gyroscope sensor Z-axis offset cancellation high byte
ICM20648_REG_ZG_OFFS_USRL#
#define ICM20648_REG_ZG_OFFS_USRLValue:
(ICM20648_BANK_2 | 0x08)
Gyroscope sensor Z-axis offset cancellation low byte
ICM20648_REG_ODR_ALIGN_EN#
#define ICM20648_REG_ODR_ALIGN_ENValue:
(ICM20648_BANK_2 | 0x09)
Output Data Rate start time alignment
ICM20648_REG_ACCEL_SMPLRT_DIV_1#
#define ICM20648_REG_ACCEL_SMPLRT_DIV_1Value:
(ICM20648_BANK_2 | 0x10)
Acceleration Sensor Sample Rate Divider 1 register
ICM20648_REG_ACCEL_SMPLRT_DIV_2#
#define ICM20648_REG_ACCEL_SMPLRT_DIV_2Value:
(ICM20648_BANK_2 | 0x11)
Acceleration Sensor Sample Rate Divider 2 register
ICM20648_REG_ACCEL_INTEL_CTRL#
#define ICM20648_REG_ACCEL_INTEL_CTRLValue:
(ICM20648_BANK_2 | 0x12)
Accelerometer Hardware Intelligence Control register
ICM20648_BIT_ACCEL_INTEL_EN#
#define ICM20648_BIT_ACCEL_INTEL_ENValue:
0x02
Wake-up On Motion enable bit
ICM20648_BIT_ACCEL_INTEL_MODE#
#define ICM20648_BIT_ACCEL_INTEL_MODEValue:
0x01
WOM algorithm selection bit
ICM20648_REG_ACCEL_WOM_THR#
#define ICM20648_REG_ACCEL_WOM_THRValue:
(ICM20648_BANK_2 | 0x13)
Wake-up On Motion Threshold register
ICM20648_REG_ACCEL_CONFIG#
#define ICM20648_REG_ACCEL_CONFIGValue:
(ICM20648_BANK_2 | 0x14)
Accelerometer Configuration register
ICM20648_BIT_ACCEL_FCHOICE#
#define ICM20648_BIT_ACCEL_FCHOICEValue:
0x01
Accel Digital Low-Pass Filter enable bit
ICM20648_MASK_ACCEL_FULLSCALE#
#define ICM20648_MASK_ACCEL_FULLSCALEValue:
0x06
Accel Full Scale Select bitmask
ICM20648_ACCEL_FULLSCALE_2G#
#define ICM20648_ACCEL_FULLSCALE_2GValue:
(0x00 << ICM20648_SHIFT_ACCEL_FS)
Accel Full Scale = 2 g
ICM20648_ACCEL_FULLSCALE_4G#
#define ICM20648_ACCEL_FULLSCALE_4GValue:
(0x01 << ICM20648_SHIFT_ACCEL_FS)
Accel Full Scale = 4 g
ICM20648_ACCEL_FULLSCALE_8G#
#define ICM20648_ACCEL_FULLSCALE_8GValue:
(0x02 << ICM20648_SHIFT_ACCEL_FS)
Accel Full Scale = 8 g
ICM20648_ACCEL_FULLSCALE_16G#
#define ICM20648_ACCEL_FULLSCALE_16GValue:
(0x03 << ICM20648_SHIFT_ACCEL_FS)
Accel Full Scale = 16 g.
ICM20648_ACCEL_BW_1210HZ#
#define ICM20648_ACCEL_BW_1210HZValue:
(0x00 << ICM20648_SHIFT_ACCEL_DLPCFG)
Accel Bandwidth = 1210 Hz
ICM20648_ACCEL_BW_470HZ#
#define ICM20648_ACCEL_BW_470HZValue:
( (0x07 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 470 Hz
ICM20648_ACCEL_BW_246HZ#
#define ICM20648_ACCEL_BW_246HZValue:
( (0x00 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 246 Hz
ICM20648_ACCEL_BW_111HZ#
#define ICM20648_ACCEL_BW_111HZValue:
( (0x02 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 111 Hz
ICM20648_ACCEL_BW_50HZ#
#define ICM20648_ACCEL_BW_50HZValue:
( (0x03 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 50 Hz
ICM20648_ACCEL_BW_24HZ#
#define ICM20648_ACCEL_BW_24HZValue:
( (0x04 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 24 Hz
ICM20648_ACCEL_BW_12HZ#
#define ICM20648_ACCEL_BW_12HZValue:
( (0x05 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 12 Hz
ICM20648_ACCEL_BW_6HZ#
#define ICM20648_ACCEL_BW_6HZValue:
( (0x06 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE)
Accel Bandwidth = 6 Hz
ICM20648_REG_ACCEL_CONFIG_2#
#define ICM20648_REG_ACCEL_CONFIG_2Value:
(ICM20648_BANK_2 | 0x15)
Accelerometer Configuration 2 register
ICM20648_BIT_ACCEL_CTEN#
#define ICM20648_BIT_ACCEL_CTENValue:
0x1C
Accelerometer Self-Test Enable bits
ICM20648_REG_I2C_MST_ODR_CONFIG#
#define ICM20648_REG_I2C_MST_ODR_CONFIGValue:
(ICM20648_BANK_3 | 0x00)
I2C Master Output Data Rate Configuration register
ICM20648_REG_I2C_MST_CTRL#
#define ICM20648_REG_I2C_MST_CTRLValue:
(ICM20648_BANK_3 | 0x01)
I2C Master Control register
ICM20648_BIT_I2C_MST_P_NSR#
#define ICM20648_BIT_I2C_MST_P_NSRValue:
0x10
Stop between reads enabling bit
ICM20648_REG_I2C_MST_DELAY_CTRL#
#define ICM20648_REG_I2C_MST_DELAY_CTRLValue:
(ICM20648_BANK_3 | 0x02)
I2C Master Delay Control register
ICM20648_REG_I2C_SLV0_ADDR#
#define ICM20648_REG_I2C_SLV0_ADDRValue:
(ICM20648_BANK_3 | 0x03)
I2C Slave0 Physical Address register
ICM20648_REG_I2C_SLV0_REG#
#define ICM20648_REG_I2C_SLV0_REGValue:
(ICM20648_BANK_3 | 0x04)
I2C Slave0 Register Address register
ICM20648_REG_I2C_SLV0_CTRL#
#define ICM20648_REG_I2C_SLV0_CTRLValue:
(ICM20648_BANK_3 | 0x05)
I2C Slave0 Control register
ICM20648_REG_I2C_SLV0_DO#
#define ICM20648_REG_I2C_SLV0_DOValue:
(ICM20648_BANK_3 | 0x06)
I2C Slave0 Data Out register
ICM20648_REG_I2C_SLV1_ADDR#
#define ICM20648_REG_I2C_SLV1_ADDRValue:
(ICM20648_BANK_3 | 0x07)
I2C Slave1 Physical Address register
ICM20648_REG_I2C_SLV1_REG#
#define ICM20648_REG_I2C_SLV1_REGValue:
(ICM20648_BANK_3 | 0x08)
I2C Slave1 Register Address register
ICM20648_REG_I2C_SLV1_CTRL#
#define ICM20648_REG_I2C_SLV1_CTRLValue:
(ICM20648_BANK_3 | 0x09)
I2C Slave1 Control register
ICM20648_REG_I2C_SLV1_DO#
#define ICM20648_REG_I2C_SLV1_DOValue:
(ICM20648_BANK_3 | 0x0A)
I2C Slave1 Data Out register
ICM20648_REG_I2C_SLV2_ADDR#
#define ICM20648_REG_I2C_SLV2_ADDRValue:
(ICM20648_BANK_3 | 0x0B)
I2C Slave2 Physical Address register
ICM20648_REG_I2C_SLV2_REG#
#define ICM20648_REG_I2C_SLV2_REGValue:
(ICM20648_BANK_3 | 0x0C)
I2C Slave2 Register Address register
ICM20648_REG_I2C_SLV2_CTRL#
#define ICM20648_REG_I2C_SLV2_CTRLValue:
(ICM20648_BANK_3 | 0x0D)
I2C Slave2 Control register
ICM20648_REG_I2C_SLV2_DO#
#define ICM20648_REG_I2C_SLV2_DOValue:
(ICM20648_BANK_3 | 0x0E)
I2C Slave2 Data Out register
ICM20648_REG_I2C_SLV3_ADDR#
#define ICM20648_REG_I2C_SLV3_ADDRValue:
(ICM20648_BANK_3 | 0x0F)
I2C Slave3 Physical Address register
ICM20648_REG_I2C_SLV3_REG#
#define ICM20648_REG_I2C_SLV3_REGValue:
(ICM20648_BANK_3 | 0x10)
I2C Slave3 Register Address register
ICM20648_REG_I2C_SLV3_CTRL#
#define ICM20648_REG_I2C_SLV3_CTRLValue:
(ICM20648_BANK_3 | 0x11)
I2C Slave3 Control register
ICM20648_REG_I2C_SLV3_DO#
#define ICM20648_REG_I2C_SLV3_DOValue:
(ICM20648_BANK_3 | 0x12)
I2C Slave3 Data Out register
ICM20648_REG_I2C_SLV4_ADDR#
#define ICM20648_REG_I2C_SLV4_ADDRValue:
(ICM20648_BANK_3 | 0x13)
I2C Slave4 Physical Address register
ICM20648_REG_I2C_SLV4_REG#
#define ICM20648_REG_I2C_SLV4_REGValue:
(ICM20648_BANK_3 | 0x14)
I2C Slave4 Register Address register
ICM20648_REG_I2C_SLV4_CTRL#
#define ICM20648_REG_I2C_SLV4_CTRLValue:
(ICM20648_BANK_3 | 0x15)
I2C Slave4 Control register
ICM20648_REG_I2C_SLV4_DO#
#define ICM20648_REG_I2C_SLV4_DOValue:
(ICM20648_BANK_3 | 0x16)
I2C Slave4 Data Out register
ICM20648_REG_I2C_SLV4_DI#
#define ICM20648_REG_I2C_SLV4_DIValue:
(ICM20648_BANK_3 | 0x17)
I2C Slave4 Data In register
ICM20648_BIT_I2C_REG_DIS#
#define ICM20648_BIT_I2C_REG_DISValue:
0x20
I2C Slave Do Not Write Register Value bit