mpud::types Namespace Reference

Types namespace. More...

Classes

struct  mot_config_t
 Motion Detection configuration. More...
 
struct  zrmot_config_t
 Zero-motion configuration. More...
 
struct  ff_config_t
 Free-fall configuration. More...
 
struct  auxi2c_config_t
 Auxiliary I2C Master configuration struct. More...
 
struct  auxi2c_slv_config_t
 Auxiliary I2C Slave configuration struct. More...
 
struct  int_config_t
 Interrupt configuration struct. More...
 
struct  axes_t
 Generic axes struct to store sensors' data. More...
 
struct  sensors_t
 Sensors struct for fast reading all sensors at once. More...
 

Typedefs

typedef I2C_t mpu_bus_t
 Communication bus type, I2Cbus or SPIbus. More...
 
typedef mpu_i2caddr_t mpu_addr_handle_t
 MPU Address/Handle type, mpu_i2caddr_t or spi_device_handle_t More...
 
typedef uint8_t mot_stat_t
 Motion Detection Status (MPU6000, MPU6050, MPU9150) More...
 
typedef uint8_t stby_en_t
 Standby Mode. More...
 
typedef uint8_t auxi2c_stat_t
 Auxiliary I2C master status register data. More...
 
typedef uint8_t int_en_t
 Enable features to generate signal at Interrupt pin. More...
 
typedef uint8_t int_stat_t
 Interrupt Status. More...
 
typedef uint16_t fifo_config_t
 FIFO configuration, enable sensors to be written to FIFO. More...
 
typedef axes_t< int16_t > raw_axes_t
 Axes type to hold gyroscope, accelerometer, magnetometer raw data. More...
 
typedef axes_t< float > float_axes_t
 Axes type to hold converted sensor data. More...
 
typedef uint8_t mag_stat1_t
 Magnetometer sensor status 1. More...
 
typedef uint8_t mag_stat2_t
 Magnetometer sensor status 2. More...
 
typedef uint8_t selftest_t
 Self-Test results. More...
 

Enumerations

enum  mpu_i2caddr_t { MPU_I2CADDRESS_AD0_LOW = 0x68, MPU_I2CADDRESS_AD0_HIGH = 0x69 }
 MPU's possible I2C slave addresses. More...
 
enum  gyro_fs_t { GYRO_FS_250DPS = 0, GYRO_FS_500DPS = 1, GYRO_FS_1000DPS = 2, GYRO_FS_2000DPS = 3 }
 Gyroscope full-scale range. More...
 
enum  accel_fs_t { ACCEL_FS_2G = 0, ACCEL_FS_4G = 1, ACCEL_FS_8G = 2, ACCEL_FS_16G = 3 }
 Accel full-scale range. More...
 
enum  dlpf_t {
  DLPF_256HZ_NOLPF = 0, DLPF_188HZ = 1, DLPF_98HZ = 2, DLPF_42HZ = 3,
  DLPF_20HZ = 4, DLPF_10HZ = 5, DLPF_5HZ = 6, DLPF_2100HZ_NOLPF
}
 Digital low-pass filter (based on gyro bandwidth) More...
 
enum  clock_src_t {
  CLOCK_INTERNAL = 0, CLOCK_PLL = 3, CLOCK_EXT32KHZ = 4, CLOCK_EXT19MHZ = 5,
  CLOCK_KEEP_RESET = 7
}
 Clock Source. More...
 
enum  fchoice_t { FCHOICE_0 = 0, FCHOICE_1 = 1, FCHOICE_2 = 2, FCHOICE_3 = 3 }
 Fchoice (Frequency choice maybe ?) [MPU6500 and MPU9250 only]. More...
 
enum  lp_accel_rate_t {
  LP_ACCEL_RATE_1_25HZ = 0, LP_ACCEL_RATE_5HZ = 1, LP_ACCEL_RATE_20HZ = 2, LP_ACCEL_RATE_40HZ,
  LP_ACCEL_RATE_0_49HZ = 1, LP_ACCEL_RATE_0_98HZ = 2, LP_ACCEL_RATE_1_95HZ = 3, LP_ACCEL_RATE_3_91HZ = 4,
  LP_ACCEL_RATE_7_81HZ = 5, LP_ACCEL_RATE_15_63HZ = 6, LP_ACCEL_RATE_31_25HZ = 7, LP_ACCEL_RATE_62_50HZ = 8,
  LP_ACCEL_RATE_125HZ = 9, LP_ACCEL_RATE_250HZ = 10, LP_ACCEL_RATE_500HZ
}
 Low-Power Accelerometer wake-up rates. More...
 
enum  accel_dhpf_t {
  ACCEL_DHPF_RESET = 0, ACCEL_DHPF_5HZ = 1, ACCEL_DHPF_2_5HZ = 2, ACCEL_DHPF_1_25HZ = 3,
  ACCEL_DHPF_0_63HZ = 4, ACCEL_DHPF_HOLD = 7
}
 Accelerometer Digital High Pass Filter (only for motion detection modules) More...
 
enum  mot_counter_t { MOT_COUNTER_RESET = 0, MOT_COUNTER_DEC_1 = 1, MOT_COUNTER_DEC_2 = 2, MOT_COUNTER_DEC_4 = 3 }
 Motion Detection counter decrement rate (Motion and FreeFall) More...
 
enum  auxi2c_clock_t {
  AUXI2C_CLOCK_348KHZ = 0, AUXI2C_CLOCK_333KHZ = 1, AUXI2C_CLOCK_320KHZ = 2, AUXI2C_CLOCK_308KHZ = 3,
  AUXI2C_CLOCK_296KHZ = 4, AUXI2C_CLOCK_286KHZ = 5, AUXI2C_CLOCK_276KHZ = 6, AUXI2C_CLOCK_267KHZ = 7,
  AUXI2C_CLOCK_258KHZ = 8, AUXI2C_CLOCK_500KHZ = 9, AUXI2C_CLOCK_471KHZ = 10, AUXI2C_CLOCK_444KHZ = 11,
  AUXI2C_CLOCK_421KHZ = 12, AUXI2C_CLOCK_400KHZ = 13, AUXI2C_CLOCK_381KHZ = 14, AUXI2C_CLOCK_364KHZ = 15
}
 Auxiliary I2C Master clock speed. More...
 
enum  auxi2c_trans_t { AUXI2C_TRANS_RESTART = 0, AUXI2C_TRANS_STOP = 1 }
 Auxiliary I2C Master’s transition from one slave read to the next slave read. More...
 
enum  auxi2c_slv_t { AUXI2C_SLAVE_0 = 0, AUXI2C_SLAVE_1 = 1, AUXI2C_SLAVE_2 = 2, AUXI2C_SLAVE_3 = 3 }
 Auxiliary I2C Slaves slots. More...
 
enum  auxi2c_rw_t { AUXI2C_WRITE = 0, AUXI2C_READ = 1 }
 Auxiliary I2C operation. More...
 
enum  auxi2c_eow_t { AUXI2C_EOW_ODD_NUM = 0, AUXI2C_EOW_EVEN_NUM = 1 }
 Auxiliary I2C, EOW = end of word, use for swap. More...
 
enum  auxvddio_lvl_t { AUXVDDIO_LVL_VLOGIC = 0, AUXVDDIO_LVL_VDD = 1 }
 Auxiliary I2C bus VDDIO level [MPU6050 / MPU9150 only]. More...
 
enum  int_lvl_t { INT_LVL_ACTIVE_HIGH = 0, INT_LVL_ACTIVE_LOW = 1 }
 Interrupt active level. More...
 
enum  int_drive_t { INT_DRV_PUSHPULL = 0, INT_DRV_OPENDRAIN = 1 }
 Interrupt drive state. More...
 
enum  int_mode_t { INT_MODE_PULSE50US = 0, INT_MODE_LATCH = 1 }
 Interrupt mode. More...
 
enum  int_clear_t { INT_CLEAR_STATUS_REG = 0, INT_CLEAR_ANYREAD = 1 }
 Interrupt clear mode. More...
 
enum  fifo_size_t { FIFO_SIZE_512B = 0, FIFO_SIZE_1K = 1, FIFO_SIZE_2K = 2, FIFO_SIZE_4K = 3 }
 MPU6500 Fifo size. More...
 
enum  dmp_int_mode_t { DMP_INT_MODE_PACKET = 0, DMP_INT_MODE_GESTURE = 1 }
 DMP Interrupt mode. More...
 
enum  fifo_mode_t { FIFO_MODE_OVERWRITE = 0, FIFO_MODE_STOP_FULL = 1 }
 FIFO mode. More...
 
enum  mag_mode_t {
  MAG_MODE_POWER_DOWN = 0x0, MAG_MODE_SINGLE_MEASURE = 0x1, MAG_MODE_SELF_TEST = 0x8, MAG_MODE_FUSE_ROM = 0xF,
  MAG_MODE_CONTINUOUS_8HZ = 0x2, MAG_MODE_CONTINUOUS_100HZ = 0x6, MAG_MODE_EXTERNAL_TRIGGER
}
 Magnetometer operation modes. More...
 
