Paparazzi UAS  v5.0.5_stable-7-g4b8bbb7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
imu_aspirin_2_spi.c File Reference

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

+ 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 ASPIRIN_2_GYRO_RANGE   MPU60X0_GYRO_RANGE_2000
 
#define ASPIRIN_2_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_16G
 
#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 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_t imu_aspirin2_configure_mag_slave (Mpu60x0ConfigSet mpu_set, void *mpu)
 function to configure hmc5883 mag More...
 
void imu_impl_init (void)
 
void imu_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

#define ASPIRIN_2_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_16G

Definition at line 72 of file imu_aspirin_2_spi.c.

Referenced by imu_impl_init().

#define ASPIRIN_2_GYRO_RANGE   MPU60X0_GYRO_RANGE_2000

Definition at line 67 of file imu_aspirin_2_spi.c.

Referenced by imu_impl_init().

#define ASPIRIN_2_SPI_DEV   spi2

Definition at line 39 of file imu_aspirin_2_spi.c.

Referenced by imu_impl_init().

#define ASPIRIN_2_SPI_SLAVE_IDX   SPI_SLAVE2

Definition at line 34 of file imu_aspirin_2_spi.c.

Referenced by imu_impl_init().

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

Definition at line 91 of file imu_aspirin_2_spi.c.

Referenced by imu_aspirin2_configure_mag_slave().

#define HMC58XX_CRB   (HMC58XX_GN<<5)

Definition at line 92 of file imu_aspirin_2_spi.c.

Referenced by imu_aspirin2_configure_mag_slave().

#define HMC58XX_DO   0x6

Definition at line 79 of file imu_aspirin_2_spi.c.

#define HMC58XX_GN   0x1

Definition at line 85 of file imu_aspirin_2_spi.c.

#define HMC58XX_MD   0x0

Definition at line 88 of file imu_aspirin_2_spi.c.

Referenced by imu_aspirin2_configure_mag_slave().

#define HMC58XX_MS   0x0

Definition at line 82 of file imu_aspirin_2_spi.c.

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

Definition at line 156 of file imu_aspirin_2_spi.c.

Referenced by imu_aspirin2_event().

Function Documentation

bool_t imu_aspirin2_configure_mag_slave ( Mpu60x0ConfigSet  mpu_set,
void *  mpu 
)

function to configure hmc5883 mag

Returns
TRUE if mag configuration finished

Definition at line 199 of file imu_aspirin_2_spi.c.

References HMC58XX_ADDR, HMC58XX_CRA, HMC58XX_CRB, HMC58XX_MD, HMC58XX_REG_CFGA, HMC58XX_REG_CFGB, HMC58XX_REG_DATXM, HMC58XX_REG_MODE, MPU60X0_REG_I2C_SLV0_ADDR, MPU60X0_REG_I2C_SLV0_CTRL, MPU60X0_REG_I2C_SLV0_REG, MPU60X0_REG_I2C_SLV4_ADDR, MPU60X0_REG_I2C_SLV4_CTRL, MPU60X0_REG_I2C_SLV4_DO, MPU60X0_REG_I2C_SLV4_REG, MPU60X0_SPI_READ, mpu_set_and_wait(), mpu_wait_slave4_ready(), and TRUE.

Referenced by imu_impl_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void imu_periodic ( void  )

Definition at line 151 of file imu_aspirin_2_spi.c.

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

+ Here is the call graph for this function:

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

Definition at line 190 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:

void mpu_wait_slave4_ready ( void  )
void mpu_wait_slave4_ready_cb ( struct spi_transaction t)

Definition at line 240 of file imu_aspirin_2_spi.c.

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

Referenced by imu_impl_init().

+ Here is the caller graph for this function:

Variable Documentation