Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
mpu9250_spi.h File Reference

Driver for the MPU-9250 using SPI. More...

#include "std.h"
#include "math/pprz_algebra_int.h"
#include "mcu_periph/spi.h"
#include "peripherals/mpu9250.h"
+ Include dependency graph for mpu9250_spi.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Mpu9250_Spi
 
union  Mpu9250_Spi.data_accel
 
union  Mpu9250_Spi.data_rates
 

Macros

#define MPU9250_BUFFER_LEN   32
 
#define MPU9250_BUFFER_EXT_LEN   16
 

Enumerations

enum  Mpu9250SpiSlaveInitStatus {
  MPU9250_SPI_CONF_UNINIT , 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_DONE
}
 

Functions

void mpu9250_spi_init (struct Mpu9250_Spi *mpu, struct spi_periph *spi_p, uint8_t addr)
 
void mpu9250_spi_start_configure (struct Mpu9250_Spi *mpu)
 
void mpu9250_spi_read (struct Mpu9250_Spi *mpu)
 
void mpu9250_spi_event (struct Mpu9250_Spi *mpu)
 
static void mpu9250_spi_periodic (struct Mpu9250_Spi *mpu)
 convenience function: read or start configuration if not already initialized More...
 

Detailed Description

Driver for the MPU-9250 using SPI.

Definition in file mpu9250_spi.h.


Data Structure Documentation

◆ Mpu9250_Spi

struct Mpu9250_Spi

Definition at line 51 of file mpu9250_spi.h.

+ Collaboration diagram for Mpu9250_Spi:
Data Fields
struct Mpu9250Config config
union Mpu9250_Spi data_accel
volatile bool data_available data ready flag
uint8_t data_ext[MPU9250_BUFFER_EXT_LEN]
union Mpu9250_Spi data_rates
volatile uint8_t rx_buf[MPU9250_BUFFER_LEN]
enum Mpu9250SpiSlaveInitStatus slave_init_status
struct spi_periph * spi_p
struct spi_transaction spi_trans
volatile uint8_t tx_buf[2]

◆ Mpu9250_Spi.data_accel

union Mpu9250_Spi.data_accel

Definition at line 57 of file mpu9250_spi.h.

Data Fields
int16_t value[3] accel data values accessible by channel index
struct Int16Vect3 vect accel data vector in accel coordinate system

◆ Mpu9250_Spi.data_rates

union Mpu9250_Spi.data_rates

Definition at line 61 of file mpu9250_spi.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

Macro Definition Documentation

◆ MPU9250_BUFFER_EXT_LEN

#define MPU9250_BUFFER_EXT_LEN   16

Definition at line 40 of file mpu9250_spi.h.

◆ MPU9250_BUFFER_LEN

#define MPU9250_BUFFER_LEN   32

Definition at line 39 of file mpu9250_spi.h.

Enumeration Type Documentation

◆ Mpu9250SpiSlaveInitStatus

Enumerator
MPU9250_SPI_CONF_UNINIT 
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_DONE 

Definition at line 42 of file mpu9250_spi.h.

Function Documentation

◆ mpu9250_spi_event()

◆ mpu9250_spi_init()

◆ mpu9250_spi_periodic()

static void mpu9250_spi_periodic ( struct Mpu9250_Spi mpu)
inlinestatic

convenience function: read or start configuration if not already initialized

Definition at line 77 of file mpu9250_spi.h.

References Mpu9250_Spi::config, Mpu9250Config::initialized, mpu9250_spi_read(), and mpu9250_spi_start_configure().

Referenced by imu_mpu9250_periodic().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mpu9250_spi_read()

void mpu9250_spi_read ( struct Mpu9250_Spi mpu)

◆ mpu9250_spi_start_configure()