enum  mag_sensy_t { MAG_SENSITIVITY_0_6_uT = 0, MAG_SENSITIVITY_0_15_uT = 1 }
 Magnetometer sensitivity. More...
 

Variables

static constexpr mpu_i2caddr_t MPU_DEFAULT_I2CADDRESS = MPU_I2CADDRESS_AD0_LOW
 
static constexpr mpu_bus_tMPU_DEFAULT_BUS = i2c0
 
static constexpr mpu_addr_handle_t MPU_DEFAULT_ADDR_HANDLE = MPU_DEFAULT_I2CADDRESS
 
static constexpr uint16_t SAMPLE_RATE_MAX = 8000
 
static constexpr mot_stat_t MOT_STAT_XNEG {1 << regs::MOT_STATUS_X_NEG_BIT}
 
static constexpr mot_stat_t MOT_STAT_XPOS {1 << regs::MOT_STATUS_X_POS_BIT}
 
static constexpr mot_stat_t MOT_STAT_YNEG {1 << regs::MOT_STATUS_Y_NEG_BIT}
 
static constexpr mot_stat_t MOT_STAT_YPOS {1 << regs::MOT_STATUS_Y_POS_BIT}
 
static constexpr mot_stat_t MOT_STAT_ZNEG {1 << regs::MOT_STATUS_Z_NEG_BIT}
 
static constexpr mot_stat_t MOT_STAT_ZPOS {1 << regs::MOT_STATUS_Z_POS_BIT}
 
static constexpr mot_stat_t MOT_STAT_ZEROMOTION {1 << regs::MOT_STATUS_ZRMOT_BIT}
 
static constexpr stby_en_t STBY_EN_NONE {0x0}
 
static constexpr stby_en_t STBY_EN_ACCEL_X {1 << regs::PWR2_STBY_XA_BIT}
 
static constexpr stby_en_t STBY_EN_ACCEL_Y {1 << regs::PWR2_STBY_YA_BIT}
 
static constexpr stby_en_t STBY_EN_ACCEL_Z {1 << regs::PWR2_STBY_ZA_BIT}
 
static constexpr stby_en_t STBY_EN_ACCEL {STBY_EN_ACCEL_X | STBY_EN_ACCEL_Y | STBY_EN_ACCEL_Z}
 
static constexpr stby_en_t STBY_EN_GYRO_X {1 << regs::PWR2_STBY_XG_BIT}
 
static constexpr stby_en_t STBY_EN_GYRO_Y {1 << regs::PWR2_STBY_YG_BIT}
 
static constexpr stby_en_t STBY_EN_GYRO_Z {1 << regs::PWR2_STBY_ZG_BIT}
 
static constexpr stby_en_t STBY_EN_GYRO {STBY_EN_GYRO_X | STBY_EN_GYRO_Y | STBY_EN_GYRO_Z}
 
static constexpr stby_en_t STBY_EN_TEMP {1 << 6}
 
static constexpr stby_en_t STBY_EN_LOWPWR_GYRO_PLL_ON {1 << 7}
 This is a low power mode that allows quick enabling of the gyros. More...
 
