Paparazzi UAS  v5.2.2_stable-0-gd6b9f29
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
imu_navstik.c File Reference

Driver for the Navstik magnetometer, accelerometer and gyroscope. More...

#include "subsystems/imu.h"
#include "mcu_periph/i2c.h"
+ Include dependency graph for imu_navstik.c:

Go to the source code of this file.

Macros

#define NAVSTIK_MAG_I2C_DEV   i2c3
 
#define NAVSTIK_MPU_I2C_DEV   i2c1
 
#define NAVSTIK_GYRO_RANGE   MPU60X0_GYRO_RANGE_1000
 
#define NAVSTIK_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_8G
 

Functions

void imu_impl_init (void)
 Navstik IMU initializtion of the MPU-60x0 and HMC58xx. More...
 
void imu_periodic (void)
 Handle all the periodic tasks of the Navstik IMU components. More...
 
void imu_navstik_event (void)
 Handle all the events of the Navstik IMU components. More...
 

Variables

struct ImuNavstik imu_navstik
 Basic Navstik IMU data. More...
 

Detailed Description

Driver for the Navstik magnetometer, accelerometer and gyroscope.

Definition in file imu_navstik.c.

Macro Definition Documentation

#define NAVSTIK_ACCEL_RANGE   MPU60X0_ACCEL_RANGE_8G

Definition at line 68 of file imu_navstik.c.

Referenced by imu_impl_init().

#define NAVSTIK_GYRO_RANGE   MPU60X0_GYRO_RANGE_1000

Definition at line 63 of file imu_navstik.c.

Referenced by imu_impl_init().

#define NAVSTIK_MAG_I2C_DEV   i2c3

Definition at line 33 of file imu_navstik.c.

Referenced by imu_impl_init().

#define NAVSTIK_MPU_I2C_DEV   i2c1

Definition at line 38 of file imu_navstik.c.

Referenced by imu_impl_init().

Function Documentation

void imu_impl_init ( void  )

Navstik IMU initializtion of the MPU-60x0 and HMC58xx.

Todo:
drdy int handling for adxl345
Todo:
eoc interrupt for itg3200, polling for now (including status reg)
Todo:
drdy int handling for adxl345
Todo:
eoc interrupt for itg3200, polling for now (including status reg)
Todo:
drdy int handling for adxl345

Definition at line 78 of file imu_navstik.c.

References Mpu60x0Config::accel_range, ImuNavstik::accel_valid, Mpu60x0_I2c::config, Mpu60x0Config::dlpf_cfg, FALSE, Mpu60x0Config::gyro_range, ImuNavstik::gyro_valid, ImuNavstik::hmc, HMC58XX_ADDR, hmc58xx_init(), ImuNavstik::mag_valid, ImuNavstik::mpu, MPU60X0_ADDR_ALT, mpu60x0_i2c_init(), NAVSTIK_ACCEL_RANGE, NAVSTIK_GYRO_RANGE, NAVSTIK_MAG_I2C_DEV, NAVSTIK_MPU_I2C_DEV, and Mpu60x0Config::smplrt_div.

+ Here is the call graph for this function:

void imu_navstik_event ( void  )

Handle all the events of the Navstik IMU components.

When there is data available convert it to the correct axis and save it in the imu structure.

Definition at line 112 of file imu_navstik.c.

References Imu::accel_unscaled, ImuNavstik::accel_valid, Hmc58xx::data, Mpu60x0_I2c::data_accel, Mpu60x0_I2c::data_available, Hmc58xx::data_available, Mpu60x0_I2c::data_rates, FALSE, Imu::gyro_unscaled, ImuNavstik::gyro_valid, ImuNavstik::hmc, hmc58xx_event(), imu, imu_navstik, Imu::mag_unscaled, ImuNavstik::mag_valid, ImuNavstik::mpu, mpu60x0_i2c_event(), Mpu60x0_I2c::rates, RATES_COPY, TRUE, Hmc58xx::vect, Mpu60x0_I2c::vect, VECT3_COPY, Int16Vect3::x, Int32Vect3::x, Int16Vect3::y, Int32Vect3::y, Int16Vect3::z, and Int32Vect3::z.

Referenced by ImuEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void imu_periodic ( void  )

Handle all the periodic tasks of the Navstik IMU components.

Read the MPU60x0 every periodic call and the HMC58XX every 10th call.

Definition at line 99 of file imu_navstik.c.

References ImuNavstik::hmc, hmc58xx_periodic(), imu_navstik, ImuNavstik::mpu, and mpu60x0_i2c_periodic().

+ Here is the call graph for this function:

Variable Documentation

struct ImuNavstik imu_navstik

Basic Navstik IMU data.

Definition at line 73 of file imu_navstik.c.

Referenced by imu_navstik_event(), imu_periodic(), and ImuEvent().