Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
imu_aspirin_2_spi.c File Reference

Driver for the Aspirin v2.x IMU using SPI for the MPU6000. More...

#include "modules/imu/imu_aspirin_2_spi.h"
#include "modules/imu/imu.h"
#include "modules/core/abi.h"
#include "mcu_periph/sys_time.h"
#include "mcu_periph/spi.h"
#include "peripherals/hmc58xx_regs.h"
#include "generated/modules.h"
+ Include dependency graph for imu_aspirin_2_spi.c:

Go to the source code of this file.

Macros

#define ASPIRIN_2_SPI_SLAVE_IDX   SPI_SLAVE2
 
#define ASPIRIN_2_SPI_DEV   spi2
 
#define HMC58XX_DO   0x6
 
#define HMC58XX_MS   0x0
 
#define HMC58XX_GN   0x1
 
#define HMC58XX_MD   0x0
 
#define HMC58XX_CRA   ((HMC58XX_DO<<2)|(HMC58XX_MS))
 
#define HMC58XX_CRB   (HMC58XX_GN<<5)
 
#define ASPIRIN_2_MAG_STARTUP_DELAY   1.5
 delay in seconds before starting to configure HMC58xx mag slave More...
 
#define Int16FromBuf(_buf, _idx)   ((int16_t)((_buf[_idx]<<8) | _buf[_idx+1]))
 

Functions

void mpu_wait_slave4_ready (void)
 
void mpu_wait_slave4_ready_cb (struct spi_transaction *t)
 
bool imu_aspirin2_configure_mag_slave (Mpu60x0ConfigSet mpu_set, void *mpu)
 function to configure hmc5883 mag More...
 
void imu_aspirin2_init (void)
 
void imu_aspirin2_periodic (void)
 
void imu_aspirin2_event (void)
 
static void mpu_set_and_wait (Mpu60x0ConfigSet mpu_set, void *mpu, uint8_t _reg, uint8_t _val)
 

Variables

struct ImuAspirin2Spi imu_aspirin2
 

Detailed Description

Driver for the Aspirin v2.x IMU using SPI for the MPU6000.

Definition in file imu_aspirin_2_spi.c.

Macro Definition Documentation

◆ ASPIRIN_2_MAG_STARTUP_DELAY

#define ASPIRIN_2_MAG_STARTUP_DELAY   1.5

delay in seconds before starting to configure HMC58xx mag slave

Definition at line 92 of file imu_aspirin_2_spi.c.

◆ ASPIRIN_2_SPI_DEV

#define ASPIRIN_2_SPI_DEV   spi2

Definition at line 42 of file imu_aspirin_2_spi.c.

◆ ASPIRIN_2_SPI_SLAVE_IDX

#define ASPIRIN_2_SPI_SLAVE_IDX   SPI_SLAVE2

Definition at line 37 of file imu_aspirin_2_spi.c.

◆ HMC58XX_CRA

#define HMC58XX_CRA   ((HMC58XX_DO<<2)|(HMC58XX_MS))

Definition at line 87 of file imu_aspirin_2_spi.c.

◆ HMC58XX_CRB

#define HMC58XX_CRB   (HMC58XX_GN<<5)

Definition at line 88 of file imu_aspirin_2_spi.c.

◆ HMC58XX_DO

#define HMC58XX_DO   0x6

Definition at line 75 of file imu_aspirin_2_spi.c.

◆ HMC58XX_GN

#define HMC58XX_GN   0x1

Definition at line 81 of file imu_aspirin_2_spi.c.

◆ HMC58XX_MD

#define HMC58XX_MD   0x0

Definition at line 84 of file imu_aspirin_2_spi.c.

◆ HMC58XX_MS

#define HMC58XX_MS   0x0

Definition at line 78 of file imu_aspirin_2_spi.c.

◆ Int16FromBuf

#define Int16FromBuf (   _buf,
  _idx 
)    ((int16_t)((_buf[_idx]<<8) | _buf[_idx+1]))

Definition at line 158 of file imu_aspirin_2_spi.c.

Function Documentation

◆ imu_aspirin2_configure_mag_slave()

bool imu_aspirin2_configure_mag_slave ( Mpu60x0ConfigSet  mpu_set,
void *  mpu 
)

◆ imu_aspirin2_event()

◆ imu_aspirin2_init()

◆ imu_aspirin2_periodic()

void imu_aspirin2_periodic ( void  )

Definition at line 153 of file imu_aspirin_2_spi.c.

References imu_aspirin2, ImuAspirin2Spi::mpu, and mpu60x0_spi_periodic().

+ Here is the call graph for this function:

◆ mpu_set_and_wait()

static void mpu_set_and_wait ( Mpu60x0ConfigSet  mpu_set,
void *  mpu,
uint8_t  _reg,
uint8_t  _val 
)
inlinestatic

Definition at line 250 of file imu_aspirin_2_spi.c.

References imu_aspirin2, ImuAspirin2Spi::mpu, Mpu60x0_Spi::spi_trans, SPITransSuccess, and spi_transaction::status.

Referenced by imu_aspirin2_configure_mag_slave().

+ Here is the caller graph for this function:

◆ mpu_wait_slave4_ready()

void mpu_wait_slave4_ready ( void  )

◆ mpu_wait_slave4_ready_cb()

void mpu_wait_slave4_ready_cb ( struct spi_transaction t)

Definition at line 306 of file imu_aspirin_2_spi.c.

References imu_aspirin2, spi_transaction::input_buf, MPU60X0_I2C_SLV4_DONE, ImuAspirin2Spi::slave4_ready, SPITransDone, and spi_transaction::status.

Referenced by imu_aspirin2_init().

+ Here is the caller graph for this function:

Variable Documentation

◆ imu_aspirin2