static constexpr auxi2c_stat_t AUXI2C_STAT_FSYNC {1 << regs::I2CMST_STAT_PASS_THROUGH_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_LOST_ARB {1 << regs::I2CMST_STAT_LOST_ARB_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_SLV4_DONE {1 << regs::I2CMST_STAT_SLV4_DONE_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_SLV4_NACK {1 << regs::I2CMST_STAT_SLV4_NACK_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_SLV3_NACK {1 << regs::I2CMST_STAT_SLV3_NACK_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_SLV2_NACK {1 << regs::I2CMST_STAT_SLV2_NACK_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_SLV1_NACK {1 << regs::I2CMST_STAT_SLV1_NACK_BIT}
 
static constexpr auxi2c_stat_t AUXI2C_STAT_SLV0_NACK {1 << regs::I2CMST_STAT_SLV0_NACK_BIT}
 
static constexpr int_en_t INT_EN_NONE {0x0}
 
static constexpr int_en_t INT_EN_MOTION_DETECT {1 << regs::INT_ENABLE_MOTION_BIT}
 
static constexpr int_en_t INT_EN_FIFO_OVERFLOW {1 << regs::INT_ENABLE_FIFO_OFLOW_BIT}
 
static constexpr int_en_t INT_EN_I2C_MST_FSYNC {1 << regs::INT_ENABLE_I2C_MST_FSYNC_BIT}
 
static constexpr int_en_t INT_EN_PLL_READY {1 << regs::INT_ENABLE_PLL_RDY_BIT}
 
static constexpr int_en_t INT_EN_DMP_READY {1 << regs::INT_ENABLE_DMP_RDY_BIT}
 
static constexpr int_en_t INT_EN_RAWDATA_READY {1 << regs::INT_ENABLE_RAW_DATA_RDY_BIT}
 
static constexpr int_en_t INT_EN_FREE_FALL {1 << regs::INT_ENABLE_FREEFALL_BIT}
 
static constexpr int_en_t INT_EN_ZERO_MOTION {1 << regs::INT_ENABLE_ZEROMOT_BIT}
 
static constexpr int_stat_t INT_STAT_MOTION_DETECT {1 << regs::INT_STATUS_MOTION_BIT}
 
static constexpr int_stat_t INT_STAT_FIFO_OVERFLOW {1 << regs::INT_STATUS_FIFO_OFLOW_BIT}
 
static constexpr int_stat_t INT_STAT_I2C_MST_FSYNC {1 << regs::INT_STATUS_I2C_MST_BIT}
 
static constexpr int_stat_t INT_STAT_PLL_READY {1 << regs::INT_STATUS_PLL_RDY_BIT}
 
static constexpr int_stat_t INT_STAT_DMP_READY {1 << regs::INT_STATUS_DMP_RDY_BIT}
 
static constexpr int_stat_t INT_STAT_RAWDATA_READY {1 << regs::INT_STATUS_RAW_DATA_RDY_BIT}
 
static constexpr int_stat_t INT_STAT_FREE_FALL {1 << regs::INT_STATUS_FREEFALL_BIT}
 
static constexpr int_stat_t INT_STAT_ZERO_MOTION {1 << regs::INT_STATUS_ZEROMOT_BIT}
 
static constexpr fifo_config_t FIFO_CFG_NONE {0x0}
 
static constexpr fifo_config_t FIFO_CFG_GYRO
 
static constexpr fifo_config_t FIFO_CFG_ACCEL {1 << regs::FIFO_ACCEL_EN_BIT}
 
static constexpr fifo_config_t FIFO_CFG_TEMPERATURE {1 << regs::FIFO_TEMP_EN_BIT}
 
static constexpr fifo_config_t FIFO_CFG_SLAVE0 {1 << regs::FIFO_SLV_0_EN_BIT}
 
static constexpr fifo_config_t FIFO_CFG_SLAVE1 {1 << regs::FIFO_SLV_1_EN_BIT}
 
static constexpr fifo_config_t FIFO_CFG_SLAVE2 {1 << regs::FIFO_SLV_2_EN_BIT}
 
static constexpr fifo_config_t FIFO_CFG_SLAVE3 {1 << 8}
 
static constexpr fifo_config_t FIFO_CFG_COMPASS {FIFO_CFG_SLAVE0}
 
static constexpr uint8_t COMPASS_I2CADDRESS = 0xC
 
static constexpr uint8_t COMPASS_SAMPLE_RATE_MAX = 100
 
static constexpr mag_stat1_t MAG_STAT1_DATA_RDY {1 << regs::mag::STATUS1_DATA_RDY_BIT}
 
static constexpr mag_stat1_t MAG_STAT1_DATA_OVERRUN {1 << regs::mag::STATUS1_DATA_OVERRUN_BIT}
 
static constexpr mag_stat2_t MAG_STAT2_SENSOR_OVERFLOW {1 << regs::mag::STATUS2_OVERFLOW_BIT}
 
static constexpr mag_stat2_t MAG_STAT2_BIT_OUTPUT_SETTING {1 << regs::mag::STATUS2_BIT_OUTPUT_M_BIT}
 
static constexpr mag_stat2_t MAG_STAT2_DATA_ERROR {1 << regs::mag::STATUS2_DATA_ERROR_BIT}
 
static constexpr auxi2c_slv_t MAG_SLAVE_READ_DATA = AUXI2C_SLAVE_0
 
static constexpr auxi2c_slv_t MAG_SLAVE_CHG_MODE = AUXI2C_SLAVE_1
 
static constexpr uint8_t MAG_DATA_LENGTH = 8
 
static constexpr selftest_t SELF_TEST_PASS {0x0}
 
static constexpr selftest_t SELF_TEST_GYRO_FAIL {1 << 0}
 
static constexpr selftest_t SELF_TEST_ACCEL_FAIL {1 << 1}
 

Detailed Description

Types namespace.

Typedef Documentation

typedef uint8_t mpud::types::auxi2c_stat_t

Auxiliary I2C master status register data.

typedef uint16_t mpud::types::fifo_config_t

FIFO configuration, enable sensors to be written to FIFO.

Axes type to hold converted sensor data.

typedef uint8_t mpud::types::int_en_t

Enable features to generate signal at Interrupt pin.

Note
Freefall and zero motion only available to MPU6000 / MPU6050 / MPU9150
typedef uint8_t mpud::types::int_stat_t

Interrupt Status.

Note
Freefall and zero motion only available to MPU6000 / MPU6050 / MPU9150
typedef uint8_t mpud::types::mag_stat1_t

Magnetometer sensor status 1.

typedef uint8_t mpud::types::mag_stat2_t

Magnetometer sensor status 2.

typedef uint8_t mpud::types::mot_stat_t

Motion Detection Status (MPU6000, MPU6050, MPU9150)

typedef spi_device_handle_t mpud::types::mpu_addr_handle_t

MPU Address/Handle type, mpu_i2caddr_t or spi_device_handle_t

typedef SPI_t mpud::types::mpu_bus_t

Communication bus type, I2Cbus or SPIbus.

typedef axes_t<int16_t> mpud::types::raw_axes_t

Axes type to hold gyroscope, accelerometer, magnetometer raw data.

typedef uint8_t mpud::types::selftest_t

Self-Test results.

typedef uint8_t mpud::types::stby_en_t

Standby Mode.

Enumeration Type Documentation

Accelerometer Digital High Pass Filter (only for motion detection modules)

Enumerator
ACCEL_DHPF_RESET 

This effectively disables the high pass filter.

This mode may be toggled to quickly settle the filter.

ACCEL_DHPF_5HZ 

ON state, the high pass filter will pass signals above the cut off frequency.

ACCEL_DHPF_2_5HZ 

ON state, the high pass filter will pass signals above the cut off frequency.

ACCEL_DHPF_1_25HZ 

ON state, the high pass filter will pass signals above the cut off frequency.

ACCEL_DHPF_0_63HZ 

ON state, the high pass filter will pass signals above the cut off frequency.

ACCEL_DHPF_HOLD 

The filter holds the present sample.

The output will be the difference between the input sample and the held sample.

Accel full-scale range.

Enumerator
ACCEL_FS_2G 

+/- 2 g -> 16.384 LSB/g

ACCEL_FS_4G 

+/- 4 g -> 8.192 LSB/g

ACCEL_FS_8G 

+/- 8 g -> 4.096 LSB/g

ACCEL_FS_16G 

+/- 16 g -> 2.048 LSB/g

Auxiliary I2C Master clock speed.

Enumerator
AUXI2C_CLOCK_348KHZ 
AUXI2C_CLOCK_333KHZ 
AUXI2C_CLOCK_320KHZ 
AUXI2C_CLOCK_308KHZ 
AUXI2C_CLOCK_296KHZ 
AUXI2C_CLOCK_286KHZ 
AUXI2C_CLOCK_276KHZ 
AUXI2C_CLOCK_267KHZ 
AUXI2C_CLOCK_258KHZ 
AUXI2C_CLOCK_500KHZ 
AUXI2C_CLOCK_471KHZ 
AUXI2C_CLOCK_444KHZ 
AUXI2C_CLOCK_421KHZ 
AUXI2C_CLOCK_400KHZ 
AUXI2C_CLOCK_381KHZ 
AUXI2C_CLOCK_364KHZ 

Auxiliary I2C, EOW = end of word, use for swap.

This allows byte swapping of registers that are grouped starting at any address.

Note
External sensor data typically comes in as groups of two bytes. This bit is used to determine if the groups are from the slave’s register address 0 and 1, 2 and 3, etc.., or if the groups are address 1 and 2, 3 and 4, etc..
Enumerator
AUXI2C_EOW_ODD_NUM 

Indicates slave register addresses 0 and 1 are grouped together (odd numbered register ends the word).

AUXI2C_EOW_EVEN_NUM 

Indicates slave register addresses 1 and 2 are grouped together (even numbered register ends the word).

Auxiliary I2C operation.

Enumerator
AUXI2C_WRITE 
AUXI2C_READ 

Auxiliary I2C Slaves slots.

Note
For MPU9150 & MPU9250:
The MPU uses SLAVE0 and SLAVE1 to read Compass data so do not use this slave slots when compass is enabled.
Enumerator
AUXI2C_SLAVE_0 
AUXI2C_SLAVE_1 
AUXI2C_SLAVE_2 
AUXI2C_SLAVE_3 

Auxiliary I2C Master’s transition from one slave read to the next slave read.

Enumerator
AUXI2C_TRANS_RESTART 
AUXI2C_TRANS_STOP 

Auxiliary I2C bus VDDIO level [MPU6050 / MPU9150 only].

Enumerator
AUXVDDIO_LVL_VLOGIC 
AUXVDDIO_LVL_VDD 

Clock Source.

Enumerator
CLOCK_INTERNAL 

Internal oscillator: 20MHz for MPU6500 and 8MHz for MPU6050.

CLOCK_PLL 

Selects automatically best pll source (recommended)

CLOCK_EXT32KHZ 

PLL with external 32.768kHz reference.

CLOCK_EXT19MHZ 

PLL with external 19.2MHz reference.

CLOCK_KEEP_RESET 

Stops the clock and keeps timing generator in reset.

Digital low-pass filter (based on gyro bandwidth)

Enumerator
DLPF_256HZ_NOLPF 
DLPF_188HZ 
DLPF_98HZ 
DLPF_42HZ 
DLPF_20HZ 
DLPF_10HZ 
DLPF_5HZ 
DLPF_2100HZ_NOLPF 

DMP Interrupt mode.

Enumerator
DMP_INT_MODE_PACKET 
DMP_INT_MODE_GESTURE 

Fchoice (Frequency choice maybe ?) [MPU6500 and MPU9250 only].

Enumerator
FCHOICE_0 
FCHOICE_1 
FCHOICE_2 
FCHOICE_3 

FIFO mode.

Enumerator
FIFO_MODE_OVERWRITE 

when fifo full, additional writes will be written to fifo, replacing the oldest data.

FIFO_MODE_STOP_FULL 

when fifo full, additional writes will not be written to fifo.

MPU6500 Fifo size.

Enumerator
FIFO_SIZE_512B 
FIFO_SIZE_1K 
FIFO_SIZE_2K 
FIFO_SIZE_4K 

Gyroscope full-scale range.

Enumerator
GYRO_FS_250DPS 

+/- 250 º/s -> 131 LSB/(º/s)

GYRO_FS_500DPS 

+/- 500 º/s -> 65.5 LSB/(º/s)

GYRO_FS_1000DPS 

+/- 1000 º/s -> 32.8 LSB/(º/s)

GYRO_FS_2000DPS 

+/- 2000 º/s -> 16.4 LSB/(º/s)

Interrupt clear mode.

Enumerator
INT_CLEAR_STATUS_REG 
INT_CLEAR_ANYREAD 

Interrupt drive state.

Enumerator
INT_DRV_PUSHPULL 
INT_DRV_OPENDRAIN 

Interrupt active level.

Enumerator
INT_LVL_ACTIVE_HIGH 
INT_LVL_ACTIVE_LOW 

Interrupt mode.

Enumerator
INT_MODE_PULSE50US 
INT_MODE_LATCH 

Low-Power Accelerometer wake-up rates.

Enumerator
LP_ACCEL_RATE_1_25HZ 
LP_ACCEL_RATE_5HZ 
LP_ACCEL_RATE_20HZ 
LP_ACCEL_RATE_40HZ 
LP_ACCEL_RATE_0_49HZ 
LP_ACCEL_RATE_0_98HZ 
LP_ACCEL_RATE_1_95HZ 
LP_ACCEL_RATE_3_91HZ 
LP_ACCEL_RATE_7_81HZ 
LP_ACCEL_RATE_15_63HZ 
LP_ACCEL_RATE_31_25HZ 
LP_ACCEL_RATE_62_50HZ 
LP_ACCEL_RATE_125HZ 
LP_ACCEL_RATE_250HZ 
LP_ACCEL_RATE_500HZ 

Magnetometer operation modes.

Enumerator
MAG_MODE_POWER_DOWN 
MAG_MODE_SINGLE_MEASURE 
MAG_MODE_SELF_TEST 
MAG_MODE_FUSE_ROM 
MAG_MODE_CONTINUOUS_8HZ 
Warning
Not yet supported.
MAG_MODE_CONTINUOUS_100HZ 
Warning
Not yet supported.
MAG_MODE_EXTERNAL_TRIGGER 
Warning
Not supported.

Magnetometer sensitivity.

Enumerator
MAG_SENSITIVITY_0_6_uT 

0.6 uT/LSB = 14-bit output

MAG_SENSITIVITY_0_15_uT 

0.15 uT/LSB = 16-bit output

Motion Detection counter decrement rate (Motion and FreeFall)

Enumerator
MOT_COUNTER_RESET 

When set, any non-qualifying sample will reset the corresponding counter to 0.

MOT_COUNTER_DEC_1 

Decrement counter in 1.

MOT_COUNTER_DEC_2 

Decrement counter in 2.

MOT_COUNTER_DEC_4 

Decrement counter in 4.

MPU's possible I2C slave addresses.

Enumerator
MPU_I2CADDRESS_AD0_LOW 
MPU_I2CADDRESS_AD0_HIGH 

Variable Documentation

constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_FSYNC {1 << regs::I2CMST_STAT_PASS_THROUGH_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_LOST_ARB {1 << regs::I2CMST_STAT_LOST_ARB_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_SLV0_NACK {1 << regs::I2CMST_STAT_SLV0_NACK_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_SLV1_NACK {1 << regs::I2CMST_STAT_SLV1_NACK_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_SLV2_NACK {1 << regs::I2CMST_STAT_SLV2_NACK_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_SLV3_NACK {1 << regs::I2CMST_STAT_SLV3_NACK_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_SLV4_DONE {1 << regs::I2CMST_STAT_SLV4_DONE_BIT}
static
constexpr auxi2c_stat_t mpud::types::AUXI2C_STAT_SLV4_NACK {1 << regs::I2CMST_STAT_SLV4_NACK_BIT}
static
constexpr uint8_t mpud::types::COMPASS_I2CADDRESS = 0xC
static
constexpr uint8_t mpud::types::COMPASS_SAMPLE_RATE_MAX = 100
static
constexpr fifo_config_t mpud::types::FIFO_CFG_ACCEL {1 << regs::FIFO_ACCEL_EN_BIT}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_COMPASS {FIFO_CFG_SLAVE0}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_GYRO
static
Initial value:
{
constexpr uint8_t FIFO_XGYRO_EN_BIT
Definition: registers.hpp:69
constexpr uint8_t FIFO_YGYRO_EN_BIT
Definition: registers.hpp:70
constexpr uint8_t FIFO_ZGYRO_EN_BIT
Definition: registers.hpp:71
constexpr fifo_config_t mpud::types::FIFO_CFG_NONE {0x0}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_SLAVE0 {1 << regs::FIFO_SLV_0_EN_BIT}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_SLAVE1 {1 << regs::FIFO_SLV_1_EN_BIT}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_SLAVE2 {1 << regs::FIFO_SLV_2_EN_BIT}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_SLAVE3 {1 << 8}
static
constexpr fifo_config_t mpud::types::FIFO_CFG_TEMPERATURE {1 << regs::FIFO_TEMP_EN_BIT}
static
constexpr int_en_t mpud::types::INT_EN_DMP_READY {1 << regs::INT_ENABLE_DMP_RDY_BIT}
static
constexpr int_en_t mpud::types::INT_EN_FIFO_OVERFLOW {1 << regs::INT_ENABLE_FIFO_OFLOW_BIT}
static
constexpr int_en_t mpud::types::INT_EN_FREE_FALL {1 << regs::INT_ENABLE_FREEFALL_BIT}
static
constexpr int_en_t mpud::types::INT_EN_I2C_MST_FSYNC {1 << regs::INT_ENABLE_I2C_MST_FSYNC_BIT}
static
constexpr int_en_t mpud::types::INT_EN_MOTION_DETECT {1 << regs::INT_ENABLE_MOTION_BIT}
static
constexpr int_en_t mpud::types::INT_EN_NONE {0x0}
static
constexpr int_en_t mpud::types::INT_EN_PLL_READY {1 << regs::INT_ENABLE_PLL_RDY_BIT}
static
constexpr int_en_t mpud::types::INT_EN_RAWDATA_READY {1 << regs::INT_ENABLE_RAW_DATA_RDY_BIT}
static
constexpr int_en_t mpud::types::INT_EN_ZERO_MOTION {1 << regs::INT_ENABLE_ZEROMOT_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_DMP_READY {1 << regs::INT_STATUS_DMP_RDY_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_FIFO_OVERFLOW {1 << regs::INT_STATUS_FIFO_OFLOW_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_FREE_FALL {1 << regs::INT_STATUS_FREEFALL_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_I2C_MST_FSYNC {1 << regs::INT_STATUS_I2C_MST_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_MOTION_DETECT {1 << regs::INT_STATUS_MOTION_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_PLL_READY {1 << regs::INT_STATUS_PLL_RDY_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_RAWDATA_READY {1 << regs::INT_STATUS_RAW_DATA_RDY_BIT}
static
constexpr int_stat_t mpud::types::INT_STAT_ZERO_MOTION {1 << regs::INT_STATUS_ZEROMOT_BIT}
static
constexpr uint8_t mpud::types::MAG_DATA_LENGTH = 8
static
constexpr auxi2c_slv_t mpud::types::MAG_SLAVE_CHG_MODE = AUXI2C_SLAVE_1
static
constexpr auxi2c_slv_t mpud::types::MAG_SLAVE_READ_DATA = AUXI2C_SLAVE_0
static
constexpr mag_stat1_t mpud::types::MAG_STAT1_DATA_OVERRUN {1 << regs::mag::STATUS1_DATA_OVERRUN_BIT}
static
constexpr mag_stat1_t mpud::types::MAG_STAT1_DATA_RDY {1 << regs::mag::STATUS1_DATA_RDY_BIT}
static
constexpr mag_stat2_t mpud::types::MAG_STAT2_BIT_OUTPUT_SETTING {1 << regs::mag::STATUS2_BIT_OUTPUT_M_BIT}
static
constexpr mag_stat2_t mpud::types::MAG_STAT2_DATA_ERROR {1 << regs::mag::STATUS2_DATA_ERROR_BIT}
static
constexpr mag_stat2_t mpud::types::MAG_STAT2_SENSOR_OVERFLOW {1 << regs::mag::STATUS2_OVERFLOW_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_XNEG {1 << regs::MOT_STATUS_X_NEG_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_XPOS {1 << regs::MOT_STATUS_X_POS_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_YNEG {1 << regs::MOT_STATUS_Y_NEG_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_YPOS {1 << regs::MOT_STATUS_Y_POS_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_ZEROMOTION {1 << regs::MOT_STATUS_ZRMOT_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_ZNEG {1 << regs::MOT_STATUS_Z_NEG_BIT}
static
constexpr mot_stat_t mpud::types::MOT_STAT_ZPOS {1 << regs::MOT_STATUS_Z_POS_BIT}
static
static constexpr mpu_addr_handle_t mpud::types::MPU_DEFAULT_ADDR_HANDLE = MPU_DEFAULT_I2CADDRESS
static
static constexpr mpu_bus_t & mpud::types::MPU_DEFAULT_BUS = i2c0
static
constexpr mpu_i2caddr_t mpud::types::MPU_DEFAULT_I2CADDRESS = MPU_I2CADDRESS_AD0_LOW
static
static constexpr uint16_t mpud::types::SAMPLE_RATE_MAX = 8000
static
constexpr selftest_t mpud::types::SELF_TEST_ACCEL_FAIL {1 << 1}
static
constexpr selftest_t mpud::types::SELF_TEST_GYRO_FAIL {1 << 0}
static
constexpr selftest_t mpud::types::SELF_TEST_PASS {0x0}
static
constexpr stby_en_t mpud::types::STBY_EN_ACCEL {STBY_EN_ACCEL_X | STBY_EN_ACCEL_Y | STBY_EN_ACCEL_Z}
static
constexpr stby_en_t mpud::types::STBY_EN_ACCEL_X {1 << regs::PWR2_STBY_XA_BIT}
static
constexpr stby_en_t mpud::types::STBY_EN_ACCEL_Y {1 << regs::PWR2_STBY_YA_BIT}
static
constexpr stby_en_t mpud::types::STBY_EN_ACCEL_Z {1 << regs::PWR2_STBY_ZA_BIT}
static
constexpr stby_en_t mpud::types::STBY_EN_GYRO {STBY_EN_GYRO_X | STBY_EN_GYRO_Y | STBY_EN_GYRO_Z}
static
constexpr stby_en_t mpud::types::STBY_EN_GYRO_X {1 << regs::PWR2_STBY_XG_BIT}
static
constexpr stby_en_t mpud::types::STBY_EN_GYRO_Y {1 << regs::PWR2_STBY_YG_BIT}
static
constexpr stby_en_t mpud::types::STBY_EN_GYRO_Z {1 << regs::PWR2_STBY_ZG_BIT}
static
constexpr stby_en_t mpud::types::STBY_EN_LOWPWR_GYRO_PLL_ON {1 << 7}
static

This is a low power mode that allows quick enabling of the gyros.

Note
: When set, the gyro drive and pll circuitry are enabled, but the sense paths are disabled.
constexpr stby_en_t mpud::types::STBY_EN_NONE {0x0}
static
constexpr stby_en_t mpud::types::STBY_EN_TEMP {1 << 6}
static