PX4 Firmware
PX4 Autopilot Software http://px4.io
icm20948.h File Reference
#include <lib/drivers/accelerometer/PX4Accelerometer.hpp>
#include <lib/drivers/gyroscope/PX4Gyroscope.hpp>
#include <lib/ecl/geo/geo.h>
#include <px4_platform_common/getopt.h>
#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>
#include <lib/systemlib/conversions.h>
#include <lib/systemlib/px4_macros.h>
#include "ICM20948_mag.h"
Include dependency graph for icm20948.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ICMReport
 Report conversation within the mpu, including command byte and interrupt status. More...
 
struct  MPUReport
 Report conversation within the mpu, including command byte and interrupt status. More...
 
class  ICM20948
 

Macros

#define MPUREG_WHOAMI   0x75
 
#define MPUREG_SMPLRT_DIV   0x19
 
#define MPUREG_CONFIG   0x1A
 
#define MPUREG_GYRO_CONFIG   0x1B
 
#define MPUREG_ACCEL_CONFIG   0x1C
 
#define MPUREG_ACCEL_CONFIG2   0x1D
 
#define MPUREG_LPACCEL_ODR   0x1E
 
#define MPUREG_WOM_THRESH   0x1F
 
#define MPUREG_FIFO_EN   0x23
 
#define MPUREG_I2C_MST_CTRL   0x24
 
#define MPUREG_I2C_SLV0_ADDR   0x25
 
#define MPUREG_I2C_SLV0_REG   0x26
 
#define MPUREG_I2C_SLV0_CTRL   0x27
 
#define MPUREG_I2C_SLV1_ADDR   0x28
 
#define MPUREG_I2C_SLV1_REG   0x29
 
#define MPUREG_I2C_SLV1_CTRL   0x2A
 
#define MPUREG_I2C_SLV2_ADDR   0x2B
 
#define MPUREG_I2C_SLV2_REG   0x2C
 
#define MPUREG_I2C_SLV2_CTRL   0x2D
 
#define MPUREG_I2C_SLV3_ADDR   0x2E
 
#define MPUREG_I2C_SLV3_REG   0x2F
 
#define MPUREG_I2C_SLV3_CTRL   0x30
 
#define MPUREG_I2C_SLV4_ADDR   0x31
 
#define MPUREG_I2C_SLV4_REG   0x32
 
#define MPUREG_I2C_SLV4_DO   0x33
 
#define MPUREG_I2C_SLV4_CTRL   0x34
 
#define MPUREG_I2C_SLV4_DI   0x35
 
#define MPUREG_I2C_MST_STATUS   0x36
 
#define MPUREG_INT_PIN_CFG   0x37
 
#define MPUREG_INT_ENABLE   0x38
 
#define MPUREG_INT_STATUS   0x3A
 
#define MPUREG_ACCEL_XOUT_H   0x3B
 
#define MPUREG_ACCEL_XOUT_L   0x3C
 
#define MPUREG_ACCEL_YOUT_H   0x3D
 
#define MPUREG_ACCEL_YOUT_L   0x3E
 
#define MPUREG_ACCEL_ZOUT_H   0x3F
 
#define MPUREG_ACCEL_ZOUT_L   0x40
 
#define MPUREG_TEMP_OUT_H   0x41
 
#define MPUREG_TEMP_OUT_L   0x42
 
#define MPUREG_GYRO_XOUT_H   0x43
 
#define MPUREG_GYRO_XOUT_L   0x44
 
#define MPUREG_GYRO_YOUT_H   0x45
 
#define MPUREG_GYRO_YOUT_L   0x46
 
#define MPUREG_GYRO_ZOUT_H   0x47
 
#define MPUREG_GYRO_ZOUT_L   0x48
 
#define MPUREG_EXT_SENS_DATA_00   0x49
 
#define MPUREG_I2C_SLV0_D0   0x63
 
#define MPUREG_I2C_SLV1_D0   0x64
 
#define MPUREG_I2C_SLV2_D0   0x65
 
#define MPUREG_I2C_SLV3_D0   0x66
 
#define MPUREG_I2C_MST_DELAY_CTRL   0x67
 
#define MPUREG_SIGNAL_PATH_RESET   0x68
 
#define MPUREG_MOT_DETECT_CTRL   0x69
 
#define MPUREG_USER_CTRL   0x6A
 
#define MPUREG_PWR_MGMT_1   0x6B
 
#define MPUREG_PWR_MGMT_2   0x6C
 
#define MPUREG_FIFO_COUNTH   0x72
 
#define MPUREG_FIFO_COUNTL   0x73
 
#define MPUREG_FIFO_R_W   0x74
 
#define BIT_SLEEP   0x40
 
#define BIT_H_RESET   0x80
 
#define MPU_CLK_SEL_AUTO   0x01
 
#define BITS_GYRO_ST_X   0x80
 
#define BITS_GYRO_ST_Y   0x40
 
#define BITS_GYRO_ST_Z   0x20
 
#define BITS_FS_250DPS   0x00
 
#define BITS_FS_500DPS   0x08
 
#define BITS_FS_1000DPS   0x10
 
#define BITS_FS_2000DPS   0x18
 
#define BITS_FS_MASK   0x18
 
#define BITS_DLPF_CFG_250HZ   0x00
 
#define BITS_DLPF_CFG_184HZ   0x01
 
#define BITS_DLPF_CFG_92HZ   0x02
 
#define BITS_DLPF_CFG_41HZ   0x03
 
#define BITS_DLPF_CFG_20HZ   0x04
 
#define BITS_DLPF_CFG_10HZ   0x05
 
#define BITS_DLPF_CFG_5HZ   0x06
 
#define BITS_DLPF_CFG_3600HZ   0x07
 
#define BITS_DLPF_CFG_MASK   0x07
 
#define BITS_ACCEL_CONFIG2_41HZ   0x03
 
#define BIT_RAW_RDY_EN   0x01
 
#define BIT_INT_ANYRD_2CLEAR   0x10
 
#define BIT_INT_BYPASS_EN   0x02
 
#define BIT_I2C_READ_FLAG   0x80
 
#define BIT_I2C_SLV0_NACK   0x01
 
#define BIT_I2C_FIFO_EN   0x40
 
#define BIT_I2C_MST_EN   0x20
 
#define BIT_I2C_IF_DIS   0x10
 
#define BIT_FIFO_RST   0x04
 
#define BIT_I2C_MST_RST   0x02
 
#define BIT_SIG_COND_RST   0x01
 
#define BIT_I2C_SLV0_EN   0x80
 
#define BIT_I2C_SLV0_BYTE_SW   0x40
 
#define BIT_I2C_SLV0_REG_DIS   0x20
 
#define BIT_I2C_SLV0_REG_GRP   0x10
 
#define BIT_I2C_MST_MULT_MST_EN   0x80
 
#define BIT_I2C_MST_WAIT_FOR_ES   0x40
 
#define BIT_I2C_MST_SLV_3_FIFO_EN   0x20
 
#define BIT_I2C_MST_P_NSR   0x10
 
#define BITS_I2C_MST_CLOCK_258HZ   0x08
 
#define BITS_I2C_MST_CLOCK_400HZ   0x0D
 
#define BIT_I2C_SLV0_DLY_EN   0x01
 
#define BIT_I2C_SLV1_DLY_EN   0x02
 
#define BIT_I2C_SLV2_DLY_EN   0x04
 
#define BIT_I2C_SLV3_DLY_EN   0x08
 
#define ICM_WHOAMI_20948   0xEA
 
#define ICM20948_ACCEL_DEFAULT_RATE   1000
 
#define ICM20948_ACCEL_MAX_OUTPUT_RATE   280
 
#define ICM20948_ACCEL_DEFAULT_DRIVER_FILTER_FREQ   30
 
#define ICM20948_GYRO_DEFAULT_RATE   1000
 
#define ICM20948_GYRO_MAX_OUTPUT_RATE   ICM20948_ACCEL_MAX_OUTPUT_RATE
 
#define ICM20948_GYRO_DEFAULT_DRIVER_FILTER_FREQ   30
 
#define ICM20948_DEFAULT_ONCHIP_FILTER_FREQ   92
 
#define PX4_I2C_EXT_ICM20948_0   0x68
 
#define PX4_I2C_EXT_ICM20948_1   0x69
 
#define BANK0   0x0000
 
#define BANK1   0x0100
 
#define BANK2   0x0200
 
#define BANK3   0x0300
 
#define BANK_REG_MASK   0x0300
 
#define REG_BANK(r)   (((r) & BANK_REG_MASK)>>4)
 
#define REG_ADDRESS(r)   ((r) & ~BANK_REG_MASK)
 
#define ICMREG_20948_BANK_SEL   0x7F
 
#define ICMREG_20948_WHOAMI   (0x00 | BANK0)
 
#define ICMREG_20948_USER_CTRL   (0x03 | BANK0)
 
#define ICMREG_20948_PWR_MGMT_1   (0x06 | BANK0)
 
#define ICMREG_20948_PWR_MGMT_2   (0x07 | BANK0)
 
#define ICMREG_20948_INT_PIN_CFG   (0x0F | BANK0)
 
#define ICMREG_20948_INT_ENABLE   (0x10 | BANK0)
 
#define ICMREG_20948_INT_ENABLE_1   (0x11 | BANK0)
 
#define ICMREG_20948_ACCEL_XOUT_H   (0x2D | BANK0)
 
#define ICMREG_20948_INT_ENABLE_2   (0x12 | BANK0)
 
#define ICMREG_20948_INT_ENABLE_3   (0x13 | BANK0)
 
#define ICMREG_20948_EXT_SLV_SENS_DATA_00   (0x3B | BANK0)
 
#define ICMREG_20948_GYRO_SMPLRT_DIV   (0x00 | BANK2)
 
#define ICMREG_20948_GYRO_CONFIG_1   (0x01 | BANK2)
 
#define ICMREG_20948_GYRO_CONFIG_2   (0x02 | BANK2)
 
#define ICMREG_20948_ACCEL_SMPLRT_DIV_1   (0x10 | BANK2)
 
#define ICMREG_20948_ACCEL_SMPLRT_DIV_2   (0x11 | BANK2)
 
#define ICMREG_20948_ACCEL_CONFIG   (0x14 | BANK2)
 
#define ICMREG_20948_ACCEL_CONFIG_2   (0x15 | BANK2)
 
#define ICMREG_20948_I2C_MST_CTRL   (0x01 | BANK3)
 
#define ICMREG_20948_I2C_SLV0_ADDR   (0x03 | BANK3)
 
#define ICMREG_20948_I2C_SLV0_REG   (0x04 | BANK3)
 
#define ICMREG_20948_I2C_SLV0_CTRL   (0x05 | BANK3)
 
#define ICMREG_20948_I2C_SLV0_DO   (0x06 | BANK3)
 
#define ICM_BIT_PWR_MGMT_1_ENABLE   0x00
 
#define ICM_BIT_USER_CTRL_I2C_MST_DISABLE   0x00
 
#define ICM_BITS_GYRO_DLPF_CFG_197HZ   0x01
 
#define ICM_BITS_GYRO_DLPF_CFG_151HZ   0x09
 
#define ICM_BITS_GYRO_DLPF_CFG_119HZ   0x11
 
#define ICM_BITS_GYRO_DLPF_CFG_51HZ   0x19
 
#define ICM_BITS_GYRO_DLPF_CFG_23HZ   0x21
 
#define ICM_BITS_GYRO_DLPF_CFG_11HZ   0x29
 
#define ICM_BITS_GYRO_DLPF_CFG_5HZ   0x31
 
#define ICM_BITS_GYRO_DLPF_CFG_361HZ   0x39
 
#define ICM_BITS_GYRO_DLPF_CFG_MASK   0x39
 
#define ICM_BITS_GYRO_FS_SEL_250DPS   0x00
 
#define ICM_BITS_GYRO_FS_SEL_500DPS   0x02
 
#define ICM_BITS_GYRO_FS_SEL_1000DPS   0x04
 
#define ICM_BITS_GYRO_FS_SEL_2000DPS   0x06
 
#define ICM_BITS_GYRO_FS_SEL_MASK   0x06
 
#define ICM_BITS_ACCEL_DLPF_CFG_246HZ   0x09
 
#define ICM_BITS_ACCEL_DLPF_CFG_111HZ   0x11
 
#define ICM_BITS_ACCEL_DLPF_CFG_50HZ   0x19
 
#define ICM_BITS_ACCEL_DLPF_CFG_23HZ   0x21
 
#define ICM_BITS_ACCEL_DLPF_CFG_11HZ   0x29
 
#define ICM_BITS_ACCEL_DLPF_CFG_5HZ   0x31
 
#define ICM_BITS_ACCEL_DLPF_CFG_473HZ   0x39
 
#define ICM_BITS_ACCEL_DLPF_CFG_MASK   0x39
 
#define ICM_BITS_ACCEL_FS_SEL_250DPS   0x00
 
#define ICM_BITS_ACCEL_FS_SEL_500DPS   0x02
 
#define ICM_BITS_ACCEL_FS_SEL_1000DPS   0x04
 
#define ICM_BITS_ACCEL_FS_SEL_2000DPS   0x06
 
#define ICM_BITS_ACCEL_FS_SEL_MASK   0x06
 
#define ICM_BITS_DEC3_CFG_4   0x00
 
#define ICM_BITS_DEC3_CFG_8   0x01
 
#define ICM_BITS_DEC3_CFG_16   0x10
 
#define ICM_BITS_DEC3_CFG_32   0x11
 
#define ICM_BITS_DEC3_CFG_MASK   0x11
 
#define ICM_BITS_I2C_MST_CLOCK_370KHZ   0x00
 
#define ICM_BITS_I2C_MST_CLOCK_400HZ   0x07
 
#define MPU_OR_ICM(m, i)   ((_whoami==ICM_WHOAMI_20948) ? i : m)
 
#define ICM20948_LOW_BUS_SPEED   0
 
#define ICM20948_HIGH_BUS_SPEED   0x8000
 
#define ICM20948_REG_MASK   0x00FF
 
#define ICM20948_IS_HIGH_SPEED(r)   ((r) & ICM20948_HIGH_BUS_SPEED)
 
#define ICM20948_REG(r)   ((r) & ICM20948_REG_MASK)
 
#define ICM20948_SET_SPEED(r, s)   ((r)|(s))
 
#define ICM20948_HIGH_SPEED_OP(r)   ICM20948_SET_SPEED((r), ICM20948_HIGH_BUS_SPEED)
 
#define ICM20948_LOW_SPEED_OP(r)   ((r) &~ICM20948_HIGH_BUS_SPEED)
 

Typedefs

typedef device::Device *(* ICM20948_constructor) (int, uint32_t)
 

Functions

device::DeviceICM20948_SPI_interface (int bus, uint32_t cs)
 
device::DeviceICM20948_I2C_interface (int bus, uint32_t address)
 
int ICM20948_probe (device::Device *dev)
 

Macro Definition Documentation

◆ BANK0

#define BANK0   0x0000

Definition at line 199 of file icm20948.h.

◆ BANK1

#define BANK1   0x0100

Definition at line 200 of file icm20948.h.

◆ BANK2

#define BANK2   0x0200

Definition at line 201 of file icm20948.h.

◆ BANK3

#define BANK3   0x0300

Definition at line 202 of file icm20948.h.

◆ BANK_REG_MASK

#define BANK_REG_MASK   0x0300

Definition at line 204 of file icm20948.h.

◆ BIT_FIFO_RST

#define BIT_FIFO_RST   0x04

Definition at line 148 of file icm20948.h.

◆ BIT_H_RESET

#define BIT_H_RESET   0x80

◆ BIT_I2C_FIFO_EN

#define BIT_I2C_FIFO_EN   0x40

Definition at line 145 of file icm20948.h.

◆ BIT_I2C_IF_DIS

#define BIT_I2C_IF_DIS   0x10

Definition at line 147 of file icm20948.h.

Referenced by MPU6000::reset(), MPU9250::reset_mpu(), and ICM20948::reset_mpu().

◆ BIT_I2C_MST_EN

◆ BIT_I2C_MST_MULT_MST_EN

#define BIT_I2C_MST_MULT_MST_EN   0x80

Definition at line 157 of file icm20948.h.

◆ BIT_I2C_MST_P_NSR

#define BIT_I2C_MST_P_NSR   0x10

◆ BIT_I2C_MST_RST

#define BIT_I2C_MST_RST   0x02

Definition at line 149 of file icm20948.h.

Referenced by ICM20948_mag::ak09916_setup(), and MPU9250_mag::ak8963_setup().

◆ BIT_I2C_MST_SLV_3_FIFO_EN

#define BIT_I2C_MST_SLV_3_FIFO_EN   0x20

Definition at line 159 of file icm20948.h.

◆ BIT_I2C_MST_WAIT_FOR_ES

#define BIT_I2C_MST_WAIT_FOR_ES   0x40

Definition at line 158 of file icm20948.h.

Referenced by MPU9250_mag::ak8963_setup_master_i2c().

◆ BIT_I2C_READ_FLAG

#define BIT_I2C_READ_FLAG   0x80

Definition at line 142 of file icm20948.h.

Referenced by ICM20948_mag::set_passthrough(), and MPU9250_mag::set_passthrough().

◆ BIT_I2C_SLV0_BYTE_SW

#define BIT_I2C_SLV0_BYTE_SW   0x40

Definition at line 153 of file icm20948.h.

◆ BIT_I2C_SLV0_DLY_EN

#define BIT_I2C_SLV0_DLY_EN   0x01

Definition at line 164 of file icm20948.h.

◆ BIT_I2C_SLV0_EN

#define BIT_I2C_SLV0_EN   0x80

Definition at line 152 of file icm20948.h.

Referenced by ICM20948_mag::set_passthrough(), and MPU9250_mag::set_passthrough().

◆ BIT_I2C_SLV0_NACK

#define BIT_I2C_SLV0_NACK   0x01

Definition at line 144 of file icm20948.h.

◆ BIT_I2C_SLV0_REG_DIS

#define BIT_I2C_SLV0_REG_DIS   0x20

Definition at line 154 of file icm20948.h.

◆ BIT_I2C_SLV0_REG_GRP

#define BIT_I2C_SLV0_REG_GRP   0x10

Definition at line 155 of file icm20948.h.

◆ BIT_I2C_SLV1_DLY_EN

#define BIT_I2C_SLV1_DLY_EN   0x02

Definition at line 165 of file icm20948.h.

◆ BIT_I2C_SLV2_DLY_EN

#define BIT_I2C_SLV2_DLY_EN   0x04

Definition at line 166 of file icm20948.h.

◆ BIT_I2C_SLV3_DLY_EN

#define BIT_I2C_SLV3_DLY_EN   0x08

Definition at line 167 of file icm20948.h.

◆ BIT_INT_ANYRD_2CLEAR

#define BIT_INT_ANYRD_2CLEAR   0x10

Definition at line 139 of file icm20948.h.

Referenced by MPU6000::reset(), MPU9250::reset_mpu(), and ICM20948::reset_mpu().

◆ BIT_INT_BYPASS_EN

#define BIT_INT_BYPASS_EN   0x02

Definition at line 140 of file icm20948.h.

Referenced by MPU9250::reset_mpu(), and ICM20948::reset_mpu().

◆ BIT_RAW_RDY_EN

#define BIT_RAW_RDY_EN   0x01

Definition at line 138 of file icm20948.h.

Referenced by MPU6000::reset(), MPU9250::reset_mpu(), and ICM20948::reset_mpu().

◆ BIT_SIG_COND_RST

#define BIT_SIG_COND_RST   0x01

Definition at line 150 of file icm20948.h.

◆ BIT_SLEEP

#define BIT_SLEEP   0x40

Definition at line 113 of file icm20948.h.

◆ BITS_ACCEL_CONFIG2_41HZ

#define BITS_ACCEL_CONFIG2_41HZ   0x03

Definition at line 136 of file icm20948.h.

Referenced by MPU9250::reset_mpu().

◆ BITS_DLPF_CFG_10HZ

#define BITS_DLPF_CFG_10HZ   0x05

Definition at line 131 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_184HZ

#define BITS_DLPF_CFG_184HZ   0x01

Definition at line 127 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_20HZ

#define BITS_DLPF_CFG_20HZ   0x04

Definition at line 130 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_250HZ

#define BITS_DLPF_CFG_250HZ   0x00

Definition at line 126 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_3600HZ

#define BITS_DLPF_CFG_3600HZ   0x07

Definition at line 133 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_41HZ

#define BITS_DLPF_CFG_41HZ   0x03

Definition at line 129 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_5HZ

#define BITS_DLPF_CFG_5HZ   0x06

Definition at line 132 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_92HZ

#define BITS_DLPF_CFG_92HZ   0x02

Definition at line 128 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter().

◆ BITS_DLPF_CFG_MASK

#define BITS_DLPF_CFG_MASK   0x07

Definition at line 134 of file icm20948.h.

◆ BITS_FS_1000DPS

#define BITS_FS_1000DPS   0x10

Definition at line 122 of file icm20948.h.

◆ BITS_FS_2000DPS

#define BITS_FS_2000DPS   0x18

Definition at line 123 of file icm20948.h.

Referenced by MPU6000::reset(), and MPU9250::reset_mpu().

◆ BITS_FS_250DPS

#define BITS_FS_250DPS   0x00

Definition at line 120 of file icm20948.h.

Referenced by MPU6000::factory_self_test().

◆ BITS_FS_500DPS

#define BITS_FS_500DPS   0x08

Definition at line 121 of file icm20948.h.

◆ BITS_FS_MASK

#define BITS_FS_MASK   0x18

Definition at line 124 of file icm20948.h.

◆ BITS_GYRO_ST_X

#define BITS_GYRO_ST_X   0x80

Definition at line 117 of file icm20948.h.

Referenced by MPU6000::factory_self_test().

◆ BITS_GYRO_ST_Y

#define BITS_GYRO_ST_Y   0x40

Definition at line 118 of file icm20948.h.

Referenced by MPU6000::factory_self_test().

◆ BITS_GYRO_ST_Z

#define BITS_GYRO_ST_Z   0x20

Definition at line 119 of file icm20948.h.

Referenced by MPU6000::factory_self_test().

◆ BITS_I2C_MST_CLOCK_258HZ

#define BITS_I2C_MST_CLOCK_258HZ   0x08

Definition at line 161 of file icm20948.h.

◆ BITS_I2C_MST_CLOCK_400HZ

#define BITS_I2C_MST_CLOCK_400HZ   0x0D

Definition at line 162 of file icm20948.h.

Referenced by MPU9250_mag::ak8963_setup_master_i2c().

◆ ICM20948_ACCEL_DEFAULT_DRIVER_FILTER_FREQ

#define ICM20948_ACCEL_DEFAULT_DRIVER_FILTER_FREQ   30

Definition at line 173 of file icm20948.h.

◆ ICM20948_ACCEL_DEFAULT_RATE

#define ICM20948_ACCEL_DEFAULT_RATE   1000

Definition at line 171 of file icm20948.h.

◆ ICM20948_ACCEL_MAX_OUTPUT_RATE

#define ICM20948_ACCEL_MAX_OUTPUT_RATE   280

Definition at line 172 of file icm20948.h.

◆ ICM20948_DEFAULT_ONCHIP_FILTER_FREQ

#define ICM20948_DEFAULT_ONCHIP_FILTER_FREQ   92

Definition at line 179 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICM20948_GYRO_DEFAULT_DRIVER_FILTER_FREQ

#define ICM20948_GYRO_DEFAULT_DRIVER_FILTER_FREQ   30

Definition at line 177 of file icm20948.h.

◆ ICM20948_GYRO_DEFAULT_RATE

#define ICM20948_GYRO_DEFAULT_RATE   1000

Definition at line 174 of file icm20948.h.

Referenced by ICM20948::_set_sample_rate().

◆ ICM20948_GYRO_MAX_OUTPUT_RATE

#define ICM20948_GYRO_MAX_OUTPUT_RATE   ICM20948_ACCEL_MAX_OUTPUT_RATE

Definition at line 176 of file icm20948.h.

◆ ICM20948_HIGH_BUS_SPEED

#define ICM20948_HIGH_BUS_SPEED   0x8000

Definition at line 333 of file icm20948.h.

Referenced by ICM20948::check_registers(), and ICM20948::measure().

◆ ICM20948_HIGH_SPEED_OP

#define ICM20948_HIGH_SPEED_OP (   r)    ICM20948_SET_SPEED((r), ICM20948_HIGH_BUS_SPEED)

Definition at line 338 of file icm20948.h.

◆ ICM20948_IS_HIGH_SPEED

#define ICM20948_IS_HIGH_SPEED (   r)    ((r) & ICM20948_HIGH_BUS_SPEED)

Definition at line 335 of file icm20948.h.

Referenced by ICM20948_SPI::set_bus_frequency().

◆ ICM20948_LOW_BUS_SPEED

#define ICM20948_LOW_BUS_SPEED   0

Definition at line 332 of file icm20948.h.

◆ ICM20948_LOW_SPEED_OP

#define ICM20948_LOW_SPEED_OP (   r)    ((r) &~ICM20948_HIGH_BUS_SPEED)

◆ ICM20948_REG

#define ICM20948_REG (   r)    ((r) & ICM20948_REG_MASK)

Definition at line 336 of file icm20948.h.

Referenced by ICM20948_SPI::set_bus_frequency().

◆ ICM20948_REG_MASK

#define ICM20948_REG_MASK   0x00FF

Definition at line 334 of file icm20948.h.

◆ ICM20948_SET_SPEED

#define ICM20948_SET_SPEED (   r,
 
)    ((r)|(s))

Definition at line 337 of file icm20948.h.

Referenced by ICM20948::read_reg(), and ICM20948::read_reg_range().

◆ ICM_BIT_PWR_MGMT_1_ENABLE

#define ICM_BIT_PWR_MGMT_1_ENABLE   0x00

Definition at line 242 of file icm20948.h.

◆ ICM_BIT_USER_CTRL_I2C_MST_DISABLE

#define ICM_BIT_USER_CTRL_I2C_MST_DISABLE   0x00

Definition at line 243 of file icm20948.h.

◆ ICM_BITS_ACCEL_DLPF_CFG_111HZ

#define ICM_BITS_ACCEL_DLPF_CFG_111HZ   0x11

Definition at line 262 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_11HZ

#define ICM_BITS_ACCEL_DLPF_CFG_11HZ   0x29

Definition at line 265 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_23HZ

#define ICM_BITS_ACCEL_DLPF_CFG_23HZ   0x21

Definition at line 264 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_246HZ

#define ICM_BITS_ACCEL_DLPF_CFG_246HZ   0x09

Definition at line 261 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_473HZ

#define ICM_BITS_ACCEL_DLPF_CFG_473HZ   0x39

Definition at line 267 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_50HZ

#define ICM_BITS_ACCEL_DLPF_CFG_50HZ   0x19

Definition at line 263 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_5HZ

#define ICM_BITS_ACCEL_DLPF_CFG_5HZ   0x31

Definition at line 266 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_ACCEL_DLPF_CFG_MASK

#define ICM_BITS_ACCEL_DLPF_CFG_MASK   0x39

Definition at line 268 of file icm20948.h.

◆ ICM_BITS_ACCEL_FS_SEL_1000DPS

#define ICM_BITS_ACCEL_FS_SEL_1000DPS   0x04

Definition at line 272 of file icm20948.h.

◆ ICM_BITS_ACCEL_FS_SEL_2000DPS

#define ICM_BITS_ACCEL_FS_SEL_2000DPS   0x06

Definition at line 273 of file icm20948.h.

◆ ICM_BITS_ACCEL_FS_SEL_250DPS

#define ICM_BITS_ACCEL_FS_SEL_250DPS   0x00

Definition at line 270 of file icm20948.h.

◆ ICM_BITS_ACCEL_FS_SEL_500DPS

#define ICM_BITS_ACCEL_FS_SEL_500DPS   0x02

Definition at line 271 of file icm20948.h.

◆ ICM_BITS_ACCEL_FS_SEL_MASK

#define ICM_BITS_ACCEL_FS_SEL_MASK   0x06

Definition at line 274 of file icm20948.h.

Referenced by ICM20948::set_accel_range().

◆ ICM_BITS_DEC3_CFG_16

#define ICM_BITS_DEC3_CFG_16   0x10

Definition at line 278 of file icm20948.h.

◆ ICM_BITS_DEC3_CFG_32

#define ICM_BITS_DEC3_CFG_32   0x11

Definition at line 279 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICM_BITS_DEC3_CFG_4

#define ICM_BITS_DEC3_CFG_4   0x00

Definition at line 276 of file icm20948.h.

◆ ICM_BITS_DEC3_CFG_8

#define ICM_BITS_DEC3_CFG_8   0x01

Definition at line 277 of file icm20948.h.

◆ ICM_BITS_DEC3_CFG_MASK

#define ICM_BITS_DEC3_CFG_MASK   0x11

Definition at line 280 of file icm20948.h.

◆ ICM_BITS_GYRO_DLPF_CFG_119HZ

#define ICM_BITS_GYRO_DLPF_CFG_119HZ   0x11

Definition at line 247 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_11HZ

#define ICM_BITS_GYRO_DLPF_CFG_11HZ   0x29

Definition at line 250 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_151HZ

#define ICM_BITS_GYRO_DLPF_CFG_151HZ   0x09

Definition at line 246 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_197HZ

#define ICM_BITS_GYRO_DLPF_CFG_197HZ   0x01

Definition at line 245 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_23HZ

#define ICM_BITS_GYRO_DLPF_CFG_23HZ   0x21

Definition at line 249 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_361HZ

#define ICM_BITS_GYRO_DLPF_CFG_361HZ   0x39

Definition at line 252 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_51HZ

#define ICM_BITS_GYRO_DLPF_CFG_51HZ   0x19

Definition at line 248 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_5HZ

#define ICM_BITS_GYRO_DLPF_CFG_5HZ   0x31

Definition at line 251 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter().

◆ ICM_BITS_GYRO_DLPF_CFG_MASK

#define ICM_BITS_GYRO_DLPF_CFG_MASK   0x39

Definition at line 253 of file icm20948.h.

◆ ICM_BITS_GYRO_FS_SEL_1000DPS

#define ICM_BITS_GYRO_FS_SEL_1000DPS   0x04

Definition at line 257 of file icm20948.h.

◆ ICM_BITS_GYRO_FS_SEL_2000DPS

#define ICM_BITS_GYRO_FS_SEL_2000DPS   0x06

Definition at line 258 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICM_BITS_GYRO_FS_SEL_250DPS

#define ICM_BITS_GYRO_FS_SEL_250DPS   0x00

Definition at line 255 of file icm20948.h.

◆ ICM_BITS_GYRO_FS_SEL_500DPS

#define ICM_BITS_GYRO_FS_SEL_500DPS   0x02

Definition at line 256 of file icm20948.h.

◆ ICM_BITS_GYRO_FS_SEL_MASK

#define ICM_BITS_GYRO_FS_SEL_MASK   0x06

Definition at line 259 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICM_BITS_I2C_MST_CLOCK_370KHZ

#define ICM_BITS_I2C_MST_CLOCK_370KHZ   0x00

Definition at line 282 of file icm20948.h.

◆ ICM_BITS_I2C_MST_CLOCK_400HZ

#define ICM_BITS_I2C_MST_CLOCK_400HZ   0x07

Definition at line 283 of file icm20948.h.

Referenced by ICM20948_mag::ak09916_setup_master_i2c().

◆ ICM_WHOAMI_20948

◆ ICMREG_20948_ACCEL_CONFIG

#define ICMREG_20948_ACCEL_CONFIG   (0x14 | BANK2)

Definition at line 226 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter(), and ICM20948::set_accel_range().

◆ ICMREG_20948_ACCEL_CONFIG_2

#define ICMREG_20948_ACCEL_CONFIG_2   (0x15 | BANK2)

Definition at line 227 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICMREG_20948_ACCEL_SMPLRT_DIV_1

#define ICMREG_20948_ACCEL_SMPLRT_DIV_1   (0x10 | BANK2)

Definition at line 224 of file icm20948.h.

◆ ICMREG_20948_ACCEL_SMPLRT_DIV_2

#define ICMREG_20948_ACCEL_SMPLRT_DIV_2   (0x11 | BANK2)

Definition at line 225 of file icm20948.h.

Referenced by ICM20948::_set_sample_rate().

◆ ICMREG_20948_ACCEL_XOUT_H

#define ICMREG_20948_ACCEL_XOUT_H   (0x2D | BANK0)

Definition at line 217 of file icm20948.h.

Referenced by ICM20948::measure().

◆ ICMREG_20948_BANK_SEL

#define ICMREG_20948_BANK_SEL   0x7F

Definition at line 208 of file icm20948.h.

Referenced by ICM20948::reset_mpu(), and ICM20948::select_register_bank().

◆ ICMREG_20948_EXT_SLV_SENS_DATA_00

#define ICMREG_20948_EXT_SLV_SENS_DATA_00   (0x3B | BANK0)

Definition at line 220 of file icm20948.h.

Referenced by ICM20948_mag::passthrough_read().

◆ ICMREG_20948_GYRO_CONFIG_1

#define ICMREG_20948_GYRO_CONFIG_1   (0x01 | BANK2)

Definition at line 222 of file icm20948.h.

Referenced by ICM20948::_set_dlpf_filter(), and ICM20948::reset_mpu().

◆ ICMREG_20948_GYRO_CONFIG_2

#define ICMREG_20948_GYRO_CONFIG_2   (0x02 | BANK2)

Definition at line 223 of file icm20948.h.

◆ ICMREG_20948_GYRO_SMPLRT_DIV

#define ICMREG_20948_GYRO_SMPLRT_DIV   (0x00 | BANK2)

Definition at line 221 of file icm20948.h.

Referenced by ICM20948::_set_sample_rate().

◆ ICMREG_20948_I2C_MST_CTRL

#define ICMREG_20948_I2C_MST_CTRL   (0x01 | BANK3)

◆ ICMREG_20948_I2C_SLV0_ADDR

#define ICMREG_20948_I2C_SLV0_ADDR   (0x03 | BANK3)

Definition at line 229 of file icm20948.h.

Referenced by ICM20948_mag::set_passthrough().

◆ ICMREG_20948_I2C_SLV0_CTRL

#define ICMREG_20948_I2C_SLV0_CTRL   (0x05 | BANK3)

◆ ICMREG_20948_I2C_SLV0_DO

#define ICMREG_20948_I2C_SLV0_DO   (0x06 | BANK3)

Definition at line 232 of file icm20948.h.

Referenced by ICM20948_mag::set_passthrough().

◆ ICMREG_20948_I2C_SLV0_REG

#define ICMREG_20948_I2C_SLV0_REG   (0x04 | BANK3)

Definition at line 230 of file icm20948.h.

Referenced by ICM20948_mag::set_passthrough().

◆ ICMREG_20948_INT_ENABLE

#define ICMREG_20948_INT_ENABLE   (0x10 | BANK0)

Definition at line 215 of file icm20948.h.

◆ ICMREG_20948_INT_ENABLE_1

#define ICMREG_20948_INT_ENABLE_1   (0x11 | BANK0)

Definition at line 216 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICMREG_20948_INT_ENABLE_2

#define ICMREG_20948_INT_ENABLE_2   (0x12 | BANK0)

Definition at line 218 of file icm20948.h.

◆ ICMREG_20948_INT_ENABLE_3

#define ICMREG_20948_INT_ENABLE_3   (0x13 | BANK0)

Definition at line 219 of file icm20948.h.

◆ ICMREG_20948_INT_PIN_CFG

#define ICMREG_20948_INT_PIN_CFG   (0x0F | BANK0)

Definition at line 214 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICMREG_20948_PWR_MGMT_1

#define ICMREG_20948_PWR_MGMT_1   (0x06 | BANK0)

Definition at line 212 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICMREG_20948_PWR_MGMT_2

#define ICMREG_20948_PWR_MGMT_2   (0x07 | BANK0)

Definition at line 213 of file icm20948.h.

Referenced by ICM20948::reset_mpu().

◆ ICMREG_20948_USER_CTRL

#define ICMREG_20948_USER_CTRL   (0x03 | BANK0)

◆ ICMREG_20948_WHOAMI

#define ICMREG_20948_WHOAMI   (0x00 | BANK0)

Definition at line 210 of file icm20948.h.

Referenced by ICM20948::probe().

◆ MPU_CLK_SEL_AUTO

#define MPU_CLK_SEL_AUTO   0x01

Definition at line 115 of file icm20948.h.

Referenced by MPU9250::check_registers(), MPU9250::reset_mpu(), and ICM20948::reset_mpu().

◆ MPU_OR_ICM

#define MPU_OR_ICM (   m,
 
)    ((_whoami==ICM_WHOAMI_20948) ? i : m)

Definition at line 286 of file icm20948.h.

Referenced by ICM20948::measure().

◆ MPUREG_ACCEL_CONFIG

#define MPUREG_ACCEL_CONFIG   0x1C

◆ MPUREG_ACCEL_CONFIG2

#define MPUREG_ACCEL_CONFIG2   0x1D

Definition at line 57 of file icm20948.h.

Referenced by MPU9250::reset_mpu().

◆ MPUREG_ACCEL_XOUT_H

#define MPUREG_ACCEL_XOUT_H   0x3B

Definition at line 83 of file icm20948.h.

◆ MPUREG_ACCEL_XOUT_L

#define MPUREG_ACCEL_XOUT_L   0x3C

Definition at line 84 of file icm20948.h.

◆ MPUREG_ACCEL_YOUT_H

#define MPUREG_ACCEL_YOUT_H   0x3D

Definition at line 85 of file icm20948.h.

◆ MPUREG_ACCEL_YOUT_L

#define MPUREG_ACCEL_YOUT_L   0x3E

Definition at line 86 of file icm20948.h.

◆ MPUREG_ACCEL_ZOUT_H

#define MPUREG_ACCEL_ZOUT_H   0x3F

Definition at line 87 of file icm20948.h.

◆ MPUREG_ACCEL_ZOUT_L

#define MPUREG_ACCEL_ZOUT_L   0x40

Definition at line 88 of file icm20948.h.

◆ MPUREG_CONFIG

#define MPUREG_CONFIG   0x1A

Definition at line 54 of file icm20948.h.

Referenced by MPU9250::_set_dlpf_filter(), and MPU6000::_set_dlpf_filter().

◆ MPUREG_EXT_SENS_DATA_00

#define MPUREG_EXT_SENS_DATA_00   0x49

Definition at line 97 of file icm20948.h.

Referenced by MPU9250_mag::passthrough_read().

◆ MPUREG_FIFO_COUNTH

#define MPUREG_FIFO_COUNTH   0x72

Definition at line 108 of file icm20948.h.

◆ MPUREG_FIFO_COUNTL

#define MPUREG_FIFO_COUNTL   0x73

Definition at line 109 of file icm20948.h.

◆ MPUREG_FIFO_EN

#define MPUREG_FIFO_EN   0x23

Definition at line 60 of file icm20948.h.

◆ MPUREG_FIFO_R_W

#define MPUREG_FIFO_R_W   0x74

Definition at line 110 of file icm20948.h.

◆ MPUREG_GYRO_CONFIG

#define MPUREG_GYRO_CONFIG   0x1B

Definition at line 55 of file icm20948.h.

Referenced by MPU6000::factory_self_test(), MPU6000::reset(), and MPU9250::reset_mpu().

◆ MPUREG_GYRO_XOUT_H

#define MPUREG_GYRO_XOUT_H   0x43

Definition at line 91 of file icm20948.h.

◆ MPUREG_GYRO_XOUT_L

#define MPUREG_GYRO_XOUT_L   0x44

Definition at line 92 of file icm20948.h.

◆ MPUREG_GYRO_YOUT_H

#define MPUREG_GYRO_YOUT_H   0x45

Definition at line 93 of file icm20948.h.

◆ MPUREG_GYRO_YOUT_L

#define MPUREG_GYRO_YOUT_L   0x46

Definition at line 94 of file icm20948.h.

◆ MPUREG_GYRO_ZOUT_H

#define MPUREG_GYRO_ZOUT_H   0x47

Definition at line 95 of file icm20948.h.

◆ MPUREG_GYRO_ZOUT_L

#define MPUREG_GYRO_ZOUT_L   0x48

Definition at line 96 of file icm20948.h.

◆ MPUREG_I2C_MST_CTRL

#define MPUREG_I2C_MST_CTRL   0x24

Definition at line 61 of file icm20948.h.

Referenced by MPU9250_mag::ak8963_setup(), and MPU9250_mag::ak8963_setup_master_i2c().

◆ MPUREG_I2C_MST_DELAY_CTRL

#define MPUREG_I2C_MST_DELAY_CTRL   0x67

Definition at line 102 of file icm20948.h.

◆ MPUREG_I2C_MST_STATUS

#define MPUREG_I2C_MST_STATUS   0x36

Definition at line 79 of file icm20948.h.

◆ MPUREG_I2C_SLV0_ADDR

#define MPUREG_I2C_SLV0_ADDR   0x25

Definition at line 62 of file icm20948.h.

Referenced by MPU9250_mag::set_passthrough().

◆ MPUREG_I2C_SLV0_CTRL

#define MPUREG_I2C_SLV0_CTRL   0x27

◆ MPUREG_I2C_SLV0_D0

#define MPUREG_I2C_SLV0_D0   0x63

Definition at line 98 of file icm20948.h.

Referenced by MPU9250_mag::set_passthrough().

◆ MPUREG_I2C_SLV0_REG

#define MPUREG_I2C_SLV0_REG   0x26

Definition at line 63 of file icm20948.h.

Referenced by MPU9250_mag::set_passthrough().

