|
Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
|
Include dependency graph for mpu60x0.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | Mpu60x0I2cSlave |
| struct | Mpu60x0Config |
Macros | |
| #define | MPU60X0_DEFAULT_SMPLRT_DIV 0 |
| Default sample rate divider. More... | |
| #define | MPU60X0_DEFAULT_FS_SEL MPU60X0_GYRO_RANGE_2000 |
| Default gyro full scale range +- 2000°/s. More... | |
| #define | MPU60X0_DEFAULT_AFS_SEL MPU60X0_ACCEL_RANGE_16G |
| Default accel full scale range +- 16g. More... | |
| #define | MPU60X0_DEFAULT_DLPF_CFG MPU60X0_DLPF_98HZ |
| Default internal sampling (1kHz, 98Hz LP Bandwidth) More... | |
| #define | MPU60X0_DEFAULT_DLPF_CFG_ACC MPU60X0_DLPF_ACC_99HZ |
| Default internal sampling for accelerometer ICM devices only (1kHz, 99Hz LP Bandwidth) More... | |
| #define | MPU60X0_DEFAULT_INT_CFG 1 |
| Default interrupt config: DATA_RDY_EN. More... | |
| #define | MPU60X0_DEFAULT_CLK_SEL 1 |
| Default clock: PLL with X gyro reference. More... | |
| #define | MPU60X0_I2C_NB_SLAVES 5 |
| #define | MPU60X0_GYRO_SENS_250 0.544883 |
| default gyro sensitivy from the datasheet sens = 1/ [LSB/(deg/s)] * pi/180 * 2^INT32_RATE_FRAC ex: MPU with 1000 deg/s has 32.8 LSB/(deg/s) sens = 1/32.8 * pi/180 * 4096 = 2.17953 More... | |
| #define | MPU60X0_GYRO_SENS_250_NUM 19327 |
| #define | MPU60X0_GYRO_SENS_250_DEN 35470 |
| #define | MPU60X0_GYRO_SENS_500 1.08977 |
| #define | MPU60X0_GYRO_SENS_500_NUM 57663 |
| #define | MPU60X0_GYRO_SENS_500_DEN 52913 |
| #define | MPU60X0_GYRO_SENS_1000 2.17953 |
| #define | MPU60X0_GYRO_SENS_1000_NUM 18271 |
| #define | MPU60X0_GYRO_SENS_1000_DEN 8383 |
| #define | MPU60X0_GYRO_SENS_2000 4.35906 |
| #define | MPU60X0_GYRO_SENS_2000_NUM 36542 |
| #define | MPU60X0_GYRO_SENS_2000_DEN 8383 |
| #define | MPU60X0_ACCEL_SENS_2G 0.613125 |
| default accel sensitivy from the datasheet sens = 9.81 [m/s^2] / [LSB/g] * 2^INT32_ACCEL_FRAC ex: MPU with 8g has 4096 LSB/g sens = 9.81 [m/s^2] / 4096 [LSB/g] * 2^INT32_ACCEL_FRAC = 2.4525 More... | |
| #define | MPU60X0_ACCEL_SENS_2G_NUM 981 |
| #define | MPU60X0_ACCEL_SENS_2G_DEN 1600 |
| #define | MPU60X0_ACCEL_SENS_4G 1.22625 |
| #define | MPU60X0_ACCEL_SENS_4G_NUM 981 |
| #define | MPU60X0_ACCEL_SENS_4G_DEN 800 |
| #define | MPU60X0_ACCEL_SENS_8G 2.4525 |
| #define | MPU60X0_ACCEL_SENS_8G_NUM 981 |
| #define | MPU60X0_ACCEL_SENS_8G_DEN 400 |
| #define | MPU60X0_ACCEL_SENS_16G 4.905 |
| #define | MPU60X0_ACCEL_SENS_16G_NUM 981 |
| #define | MPU60X0_ACCEL_SENS_16G_DEN 200 |
Typedefs | |
| typedef void(* | Mpu60x0ConfigSet) (void *mpu, uint8_t _reg, uint8_t _val) |
| Configuration function prototype. More... | |
| typedef bool(* | Mpu60x0I2cSlaveConfigure) (Mpu60x0ConfigSet mpu_set, void *mpu) |
| function prototype for configuration of a single I2C slave More... | |
Enumerations | |
| enum | Mpu60x0Type { MPU60X0, ICM20600, ICM20608, ICM20602, ICM20689 } |
| MPU60x0 sensor type. More... | |
| enum | Mpu60x0ConfStatus { MPU60X0_CONF_UNINIT, MPU60X0_CONF_RESET, MPU60X0_CONF_USER_RESET, MPU60X0_CONF_PWR, MPU60X0_CONF_SD, MPU60X0_CONF_DLPF, MPU60X0_CONF_GYRO, MPU60X0_CONF_ACCEL, MPU60X0_CONF_ACCEL2, MPU60X0_CONF_I2C_SLAVES, MPU60X0_CONF_INT_ENABLE, MPU60X0_CONF_UNDOC1, MPU60X0_CONF_DONE } |
Functions | |
| void | mpu60x0_set_default_config (struct Mpu60x0Config *c) |
| void | mpu60x0_send_config (Mpu60x0ConfigSet mpu_set, void *mpu, struct Mpu60x0Config *config) |
| Configuration sequence called once before normal use. More... | |
| bool | mpu60x0_configure_i2c_slaves (Mpu60x0ConfigSet mpu_set, void *mpu) |
| Configure I2C slaves of the MPU. More... | |
Variables | |
| const float | MPU60X0_GYRO_SENS [4] |
| const int32_t | MPU60X0_GYRO_SENS_FRAC [4][2] |
| const float | MPU60X0_ACCEL_SENS [4] |
| const int32_t | MPU60X0_ACCEL_SENS_FRAC [4][2] |
MPU-60X0 driver common interface (I2C and SPI).
Definition in file mpu60x0.h.
| struct Mpu60x0I2cSlave |
| Data Fields | ||
|---|---|---|
| Mpu60x0I2cSlaveConfigure | configure | |
| struct Mpu60x0Config |
Collaboration diagram for Mpu60x0Config:| Data Fields | ||
|---|---|---|
| enum Mpu60x0AccelRanges | accel_range | g Range |
| uint8_t | clk_sel | Clock select. |
| enum Mpu60x0DLPF | dlpf_cfg | Digital Low Pass Filter. |
| enum Mpu60x0ACCDLPF | dlpf_cfg_acc | Digital Low Pass Filter for acceleremoter (ICM devices only) |
| bool | drdy_int_enable | Enable Data Ready Interrupt. |
| enum Mpu60x0GyroRanges | gyro_range | deg/s Range |
| bool | i2c_bypass |
Bypass MPU I2C. Only effective if using the I2C implementation. |
| enum Mpu60x0MstClk | i2c_mst_clk | MPU I2C master clock speed. |
| uint8_t | i2c_mst_delay | MPU I2C slaves delayed sample rate. |
| enum Mpu60x0ConfStatus | init_status | init status |
| bool | initialized | config done flag |
| uint8_t | nb_bytes | number of bytes to read starting with MPU60X0_REG_INT_STATUS |
| uint8_t | nb_slave_init | number of already configured/initialized slaves |
| uint8_t | nb_slaves | number of used I2C slaves |
| struct Mpu60x0I2cSlave | slaves[MPU60X0_I2C_NB_SLAVES] | I2C slaves. |
| uint8_t | smplrt_div | Sample rate divider. |
| enum Mpu60x0Type | type | The type of sensor (MPU60x0, ICM20608, ...) |
| #define MPU60X0_ACCEL_SENS_2G 0.613125 |
| #define MPU60X0_DEFAULT_AFS_SEL MPU60X0_ACCEL_RANGE_16G |
| #define MPU60X0_DEFAULT_CLK_SEL 1 |
| #define MPU60X0_DEFAULT_DLPF_CFG MPU60X0_DLPF_98HZ |
| #define MPU60X0_DEFAULT_DLPF_CFG_ACC MPU60X0_DLPF_ACC_99HZ |
| #define MPU60X0_DEFAULT_FS_SEL MPU60X0_GYRO_RANGE_2000 |
| #define MPU60X0_DEFAULT_INT_CFG 1 |
| #define MPU60X0_DEFAULT_SMPLRT_DIV 0 |
| #define MPU60X0_GYRO_SENS_250 0.544883 |
| typedef bool(* Mpu60x0I2cSlaveConfigure) (Mpu60x0ConfigSet mpu_set, void *mpu) |
| enum Mpu60x0ConfStatus |
| enum Mpu60x0Type |
| bool mpu60x0_configure_i2c_slaves | ( | Mpu60x0ConfigSet | mpu_set, |
| void * | mpu | ||
| ) |
Configure I2C slaves of the MPU.
This is I2C/SPI implementation specific.
| mpu_set | configuration function |
| mpu | Mpu60x0Spi or Mpu60x0I2c peripheral |
Configure I2C slaves of the MPU.
Definition at line 135 of file mpu60x0_i2c.c.
References Mpu60x0_Spi::config, Mpu60x0_I2c::config, Mpu60x0I2cSlave::configure, Mpu60x0Config::i2c_bypass, Mpu60x0Config::i2c_mst_clk, Mpu60x0Config::i2c_mst_delay, MPU60X0_I2C_CONF_DONE, MPU60X0_I2C_CONF_I2C_BYPASS_DIS, MPU60X0_I2C_CONF_I2C_BYPASS_EN, MPU60X0_I2C_CONF_I2C_MST_CLK, MPU60X0_I2C_CONF_I2C_MST_DELAY, MPU60X0_I2C_CONF_I2C_MST_DIS, MPU60X0_I2C_CONF_I2C_MST_EN, MPU60X0_I2C_CONF_I2C_SMPLRT, MPU60X0_I2C_CONF_SLAVES_CONFIGURE, MPU60X0_I2C_CONF_UNINIT, MPU60X0_I2C_IF_DIS, MPU60X0_I2C_MST_EN, MPU60X0_I2C_NB_SLAVES, MPU60X0_REG_I2C_MST_CTRL, MPU60X0_REG_I2C_MST_DELAY, MPU60X0_REG_I2C_SLV4_CTRL, MPU60X0_REG_INT_PIN_CFG, MPU60X0_REG_USER_CTRL, MPU60X0_SPI_CONF_DONE, MPU60X0_SPI_CONF_I2C_MST_CLK, MPU60X0_SPI_CONF_I2C_MST_DELAY, MPU60X0_SPI_CONF_I2C_MST_EN, MPU60X0_SPI_CONF_SLAVES_CONFIGURE, MPU60X0_SPI_CONF_UNINIT, Mpu60x0Config::nb_slave_init, Mpu60x0Config::nb_slaves, Mpu60x0_Spi::slave_init_status, Mpu60x0_I2c::slave_init_status, and Mpu60x0Config::slaves.
Referenced by mpu60x0_send_config().
Here is the caller graph for this function:| void mpu60x0_send_config | ( | Mpu60x0ConfigSet | mpu_set, |
| void * | mpu, | ||
| struct Mpu60x0Config * | config | ||
| ) |
Configuration sequence called once before normal use.
Definition at line 82 of file mpu60x0.c.
References config, MPU60X0, MPU60X0_CONF_ACCEL, MPU60X0_CONF_ACCEL2, MPU60X0_CONF_DLPF, MPU60X0_CONF_DONE, MPU60X0_CONF_GYRO, MPU60X0_CONF_I2C_SLAVES, MPU60X0_CONF_INT_ENABLE, MPU60X0_CONF_PWR, MPU60X0_CONF_RESET, MPU60X0_CONF_SD, MPU60X0_CONF_UNDOC1, MPU60X0_CONF_USER_RESET, mpu60x0_configure_i2c_slaves(), MPU60X0_FIFO_RESET, MPU60X0_I2C_MST_RESET, MPU60X0_REG_ACCEL_CONFIG, MPU60X0_REG_ACCEL_CONFIG2, MPU60X0_REG_CONFIG, MPU60X0_REG_GYRO_CONFIG, MPU60X0_REG_INT_ENABLE, MPU60X0_REG_PWR_MGMT_1, MPU60X0_REG_SMPLRT_DIV, MPU60X0_REG_UNDOC1, MPU60X0_REG_USER_CTRL, and MPU60X0_SIG_COND_RESET.
Referenced by mpu60x0_i2c_event(), mpu60x0_i2c_start_configure(), mpu60x0_spi_event(), and mpu60x0_spi_start_configure().
Here is the call graph for this function:
Here is the caller graph for this function:| void mpu60x0_set_default_config | ( | struct Mpu60x0Config * | c | ) |
Definition at line 60 of file mpu60x0.c.
References c(), MPU60X0, MPU60X0_DEFAULT_AFS_SEL, MPU60X0_DEFAULT_CLK_SEL, MPU60X0_DEFAULT_DLPF_CFG, MPU60X0_DEFAULT_DLPF_CFG_ACC, MPU60X0_DEFAULT_FS_SEL, and MPU60X0_DEFAULT_SMPLRT_DIV.
Referenced by mpu60x0_i2c_init(), and mpu60x0_spi_init().
Here is the call graph for this function:
Here is the caller graph for this function: