|
Paparazzi UAS
v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
|
Driver for the MPU-9250 using I2C. More...
#include "std.h"#include "math/pprz_algebra_int.h"#include "mcu_periph/i2c.h"#include "peripherals/mpu9250.h"#include "peripherals/ak8963.h"
Include dependency graph for mpu9250_i2c.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | Mpu9250_I2c |
| union | Mpu9250_I2c.data_accel |
| union | Mpu9250_I2c.data_rates |
Macros | |
| #define | MPU9250_BUFFER_EXT_LEN 16 |
Functions | |
| void | mpu9250_i2c_init (struct Mpu9250_I2c *mpu, struct i2c_periph *i2c_p, uint8_t addr) |
| void | mpu9250_i2c_start_configure (struct Mpu9250_I2c *mpu) |
| void | mpu9250_i2c_read (struct Mpu9250_I2c *mpu) |
| void | mpu9250_i2c_event (struct Mpu9250_I2c *mpu) |
| static void | mpu9250_i2c_periodic (struct Mpu9250_I2c *mpu) |
| convenience function: read or start configuration if not already initialized More... | |
Driver for the MPU-9250 using I2C.
Definition in file mpu9250_i2c.h.
| struct Mpu9250_I2c |
Definition at line 55 of file mpu9250_i2c.h.
Collaboration diagram for Mpu9250_I2c:| Data Fields | ||
|---|---|---|
| struct Ak8963 | akm | "internal" magnetometer |
| struct Mpu9250Config | config | |
| union Mpu9250_I2c | data_accel | |
| volatile bool | data_available | data ready flag |
| uint8_t | data_ext[MPU9250_BUFFER_EXT_LEN] | |
| union Mpu9250_I2c | data_rates | |
| struct i2c_periph * | i2c_p | |
| struct i2c_transaction | i2c_trans | |
| enum Mpu9250I2cSlaveInitStatus | slave_init_status | |
| union Mpu9250_I2c.data_accel |
Definition at line 59 of file mpu9250_i2c.h.
| Data Fields | ||
|---|---|---|
| int16_t | value[3] | accel data values accessible by channel index |
| struct Int16Vect3 | vect | accel data vector in accel coordinate system |
| union Mpu9250_I2c.data_rates |
Definition at line 63 of file mpu9250_i2c.h.
| Data Fields | ||
|---|---|---|
| struct Int16Rates | rates | rates data as angular rates in gyro coordinate system |
| int16_t | value[3] | rates data values accessible by channel index |
| #define MPU9250_BUFFER_EXT_LEN 16 |
Definition at line 40 of file mpu9250_i2c.h.
Definition at line 42 of file mpu9250_i2c.h.
| void mpu9250_i2c_event | ( | struct Mpu9250_I2c * | mpu | ) |
Definition at line 101 of file mpu9250_i2c.c.
References ak8963_event(), Mpu9250_I2c::akm, i2c_transaction::buf, Mpu9250_I2c::config, Mpu9250_I2c::data_accel, Mpu9250_I2c::data_available, Mpu9250_I2c::data_ext, Mpu9250_I2c::data_rates, FALSE, Mpu9250Config::i2c_bypass, Mpu9250_I2c::i2c_trans, I2CTransDone, I2CTransFailed, I2CTransSuccess, Mpu9250Config::init_status, Mpu9250Config::initialized, Int16FromBuf, MPU9250_CONF_UNINIT, mpu9250_i2c_write_to_reg(), mpu9250_send_config(), Mpu9250Config::nb_bytes, Mpu9250Config::nb_slaves, and i2c_transaction::status.
Referenced by imu_mpu9250_event().
Here is the call graph for this function:
Here is the caller graph for this function:| void mpu9250_i2c_init | ( | struct Mpu9250_I2c * | mpu, |
| struct i2c_periph * | i2c_p, | ||
| uint8_t | addr | ||
| ) |
Definition at line 33 of file mpu9250_i2c.c.
References ak8963_init(), Mpu9250_I2c::akm, Mpu9250_I2c::config, Mpu9250I2cSlave::configure, Mpu9250_I2c::data_available, Mpu9250Config::i2c_bypass, Mpu9250_I2c::i2c_p, Mpu9250_I2c::i2c_trans, I2CTransDone, imu_mpu9250_configure_mag_slave(), Mpu9250Config::init_status, Mpu9250Config::initialized, MPU9250_CONF_UNINIT, MPU9250_I2C_CONF_UNINIT, MPU9250_MAG_ADDR, mpu9250_set_default_config(), Mpu9250Config::nb_slaves, i2c_transaction::slave_addr, Mpu9250_I2c::slave_init_status, Mpu9250Config::slaves, and i2c_transaction::status.
Referenced by imu_mpu9250_init().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
convenience function: read or start configuration if not already initialized
Definition at line 80 of file mpu9250_i2c.h.
References Mpu9250_I2c::config, Mpu9250Config::initialized, mpu9250_i2c_read(), and mpu9250_i2c_start_configure().
Referenced by imu_mpu9250_periodic().
Here is the call graph for this function:
Here is the caller graph for this function:| void mpu9250_i2c_read | ( | struct Mpu9250_I2c * | mpu | ) |
Definition at line 84 of file mpu9250_i2c.c.
References ak8963_read(), Mpu9250_I2c::akm, i2c_transaction::buf, Mpu9250_I2c::config, Mpu9250_I2c::i2c_p, Mpu9250_I2c::i2c_trans, i2c_transceive(), I2CTransDone, Mpu9250Config::initialized, MPU9250_REG_INT_STATUS, Mpu9250Config::nb_bytes, i2c_transaction::slave_addr, and i2c_transaction::status.
Referenced by mpu9250_i2c_periodic().
Here is the call graph for this function:
Here is the caller graph for this function:| void mpu9250_i2c_start_configure | ( | struct Mpu9250_I2c * | mpu | ) |
Definition at line 74 of file mpu9250_i2c.c.
References Mpu9250_I2c::config, Mpu9250_I2c::i2c_trans, I2CTransDone, I2CTransSuccess, Mpu9250Config::init_status, MPU9250_CONF_UNINIT, mpu9250_i2c_write_to_reg(), mpu9250_send_config(), and i2c_transaction::status.
Referenced by mpu9250_i2c_periodic().
Here is the call graph for this function:
Here is the caller graph for this function: