Paparazzi UAS
v5.8.2_stable-0-g6260b7c
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... | |
Typedefs | |
typedef void(* | Mpu9250ConfigSet )(void *mpu, uint8_t _reg, uint8_t _val) |
Configuration function prototype. More... | |
typedef bool_t(* | 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_t | mpu9250_configure_i2c_slaves (Mpu9250ConfigSet mpu_set, void *mpu) |
Configure I2C slaves of the MPU. More... | |
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_t | drdy_int_enable | Enable Data Ready Interrupt. |
enum Mpu9250GyroRanges | gyro_range | deg/s Range |
bool_t | 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_t | initialized | config done flag |
uint8_t | nb_bytes | number of bytes to read starting with MPU9250_REG_INT_STATUS |
uint8_t | nb_slaves | number of used I2C slaves |
struct Mpu9250I2cSlave | slaves[5] | I2C slaves. |
uint8_t | smplrt_div | Sample rate divider. |
#define MPU9250_DEFAULT_AFS_SEL MPU9250_ACCEL_RANGE_8G |
Default accel full scale range +- 16g.
Definition at line 40 of file mpu9250.h.
Referenced by mpu9250_set_default_config().
#define MPU9250_DEFAULT_CLK_SEL 1 |
Default clock: PLL with X gyro reference.
Definition at line 48 of file mpu9250.h.
Referenced by mpu9250_set_default_config().
#define MPU9250_DEFAULT_DLPF_ACCEL_CFG MPU9250_DLPF_ACCEL_41HZ |
Default internal sampling (1kHz, 42Hz LP Bandwidth)
Definition at line 42 of file mpu9250.h.
Referenced by mpu9250_set_default_config().
#define MPU9250_DEFAULT_DLPF_GYRO_CFG MPU9250_DLPF_GYRO_41HZ |
Default internal sampling (1kHz, 42Hz LP Bandwidth)
Definition at line 44 of file mpu9250.h.
Referenced by mpu9250_set_default_config().
#define MPU9250_DEFAULT_FS_SEL MPU9250_GYRO_RANGE_1000 |
Default gyro full scale range +- 2000°/s.
Definition at line 38 of file mpu9250.h.
Referenced by mpu9250_set_default_config().
#define MPU9250_DEFAULT_INT_CFG 1 |
#define MPU9250_DEFAULT_SMPLRT_DIV 0 |
Default sample rate divider.
Definition at line 36 of file mpu9250.h.
Referenced by mpu9250_set_default_config().
typedef bool_t(* Mpu9250I2cSlaveConfigure)(Mpu9250ConfigSet mpu_set, void *mpu) |
enum Mpu9250ConfStatus |
bool_t 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 |
Definition at line 167 of file mpu9250_i2c.c.
References Mpu9250_Spi::config, Mpu9250_I2c::config, Mpu9250I2cSlave::configure, FALSE, 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_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, Mpu9250_Spi::slave_init_status, Mpu9250_I2c::slave_init_status, Mpu9250Config::slaves, and TRUE.
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 52 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::init_status, Mpu9250Config::initialized, 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, MPU9250_SIG_COND_RESET, Mpu9250Config::nb_slaves, Mpu9250Config::smplrt_div, and TRUE.
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 32 of file mpu9250.c.
References Mpu9250Config::accel_range, Mpu9250Config::clk_sel, Mpu9250Config::dlpf_accel_cfg, Mpu9250Config::dlpf_gyro_cfg, Mpu9250Config::drdy_int_enable, FALSE, 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_slaves, and Mpu9250Config::smplrt_div.
Referenced by mpu9250_i2c_init(), and mpu9250_spi_init().