◆ MPUREG_I2C_SLV1_ADDR

#define MPUREG_I2C_SLV1_ADDR   0x28

Definition at line 65 of file icm20948.h.

◆ MPUREG_I2C_SLV1_CTRL

#define MPUREG_I2C_SLV1_CTRL   0x2A

Definition at line 67 of file icm20948.h.

◆ MPUREG_I2C_SLV1_D0

#define MPUREG_I2C_SLV1_D0   0x64

Definition at line 99 of file icm20948.h.

◆ MPUREG_I2C_SLV1_REG

#define MPUREG_I2C_SLV1_REG   0x29

Definition at line 66 of file icm20948.h.

◆ MPUREG_I2C_SLV2_ADDR

#define MPUREG_I2C_SLV2_ADDR   0x2B

Definition at line 68 of file icm20948.h.

◆ MPUREG_I2C_SLV2_CTRL

#define MPUREG_I2C_SLV2_CTRL   0x2D

Definition at line 70 of file icm20948.h.

◆ MPUREG_I2C_SLV2_D0

#define MPUREG_I2C_SLV2_D0   0x65

Definition at line 100 of file icm20948.h.

◆ MPUREG_I2C_SLV2_REG

#define MPUREG_I2C_SLV2_REG   0x2C

Definition at line 69 of file icm20948.h.

◆ MPUREG_I2C_SLV3_ADDR

#define MPUREG_I2C_SLV3_ADDR   0x2E

Definition at line 71 of file icm20948.h.

◆ MPUREG_I2C_SLV3_CTRL

#define MPUREG_I2C_SLV3_CTRL   0x30

Definition at line 73 of file icm20948.h.

◆ MPUREG_I2C_SLV3_D0

#define MPUREG_I2C_SLV3_D0   0x66

Definition at line 101 of file icm20948.h.

◆ MPUREG_I2C_SLV3_REG

#define MPUREG_I2C_SLV3_REG   0x2F

Definition at line 72 of file icm20948.h.

◆ MPUREG_I2C_SLV4_ADDR

#define MPUREG_I2C_SLV4_ADDR   0x31

Definition at line 74 of file icm20948.h.

◆ MPUREG_I2C_SLV4_CTRL

#define MPUREG_I2C_SLV4_CTRL   0x34

Definition at line 77 of file icm20948.h.

◆ MPUREG_I2C_SLV4_DI

#define MPUREG_I2C_SLV4_DI   0x35

Definition at line 78 of file icm20948.h.

◆ MPUREG_I2C_SLV4_DO

#define MPUREG_I2C_SLV4_DO   0x33

Definition at line 76 of file icm20948.h.

◆ MPUREG_I2C_SLV4_REG

#define MPUREG_I2C_SLV4_REG   0x32

Definition at line 75 of file icm20948.h.

◆ MPUREG_INT_ENABLE

#define MPUREG_INT_ENABLE   0x38

Definition at line 81 of file icm20948.h.

Referenced by MPU6000::reset(), and MPU9250::reset_mpu().

◆ MPUREG_INT_PIN_CFG

#define MPUREG_INT_PIN_CFG   0x37

Definition at line 80 of file icm20948.h.

Referenced by MPU6000::reset(), and MPU9250::reset_mpu().

◆ MPUREG_INT_STATUS

#define MPUREG_INT_STATUS   0x3A

◆ MPUREG_LPACCEL_ODR

#define MPUREG_LPACCEL_ODR   0x1E

Definition at line 58 of file icm20948.h.

◆ MPUREG_MOT_DETECT_CTRL

#define MPUREG_MOT_DETECT_CTRL   0x69

Definition at line 104 of file icm20948.h.

◆ MPUREG_PWR_MGMT_1

#define MPUREG_PWR_MGMT_1   0x6B

◆ MPUREG_PWR_MGMT_2

#define MPUREG_PWR_MGMT_2   0x6C

Definition at line 107 of file icm20948.h.

Referenced by MPU9250::check_registers(), and MPU9250::reset_mpu().

◆ MPUREG_SIGNAL_PATH_RESET

#define MPUREG_SIGNAL_PATH_RESET   0x68

Definition at line 103 of file icm20948.h.

◆ MPUREG_SMPLRT_DIV

#define MPUREG_SMPLRT_DIV   0x19

Definition at line 53 of file icm20948.h.

Referenced by MPU9250::_set_sample_rate(), and MPU6000::_set_sample_rate().

◆ MPUREG_TEMP_OUT_H

#define MPUREG_TEMP_OUT_H   0x41

Definition at line 89 of file icm20948.h.

◆ MPUREG_TEMP_OUT_L

#define MPUREG_TEMP_OUT_L   0x42

Definition at line 90 of file icm20948.h.

◆ MPUREG_USER_CTRL

#define MPUREG_USER_CTRL   0x6A

◆ MPUREG_WHOAMI

#define MPUREG_WHOAMI   0x75

◆ MPUREG_WOM_THRESH

#define MPUREG_WOM_THRESH   0x1F

Definition at line 59 of file icm20948.h.

◆ PX4_I2C_EXT_ICM20948_0

#define PX4_I2C_EXT_ICM20948_0   0x68

Definition at line 189 of file icm20948.h.

◆ PX4_I2C_EXT_ICM20948_1

#define PX4_I2C_EXT_ICM20948_1   0x69

Definition at line 190 of file icm20948.h.

◆ REG_ADDRESS

#define REG_ADDRESS (   r)    ((r) & ~BANK_REG_MASK)

◆ REG_BANK

Typedef Documentation

◆ ICM20948_constructor

typedef device::Device*(* ICM20948_constructor) (int, uint32_t)

Definition at line 346 of file icm20948.h.

Function Documentation

◆ ICM20948_I2C_interface()

device::Device* ICM20948_I2C_interface ( int  bus,
uint32_t  address 
)

◆ ICM20948_probe()

int ICM20948_probe ( device::Device dev)

◆ ICM20948_SPI_interface()

device::Device * ICM20948_SPI_interface ( int  bus,
uint32_t  cs 
)

Definition at line 83 of file icm20948_spi.cpp.