37 #define MPU60X0_DEFAULT_SMPLRT_DIV 0
39 #define MPU60X0_DEFAULT_FS_SEL MPU60X0_GYRO_RANGE_2000
41 #define MPU60X0_DEFAULT_AFS_SEL MPU60X0_ACCEL_RANGE_16G
43 #define MPU60X0_DEFAULT_DLPF_CFG MPU60X0_DLPF_98HZ
45 #define MPU60X0_DEFAULT_DLPF_CFG_ACC MPU60X0_DLPF_ACC_99HZ
47 #define MPU60X0_DEFAULT_INT_CFG 1
49 #define MPU60X0_DEFAULT_CLK_SEL 1
52 #ifndef MPU60X0_I2C_NB_SLAVES
53 #define MPU60X0_I2C_NB_SLAVES 5
61 #define MPU60X0_GYRO_SENS_250 0.544883
62 #define MPU60X0_GYRO_SENS_250_NUM 19327
63 #define MPU60X0_GYRO_SENS_250_DEN 35470
64 #define MPU60X0_GYRO_SENS_500 1.08977
65 #define MPU60X0_GYRO_SENS_500_NUM 57663
66 #define MPU60X0_GYRO_SENS_500_DEN 52913
67 #define MPU60X0_GYRO_SENS_1000 2.17953
68 #define MPU60X0_GYRO_SENS_1000_NUM 18271
69 #define MPU60X0_GYRO_SENS_1000_DEN 8383
70 #define MPU60X0_GYRO_SENS_2000 4.35906
71 #define MPU60X0_GYRO_SENS_2000_NUM 36542
72 #define MPU60X0_GYRO_SENS_2000_DEN 8383
84 #define MPU60X0_ACCEL_SENS_2G 0.613125
85 #define MPU60X0_ACCEL_SENS_2G_NUM 981
86 #define MPU60X0_ACCEL_SENS_2G_DEN 1600
87 #define MPU60X0_ACCEL_SENS_4G 1.22625
88 #define MPU60X0_ACCEL_SENS_4G_NUM 981
89 #define MPU60X0_ACCEL_SENS_4G_DEN 800
90 #define MPU60X0_ACCEL_SENS_8G 2.4525
91 #define MPU60X0_ACCEL_SENS_8G_NUM 981
92 #define MPU60X0_ACCEL_SENS_8G_DEN 400
93 #define MPU60X0_ACCEL_SENS_16G 4.905
94 #define MPU60X0_ACCEL_SENS_16G_NUM 981
95 #define MPU60X0_ACCEL_SENS_16G_DEN 200
Mpu60x0I2cSlaveConfigure configure
const struct Int32Rates MPU60X0_GYRO_SENS_FRAC[4][2]
const struct Int32Vect3 MPU60X0_ACCEL_SENS_FRAC[4][2]
uint8_t i2c_mst_delay
MPU I2C slaves delayed sample rate.
void mpu60x0_set_default_config(struct Mpu60x0Config *c)
#define MPU60X0_I2C_NB_SLAVES
enum Mpu60x0MstClk i2c_mst_clk
MPU I2C master clock speed.
bool initialized
config done flag
uint8_t nb_bytes
number of bytes to read starting with MPU60X0_REG_INT_STATUS
bool(* Mpu60x0I2cSlaveConfigure)(Mpu60x0ConfigSet mpu_set, void *mpu)
function prototype for configuration of a single I2C slave
Mpu60x0Type
MPU60x0 sensor type.
void mpu60x0_send_config(Mpu60x0ConfigSet mpu_set, void *mpu, struct Mpu60x0Config *config)
Configuration sequence called once before normal use.
uint8_t smplrt_div
Sample rate divider.
const float MPU60X0_ACCEL_SENS[4]
uint8_t nb_slaves
number of used I2C slaves
uint8_t nb_slave_init
number of already configured/initialized slaves
struct Mpu60x0I2cSlave slaves[MPU60X0_I2C_NB_SLAVES]
I2C slaves.
const float MPU60X0_GYRO_SENS[4]
enum Mpu60x0DLPF dlpf_cfg
Digital Low Pass Filter.
enum Mpu60x0Type type
The type of sensor (MPU60x0, ICM20608, ...)
bool i2c_bypass
Bypass MPU I2C.
bool drdy_int_enable
Enable Data Ready Interrupt.
enum Mpu60x0ConfStatus init_status
init status
@ MPU60X0_CONF_I2C_SLAVES
@ MPU60X0_CONF_INT_ENABLE
@ MPU60X0_CONF_USER_RESET
enum Mpu60x0AccelRanges accel_range
g Range
uint8_t clk_sel
Clock select.
enum Mpu60x0ACCDLPF dlpf_cfg_acc
Digital Low Pass Filter for acceleremoter (ICM devices only)
void(* Mpu60x0ConfigSet)(void *mpu, uint8_t _reg, uint8_t _val)
Configuration function prototype.
bool mpu60x0_configure_i2c_slaves(Mpu60x0ConfigSet mpu_set, void *mpu)
Configure I2C slaves of the MPU.
enum Mpu60x0GyroRanges gyro_range
deg/s Range
Register and address definitions for MPU-6000 and MPU-6050.
Mpu60x0DLPF
Digital Low Pass Filter Options DLFP is affecting both gyro and accels (on MPU not ICM),...
Mpu60x0GyroRanges
Selectable gyro range.
Mpu60x0AccelRanges
Selectable accel range.
Mpu60x0ACCDLPF
Digital Low Pass Filter Options DLFP specifically for the ICM device accelerometer.
Mpu60x0MstClk
I2C Master clock.
Paparazzi fixed point algebra.
static const struct usb_config_descriptor config
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.