ICM20948 IMU driver and SPP service. More...
Go to the source code of this file.
Data Structures | |
| union | ICM20948_RegBankSel_t |
| REG_BANK_SEL register bit layout. More... | |
| union | ICM20948_RegUserCtrl_t |
| USER_CTRL register bit layout. More... | |
| union | ICM20948_RegLpConf_t |
| LP_CONFIG register bit layout. More... | |
| union | ICM20948_RegPwrMgmt1_t |
| PWR_MGMT_1 register bit layout. More... | |
| union | ICM20948_RegPwrMgmt2_t |
| PWR_MGMT_2 register bit layout. More... | |
| union | ICM20948_RegIntEnable_t |
| INT_ENABLE register bit layout. More... | |
| union | ICM20948_RegIntEnable2_t |
| INT_ENABLE_2 register bit layout. More... | |
| union | ICM20948_RegIntStatus_t |
| INT_STATUS register bit layout. More... | |
| union | ICM20948_RegDmpIntStatus_t |
| DMP_INT_STATUS register bit layout. More... | |
| union | ICM20948_RegSingleFifoPrioritySel_t |
| SINGLE_FIFO_PRIORITY_SEL register bit layout. More... | |
| union | ICM20948_RegFifoEn1_t |
| FIFO_EN_1 register bit layout. More... | |
| union | ICM20948_RegFifoEn2_t |
| FIFO_EN_2 register bit layout. More... | |
| union | ICM20948_RegFifoRst_t |
| FIFO_RST register bit layout. More... | |
| union | ICM20948_RegFifoMode_t |
| FIFO_MODE register bit layout. More... | |
| union | ICM20948_RegFifoCfg_t |
| FIFO_CFG register bit layout. More... | |
| union | ICM20948_RegHwFixDisable_t |
| HW_FIX_DISABLE register bit layout. More... | |
| union | ICM20948_RegGyroConfig_t |
| GYRO_CONFIG_1 register bit layout. More... | |
| union | ICM20948_RegAccelConfig_t |
| ACCEL_CONFIG register bit layout. More... | |
| union | ICM20948_RegAccelConfig2_t |
| ACCEL_CONFIG_2 register bit layout. More... | |
| union | ICM20948_RegI2cCtrl_t |
| I2C_MST_CTRL register bit layout. More... | |
| union | ICM20948_RegI2cSlvAddr_t |
| I2C_SLVx_ADDR register bit layout. More... | |
| union | ICM20948_RegI2cSlvCtrl_t |
| I2C_SLVx_CTRL register bit layout. More... | |
| union | ICM20948_RegI2cMstOdrConfig_t |
| I2C_MST_ODR_CONFIG register bit layout. More... | |
| struct | ICM20948_SensorData_t |
| Parsed sensor sample from the DMP FIFO. More... | |
| struct | ICM20948_Data_t |
| ICM20948 interrupt and GPIO context. More... | |
| struct | ICM20948_t |
| ICM20948 sensor instance. More... | |
Enumerations | |
| enum | ICM20948_RegBank_t { K_ICM20948_REG_BANK_0 = 0x00U , K_ICM20948_REG_BANK_1 = 0x10U , K_ICM20948_REG_BANK_2 = 0x20U , K_ICM20948_REG_BANK_3 = 0x30U } |
| ICM20948 register bank selector. More... | |
| enum | ICM20948_ClockSel_t { K_ICM20948_CLK_INTERNAL_20MHZ = 0U , K_ICM20948_CLK_AUTO = 1U , K_ICM20948_CLK_STOP = 7U } |
| Clock source selection for PWR_MGMT_1. More... | |
| enum | ICM20948_GyroFsSel_t { K_ICM20948_GYRO_FS_250DPS = 0U , K_ICM20948_GYRO_FS_500DPS = 1U , K_ICM20948_GYRO_FS_1000DPS = 2U , K_ICM20948_GYRO_FS_2000DPS = 3U } |
| Gyroscope full-scale range selection. More... | |
| enum | ICM20948_AccelFsSel_t { K_ICM20948_ACCEL_FS_2G = 0U , K_ICM20948_ACCEL_FS_4G = 1U , K_ICM20948_ACCEL_FS_8G = 2U , K_ICM20948_ACCEL_FS_16G = 3U } |
| Accelerometer full-scale range selection. More... | |
Functions | |
| const SPP_SERVICE_ProducerContract_t * | SPP_SERVICES_ICM20948_getProducerContract (void) |
| Returns a pointer to the ICM20948 producer contract. | |
ICM20948 IMU driver and SPP service.
Provides SPI register access, DMP firmware loading and sensor data acquisition for the TDK InvenSense ICM20948 9-axis IMU. Supports data-ready interrupt via GPIO event groups.
The driver follows a three-step workflow:
Hardware pin configuration is encoded in K_ICM20948_INT_* and K_ICM20948_SPI_HOST_USED constants; no external instance is needed.
Naming conventions used in this file:
Definition in file icm20948.h.
| #define K_ICM20948_TASK_PRIORITY 4U |
FreeRTOS task priority for the ICM20948 service task.
Definition at line 38 of file icm20948.h.
| #define K_ICM20948_CONFIG_TASK_PRIORITY 5U |
Priority for the DMP configuration task.
Definition at line 39 of file icm20948.h.
| #define K_ICM20948_READ_SENSORS_PRIORITY 4U |
Priority for the sensor read task.
Definition at line 40 of file icm20948.h.
| #define K_ICM20948_TASK_TIMEOUT_MS 5000U |
Timeout in ms for the acquire task.
Definition at line 41 of file icm20948.h.
| #define K_ICM20948_SERVICE_APID (0x0002U) |
APID produced by the ICM20948 module (bitmask scheme).
Definition at line 42 of file icm20948.h.
Referenced by SPP_SERVICES_SX1262_consumeData().
| #define K_ICM20948_SPI_HOST_USED (1U) |
SPI host identifier (SPI2_HOST = 1 on ESP32).
Definition at line 45 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_init().
| #define K_ICM20948_PIN_NUM_CS 21U |
SPI chip-select GPIO pin.
Definition at line 46 of file icm20948.h.
| #define K_ICM20948_PIN_NUM_CIPO 47U |
SPI CIPO (MISO) GPIO pin.
Definition at line 47 of file icm20948.h.
| #define K_ICM20948_PIN_NUM_COPI 38U |
SPI COPI (MOSI) GPIO pin.
Definition at line 48 of file icm20948.h.
| #define K_ICM20948_PIN_NUM_CLK 48U |
SPI clock GPIO pin.
Definition at line 49 of file icm20948.h.
| #define K_ICM20948_READ_OP 0x80U |
SPI read flag: set MSB to signal a read transaction.
Definition at line 50 of file icm20948.h.
| #define K_ICM20948_WRITE_OP 0x00U |
SPI write marker (zero).
Definition at line 51 of file icm20948.h.
| #define K_ICM20948_EMPTY_MESSAGE 0x00U |
Dummy byte clocked out during SPI reads.
Definition at line 52 of file icm20948.h.
| #define K_ICM20948_INT_PIN_NUM 4U |
GPIO interrupt pin.
Definition at line 55 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_init().
| #define K_ICM20948_INT_INTR_TYPE 1U |
Interrupt trigger type (1=rising).
Definition at line 56 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_init().
| #define K_ICM20948_INT_PULL 0U |
Pull resistor: 0=none, 1=up, 2=down.
Definition at line 57 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_init().
| #define K_ICM20948_REG_BANK_SEL 0x7FU |
Register bank select register address.
Definition at line 60 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_setBank().
| #define K_ICM20948_REG_WHO_AM_I 0x00U |
WHO_AM_I register; expected value 0xEA.
Definition at line 63 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_USER_CTRL 0x03U |
User control register.
Definition at line 64 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_LP_CONF 0x05U |
Low-power configuration register.
Definition at line 65 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_PWR_MGMT_1 0x06U |
Power management 1 register.
Definition at line 66 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit(), and SPP_SERVICES_ICM20948_lpWakeCycle().
| #define K_ICM20948_REG_PWR_MGMT_2 0x07U |
Power management 2 register.
Definition at line 67 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_INT_ENABLE 0x10U |
Interrupt enable register.
Definition at line 68 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_INT_ENABLE_1 0x11U |
Interrupt enable 1 register.
Definition at line 69 of file icm20948.h.
| #define K_ICM20948_REG_INT_ENABLE_2 0x12U |
Interrupt enable 2 register.
Definition at line 70 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_DMP_INT_STATUS 0x18U |
DMP interrupt status register.
Definition at line 71 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_checkFifoData().
| #define K_ICM20948_REG_INT_STATUS 0x19U |
Interrupt status register.
Definition at line 72 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_checkFifoData().
| #define K_ICM20948_REG_SINGLE_FIFO_PRIORITY_SEL 0x26U |
FIFO single-stream priority select register.
Definition at line 73 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_PERIPH_SENS_DATA_00 0x3BU |
External sensor data register 0.
Definition at line 74 of file icm20948.h.
| #define K_ICM20948_REG_FIFO_EN_1 0x66U |
FIFO enable 1 register.
Definition at line 75 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_FIFO_EN_2 0x67U |
FIFO enable 2 register.
Definition at line 76 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_FIFO_RST 0x68U |
FIFO reset register.
Definition at line 77 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_resetFifo().
| #define K_ICM20948_REG_FIFO_MODE 0x69U |
FIFO mode register.
Definition at line 78 of file icm20948.h.
| #define K_ICM20948_REG_FIFO_COUNTH 0x70U |
FIFO byte count high register.
Definition at line 79 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_checkFifoData().
| #define K_ICM20948_REG_FIFO_COUNTL 0x71U |
FIFO byte count low register.
Definition at line 80 of file icm20948.h.
| #define K_ICM20948_REG_FIFO_R_W 0x72U |
FIFO read/write data register.
Definition at line 81 of file icm20948.h.
Referenced by readFifoBurst().
| #define K_ICM20948_REG_HW_FIX_DISABLE 0x75U |
Hardware fix disable register.
Definition at line 82 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_FIFO_CFG 0x76U |
FIFO configuration register.
Definition at line 83 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_TIMEBASE_CORRECTION_PLL 0x28U |
PLL timebase correction register (bank 1).
Definition at line 86 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_GYRO_SMPLRT_DIV 0x00U |
Gyroscope sample-rate divider register (bank 2).
Definition at line 89 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_GYRO_CONFIG 0x01U |
Gyroscope configuration register (bank 2).
Definition at line 90 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_ACCEL_SMPLRT_DIV_1 0x10U |
Accelerometer sample-rate divider high register (bank 2).
Definition at line 91 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_ACCEL_SMPLRT_DIV_2 0x11U |
Accelerometer sample-rate divider low register (bank 2).
Definition at line 92 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_ACCEL_CONFIG 0x14U |
Accelerometer configuration register (bank 2).
Definition at line 93 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_ACCEL_CONFIG_2 0x15U |
Accelerometer configuration 2 register (bank 2).
Definition at line 94 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_DMP_ADDR_MSB 0x50U |
DMP program start address MSB (bank 2).
Definition at line 95 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_DMP_ADDR_LSB 0x51U |
DMP program start address LSB (bank 2).
Definition at line 96 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_I2C_MST_ODR_CONFIG 0x00U |
I2C master ODR configuration register (bank 3).
Definition at line 99 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_I2C_CTRL 0x01U |
I2C master control register (bank 3).
Definition at line 100 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_SLV0_ADDR 0x03U |
I2C slave 0 address register (bank 3).
Definition at line 101 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_SLV0_REG 0x04U |
I2C slave 0 register address (bank 3).
Definition at line 102 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_SLV0_CTRL 0x05U |
I2C slave 0 control register (bank 3).
Definition at line 103 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_SLV0_DO 0x06U |
I2C slave 0 data out register (bank 3).
Definition at line 104 of file icm20948.h.
| #define K_ICM20948_I2C_SLV1_ADDR 0x07U |
I2C slave 1 address register (bank 3).
Definition at line 105 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_I2C_SLV1_REG 0x08U |
I2C slave 1 register address (bank 3).
Definition at line 106 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_I2C_SLV1_CTRL 0x09U |
I2C slave 1 control register (bank 3).
Definition at line 107 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_I2C_SLV1_DO 0x0AU |
I2C slave 1 data out register (bank 3).
Definition at line 108 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_MEM_START_ADDR 0x7CU |
DMP memory start address register.
Definition at line 111 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_dmpWriteBytes(), and SPP_SERVICES_ICM20948_loadDmp().
| #define K_ICM20948_REG_MEM_R_W 0x7DU |
DMP memory read/write register.
Definition at line 112 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_dmpWriteBytes(), and SPP_SERVICES_ICM20948_loadDmp().
| #define K_ICM20948_REG_MEM_BANK_SEL 0x7EU |
DMP memory bank select register.
Definition at line 113 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_dmpWriteBytes(), and SPP_SERVICES_ICM20948_loadDmp().
| #define K_ICM20948_DMP_LOAD_START 0x0090U |
Start address in DMP memory for firmware load.
Definition at line 114 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_loadDmp().
| #define K_ICM20948_DMP_DATA_OUT_CTL1 (4U * 16U) |
DMP output control 1 address.
Definition at line 117 of file icm20948.h.
Referenced by ICM20948_dmpWriteOutputConfig().
| #define K_ICM20948_DMP_DATA_OUT_CTL2 (4U * 16U + 2U) |
DMP output control 2 address.
Definition at line 118 of file icm20948.h.
Referenced by ICM20948_dmpWriteOutputConfig().
| #define K_ICM20948_DMP_DATA_INTR_CTL (4U * 16U + 12U) |
DMP interrupt control address.
Definition at line 119 of file icm20948.h.
Referenced by ICM20948_dmpWriteOutputConfig().
| #define K_ICM20948_DMP_MOTION_EVENT_CTL (4U * 16U + 14U) |
DMP motion event control address.
Definition at line 120 of file icm20948.h.
Referenced by ICM20948_dmpWriteOutputConfig().
| #define K_ICM20948_DMP_DATA_RDY_STATUS (8U * 16U + 10U) |
DMP data ready status address.
Definition at line 121 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ODR_QUAT6 (10U * 16U + 12U) |
DMP quaternion6 output data rate address.
Definition at line 122 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ODR_QUAT9 (10U * 16U + 8U) |
DMP quaternion9 output data rate address.
Definition at line 123 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ODR_GYRO (11U * 16U + 10U) |
DMP gyroscope output data rate address.
Definition at line 124 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ODR_CPASS (11U * 16U + 6U) |
DMP compass output data rate address.
Definition at line 125 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ODR_ACCEL (11U * 16U + 14U) |
DMP accelerometer output data rate address.
Definition at line 126 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_TIME_BUFFER (29U * 16U + 8U) |
DMP compass time buffer address.
Definition at line 127 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_GYRO_SF (19U * 16U) |
DMP gyroscope scale factor address.
Definition at line 128 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ACC_SCALE (30U * 16U) |
DMP accelerometer scale address.
Definition at line 129 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_FIFO_WATERMARK (31U * 16U + 14U) |
DMP FIFO watermark address.
Definition at line 130 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_BAC_RATE (48U * 16U + 10U) |
DMP basic activity classifier rate address.
Definition at line 131 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_RATE (48U * 16U + 8U) |
DMP bring-to-see rate address.
Definition at line 132 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ACCEL_ONLY_GAIN (16U * 16U + 12U) |
DMP accel-only mode gain address.
Definition at line 133 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ACC_SCALE2 (79U * 16U + 4U) |
DMP accelerometer scale 2 address.
Definition at line 134 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_00 (23U * 16U) |
Compass mount matrix [0][0].
Definition at line 135 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_01 (23U * 16U + 4U) |
Compass mount matrix [0][1].
Definition at line 136 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_02 (23U * 16U + 8U) |
Compass mount matrix [0][2].
Definition at line 137 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_10 (23U * 16U + 12U) |
Compass mount matrix [1][0].
Definition at line 138 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_11 (24U * 16U) |
Compass mount matrix [1][1].
Definition at line 139 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_12 (24U * 16U + 4U) |
Compass mount matrix [1][2].
Definition at line 140 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_20 (24U * 16U + 8U) |
Compass mount matrix [2][0].
Definition at line 141 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_21 (24U * 16U + 12U) |
Compass mount matrix [2][1].
Definition at line 142 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_CPASS_MTX_22 (25U * 16U) |
Compass mount matrix [2][2].
Definition at line 143 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_GYRO_FULLSCALE (72U * 16U + 12U) |
DMP gyroscope full-scale address.
Definition at line 144 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ACCEL_ALPHA_VAR (91U * 16U) |
DMP accel alpha variance address.
Definition at line 145 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ACCEL_A_VAR (92U * 16U) |
DMP accel A variance address.
Definition at line 146 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_ACCEL_CAL_INIT (94U * 16U + 4U) |
DMP accel calibration init address.
Definition at line 147 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_00 (208U * 16U) |
Body-to-sensor matrix [0][0].
Definition at line 148 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_01 (208U * 16U + 4U) |
Body-to-sensor matrix [0][1].
Definition at line 149 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_02 (208U * 16U + 8U) |
Body-to-sensor matrix [0][2].
Definition at line 150 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_10 (208U * 16U + 12U) |
Body-to-sensor matrix [1][0].
Definition at line 151 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_11 (209U * 16U) |
Body-to-sensor matrix [1][1].
Definition at line 152 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_12 (209U * 16U + 4U) |
Body-to-sensor matrix [1][2].
Definition at line 153 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_20 (209U * 16U + 8U) |
Body-to-sensor matrix [2][0].
Definition at line 154 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_21 (209U * 16U + 12U) |
Body-to-sensor matrix [2][1].
Definition at line 155 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_DMP_B2S_MTX_22 (210U * 16U) |
Body-to-sensor matrix [2][2].
Definition at line 156 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_MAG_WR_ADDR 0x0CU |
AK09916 magnetometer write address (I2C).
Definition at line 159 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_MAG_RD_ADDR 0x8CU |
AK09916 magnetometer read address (I2C).
Definition at line 160 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_MAG_CTRL_2 0x31U |
AK09916 control 2 register address.
Definition at line 161 of file icm20948.h.
Referenced by SPP_SERVICES_ICM20948_configDmpInit().
| #define K_ICM20948_REG_ACCEL_X_H 0x2DU |
Accelerometer X high byte register.
Definition at line 164 of file icm20948.h.
| #define K_ICM20948_REG_ACCEL_X_L 0x2EU |
Accelerometer X low byte register.
Definition at line 165 of file icm20948.h.
| #define K_ICM20948_REG_ACCEL_Y_H 0x2FU |
Accelerometer Y high byte register.
Definition at line 166 of file icm20948.h.
| #define K_ICM20948_REG_ACCEL_Y_L 0x30U |
Accelerometer Y low byte register.
Definition at line 167 of file icm20948.h.
| #define K_ICM20948_REG_ACCEL_Z_H 0x31U |
Accelerometer Z high byte register.
Definition at line 168 of file icm20948.h.
| #define K_ICM20948_REG_ACCEL_Z_L 0x32U |
Accelerometer Z low byte register.
Definition at line 169 of file icm20948.h.
| #define K_ICM20948_REG_GYRO_X_H 0x33U |
Gyroscope X high byte register.
Definition at line 170 of file icm20948.h.
| #define K_ICM20948_REG_GYRO_X_L 0x34U |
Gyroscope X low byte register.
Definition at line 171 of file icm20948.h.
| #define K_ICM20948_REG_GYRO_Y_H 0x35U |
Gyroscope Y high byte register.
Definition at line 172 of file icm20948.h.
| #define K_ICM20948_REG_GYRO_Y_L 0x36U |
Gyroscope Y low byte register.
Definition at line 173 of file icm20948.h.
| #define K_ICM20948_REG_GYRO_Z_H 0x37U |
Gyroscope Z high byte register.
Definition at line 174 of file icm20948.h.
| #define K_ICM20948_REG_GYRO_Z_L 0x38U |
Gyroscope Z low byte register.
Definition at line 175 of file icm20948.h.
| #define K_ICM20948_REG_MAGNETO_X_L 0x3CU |
Magnetometer X low byte register.
Definition at line 176 of file icm20948.h.
| #define K_ICM20948_REG_MAGNETO_X_H 0x3DU |
Magnetometer X high byte register.
Definition at line 177 of file icm20948.h.
| #define K_ICM20948_REG_MAGNETO_Y_L 0x3EU |
Magnetometer Y low byte register.
Definition at line 178 of file icm20948.h.
| #define K_ICM20948_REG_MAGNETO_Y_H 0x3FU |
Magnetometer Y high byte register.
Definition at line 179 of file icm20948.h.
| #define K_ICM20948_REG_MAGNETO_Z_L 0x40U |
Magnetometer Z low byte register.
Definition at line 180 of file icm20948.h.
| #define K_ICM20948_REG_MAGNETO_Z_H 0x41U |
Magnetometer Z high byte register.
Definition at line 181 of file icm20948.h.
| enum ICM20948_RegBank_t |
ICM20948 register bank selector.
| Enumerator | |
|---|---|
| K_ICM20948_REG_BANK_0 | |
| K_ICM20948_REG_BANK_1 | |
| K_ICM20948_REG_BANK_2 | |
| K_ICM20948_REG_BANK_3 | |
Definition at line 189 of file icm20948.h.
| enum ICM20948_ClockSel_t |
Clock source selection for PWR_MGMT_1.
| Enumerator | |
|---|---|
| K_ICM20948_CLK_INTERNAL_20MHZ | |
| K_ICM20948_CLK_AUTO | |
| K_ICM20948_CLK_STOP | |
Definition at line 241 of file icm20948.h.
| enum ICM20948_GyroFsSel_t |
Gyroscope full-scale range selection.
| Enumerator | |
|---|---|
| K_ICM20948_GYRO_FS_250DPS | |
| K_ICM20948_GYRO_FS_500DPS | |
| K_ICM20948_GYRO_FS_1000DPS | |
| K_ICM20948_GYRO_FS_2000DPS | |
Definition at line 430 of file icm20948.h.
Accelerometer full-scale range selection.
| Enumerator | |
|---|---|
| K_ICM20948_ACCEL_FS_2G | |
| K_ICM20948_ACCEL_FS_4G | |
| K_ICM20948_ACCEL_FS_8G | |
| K_ICM20948_ACCEL_FS_16G | |
Definition at line 452 of file icm20948.h.
| const SPP_SERVICE_ProducerContract_t * SPP_SERVICES_ICM20948_getProducerContract | ( | void | ) |
Returns a pointer to the ICM20948 producer contract.
Definition at line 106 of file icm20948.c.
References s_icm20948ProducerContract, and SPP_SERVICES_ICM20948_getProducerContract().
Referenced by SPP_SERVICES_ICM20948_getProducerContract().