Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
MPU-60X0 driver common interface (I2C and SPI). More...
Go to the source code of this file.
Data Structures | |
struct | Mpu9250I2cSlave |
struct | Mpu9250Config |
Macros | |
#define | MPU9250_DEFAULT_SMPLRT_DIV 0 |
Default sample rate divider. More... | |
#define | MPU9250_DEFAULT_FS_SEL MPU9250_GYRO_RANGE_1000 |
Default gyro full scale range +- 2000°/s. More... | |
#define | MPU9250_DEFAULT_AFS_SEL MPU9250_ACCEL_RANGE_8G |
Default accel full scale range +- 16g. More... | |
#define | MPU9250_DEFAULT_DLPF_ACCEL_CFG MPU9250_DLPF_ACCEL_41HZ |
Default internal sampling (1kHz, 42Hz LP Bandwidth) More... | |
#define | MPU9250_DEFAULT_DLPF_GYRO_CFG MPU9250_DLPF_GYRO_41HZ |
Default internal sampling (1kHz, 42Hz LP Bandwidth) More... | |
#define | MPU9250_DEFAULT_INT_CFG 1 |
Default interrupt config: DATA_RDY_EN. More... | |
#define | MPU9250_DEFAULT_CLK_SEL 1 |
Default clock: PLL with X gyro reference. More... | |
#define | MPU9250_I2C_NB_SLAVES 5 |
#define | MPU9250_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 | MPU9250_GYRO_SENS_250_NUM 19327 |
#define | MPU9250_GYRO_SENS_250_DEN 35470 |
#define | MPU9250_GYRO_SENS_500 1.08977 |
#define | MPU9250_GYRO_SENS_500_NUM 57663 |
#define | MPU9250_GYRO_SENS_500_DEN 52913 |
#define | MPU9250_GYRO_SENS_1000 2.17953 |
#define | MPU9250_GYRO_SENS_1000_NUM 18271 |
#define | MPU9250_GYRO_SENS_1000_DEN 8383 |
#define | MPU9250_GYRO_SENS_2000 4.35906 |
#define | MPU9250_GYRO_SENS_2000_NUM 36542 |
#define | MPU9250_GYRO_SENS_2000_DEN 8383 |
#define | MPU9250_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 | MPU9250_ACCEL_SENS_2G_NUM 981 |
#define | MPU9250_ACCEL_SENS_2G_DEN 1600 |
#define | MPU9250_ACCEL_SENS_4G 1.22625 |
#define | MPU9250_ACCEL_SENS_4G_NUM 981 |
#define | MPU9250_ACCEL_SENS_4G_DEN 800 |
#define | MPU9250_ACCEL_SENS_8G 2.4525 |
#define | MPU9250_ACCEL_SENS_8G_NUM 981 |
#define | MPU9250_ACCEL_SENS_8G_DEN 400 |
#define | MPU9250_ACCEL_SENS_16G 4.905 |
#define | MPU9250_ACCEL_SENS_16G_NUM 981 |
#define | MPU9250_ACCEL_SENS_16G_DEN 200 |
Typedefs | |
typedef void(* | Mpu9250ConfigSet) (void *mpu, uint8_t _reg, uint8_t _val) |
Configuration function prototype. More... | |
typedef bool(* | Mpu9250I2cSlaveConfigure) (Mpu9250ConfigSet mpu_set, void *mpu) |
function prototype for configuration of a single I2C slave More... | |
Functions | |
void | mpu9250_set_default_config (struct Mpu9250Config *c) |
void | mpu9250_send_config (Mpu9250ConfigSet mpu_set, void *mpu, struct Mpu9250Config *config) |
Configuration sequence called once before normal use. More... | |
bool | mpu9250_configure_i2c_slaves (Mpu9250ConfigSet mpu_set, void *mpu) |
Configure I2C slaves of the MPU. More... | |
Variables | |
const float | MPU9250_GYRO_SENS [4] |
const struct Int32Rates | MPU9250_GYRO_SENS_FRAC [4][2] |
const float | MPU9250_ACCEL_SENS [4] |
const struct Int32Vect3 | MPU9250_ACCEL_SENS_FRAC [4][2] |
MPU-60X0 driver common interface (I2C and SPI).
Definition in file mpu9250.h.
struct Mpu9250I2cSlave |
Data Fields | ||
---|---|---|
Mpu9250I2cSlaveConfigure | configure |
struct Mpu9250Config |
Data Fields | ||
---|---|---|
enum Mpu9250AccelRanges | accel_range | g Range |
uint8_t | clk_sel | Clock select. |
enum Mpu9250DLPFAccel | dlpf_accel_cfg | Digital Low Pass Filter for accelerometer. |
enum Mpu9250DLPFGyro | dlpf_gyro_cfg | Digital Low Pass Filter for gyroscope. |
bool | drdy_int_enable | Enable Data Ready Interrupt. |
enum Mpu9250GyroRanges | gyro_range | deg/s Range |
bool | i2c_bypass |
Bypass MPU I2C. Only effective if using the I2C implementation. |
enum Mpu9250MstClk | i2c_mst_clk | MPU I2C master clock speed. |
uint8_t | i2c_mst_delay | MPU I2C slaves delayed sample rate. |
enum Mpu9250ConfStatus | init_status | init status |
bool | initialized | config done flag |
uint8_t | nb_bytes | number of bytes to read starting with MPU9250_REG_INT_STATUS |
uint8_t | nb_slave_init | number of already configured/initialized slaves |
uint8_t | nb_slaves | number of used I2C slaves |
struct Mpu9250I2cSlave | slaves[MPU9250_I2C_NB_SLAVES] | I2C slaves. |
uint8_t | smplrt_div | Sample rate divider. |
#define MPU9250_ACCEL_SENS_2G 0.613125 |
#define MPU9250_DEFAULT_AFS_SEL MPU9250_ACCEL_RANGE_8G |
#define MPU9250_DEFAULT_CLK_SEL 1 |
#define MPU9250_DEFAULT_DLPF_ACCEL_CFG MPU9250_DLPF_ACCEL_41HZ |
#define MPU9250_DEFAULT_DLPF_GYRO_CFG MPU9250_DLPF_GYRO_41HZ |
#define MPU9250_DEFAULT_FS_SEL MPU9250_GYRO_RANGE_1000 |
#define MPU9250_DEFAULT_INT_CFG 1 |
#define MPU9250_DEFAULT_SMPLRT_DIV 0 |
#define MPU9250_GYRO_SENS_250 0.544883 |
typedef bool(* Mpu9250I2cSlaveConfigure) (Mpu9250ConfigSet mpu_set, void *mpu) |
enum Mpu9250ConfStatus |
bool mpu9250_configure_i2c_slaves | ( | Mpu9250ConfigSet | mpu_set, |
void * | mpu | ||
) |
Configure I2C slaves of the MPU.
This is I2C/SPI implementation specific.
mpu_set | configuration function |
mpu | Mpu9250Spi or Mpu9250I2c peripheral |
Configure I2C slaves of the MPU.
Definition at line 175 of file mpu9250_i2c.c.
References Mpu9250_I2c::config, Mpu9250_Spi::config, Mpu9250I2cSlave::configure, Mpu9250Config::i2c_bypass, Mpu9250Config::i2c_mst_clk, Mpu9250Config::i2c_mst_delay, MPU9250_I2C_CONF_DONE, MPU9250_I2C_CONF_I2C_BYPASS_DIS, MPU9250_I2C_CONF_I2C_BYPASS_EN, MPU9250_I2C_CONF_I2C_MST_CLK, MPU9250_I2C_CONF_I2C_MST_DELAY, MPU9250_I2C_CONF_I2C_MST_DIS, MPU9250_I2C_CONF_I2C_MST_EN, MPU9250_I2C_CONF_I2C_SMPLRT, MPU9250_I2C_CONF_SLAVES_CONFIGURE, MPU9250_I2C_CONF_UNINIT, MPU9250_I2C_IF_DIS, MPU9250_I2C_MST_EN, MPU9250_I2C_NB_SLAVES, MPU9250_REG_I2C_MST_CTRL, MPU9250_REG_I2C_MST_DELAY, MPU9250_REG_I2C_SLV4_CTRL, MPU9250_REG_INT_PIN_CFG, MPU9250_REG_USER_CTRL, MPU9250_SPI_CONF_DONE, MPU9250_SPI_CONF_I2C_MST_CLK, MPU9250_SPI_CONF_I2C_MST_DELAY, MPU9250_SPI_CONF_I2C_MST_EN, MPU9250_SPI_CONF_SLAVES_CONFIGURE, MPU9250_SPI_CONF_UNINIT, Mpu9250Config::nb_slave_init, Mpu9250Config::nb_slaves, Mpu9250_I2c::slave_init_status, Mpu9250_Spi::slave_init_status, and Mpu9250Config::slaves.
Referenced by mpu9250_send_config().
void mpu9250_send_config | ( | Mpu9250ConfigSet | mpu_set, |
void * | mpu, | ||
struct Mpu9250Config * | config | ||
) |
Configuration sequence called once before normal use.
Definition at line 89 of file mpu9250.c.
References config, MPU9250_CONF_ACCEL, MPU9250_CONF_DLPF_ACCEL, MPU9250_CONF_DLPF_GYRO, MPU9250_CONF_DONE, MPU9250_CONF_GYRO, MPU9250_CONF_I2C_SLAVES, MPU9250_CONF_INT_ENABLE, MPU9250_CONF_PWR, MPU9250_CONF_RESET, MPU9250_CONF_SD, MPU9250_CONF_USER_RESET, mpu9250_configure_i2c_slaves(), MPU9250_FIFO_RESET, MPU9250_I2C_MST_RESET, MPU9250_REG_ACCEL_CONFIG, MPU9250_REG_ACCEL_CONFIG_2, MPU9250_REG_CONFIG, MPU9250_REG_GYRO_CONFIG, MPU9250_REG_INT_ENABLE, MPU9250_REG_PWR_MGMT_1, MPU9250_REG_SMPLRT_DIV, MPU9250_REG_USER_CTRL, and MPU9250_SIG_COND_RESET.
Referenced by mpu9250_i2c_event(), mpu9250_i2c_start_configure(), mpu9250_spi_event(), and mpu9250_spi_start_configure().
void mpu9250_set_default_config | ( | struct Mpu9250Config * | c | ) |
Definition at line 68 of file mpu9250.c.
References Mpu9250Config::accel_range, Mpu9250Config::clk_sel, Mpu9250Config::dlpf_accel_cfg, Mpu9250Config::dlpf_gyro_cfg, Mpu9250Config::drdy_int_enable, Mpu9250Config::gyro_range, Mpu9250Config::i2c_bypass, MPU9250_DEFAULT_AFS_SEL, MPU9250_DEFAULT_CLK_SEL, MPU9250_DEFAULT_DLPF_ACCEL_CFG, MPU9250_DEFAULT_DLPF_GYRO_CFG, MPU9250_DEFAULT_FS_SEL, MPU9250_DEFAULT_SMPLRT_DIV, Mpu9250Config::nb_bytes, Mpu9250Config::nb_slave_init, Mpu9250Config::nb_slaves, and Mpu9250Config::smplrt_div.
Referenced by mpu9250_i2c_init(), and mpu9250_spi_init().
|
extern |
Definition at line 50 of file mpu9250.c.
Referenced by imu_mpu9250_init().
|
extern |
Definition at line 32 of file mpu9250.c.
Referenced by imu_mpu9250_init().