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

BMI088 driver common interface (I2C and SPI). More...

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

Go to the source code of this file.

Data Structures

struct  Bmi088Config
 

Macros

#define BMI088_DEFAULT_GYRO_RANGE   BMI088_GYRO_RANGE_1000
 Default gyro full scale range +- 1000°/s. More...
 
#define BMI088_DEFAULT_GYRO_ODR   BMI088_GYRO_ODR_1000_BW_116
 Default gyro output rate. More...
 
#define BMI088_DEFAULT_ACCEL_RANGE   BMI088_ACCEL_RANGE_12G
 Default accel full scale range +- 6g. More...
 
#define BMI088_DEFAULT_ACCEL_ODR   BMI088_ACCEL_ODR_1600
 Default accel output rate. More...
 
#define BMI088_DEFAULT_ACCEL_BW   BMI088_ACCEL_BW_OSR4
 Default accel bandwidth. More...
 
#define BMI088_GYRO_SENS_125   0.272442
 default gyro sensitivy from the datasheet sens = 1/ [LSB/(deg/s)] * pi/180 * 2^INT32_RATE_FRAC ex: BMI with 1000 deg/s has 32.8 LSB/(deg/s) sens = 1/32.8 * pi/180 * 4096 = 2.17953 More...
 
#define BMI088_GYRO_SENS_125_NUM   19327
 
#define BMI088_GYRO_SENS_125_DEN   17735
 
#define BMI088_GYRO_SENS_250   0.544883
 
#define BMI088_GYRO_SENS_250_NUM   19327
 
#define BMI088_GYRO_SENS_250_DEN   35470
 
#define BMI088_GYRO_SENS_500   1.08977
 
#define BMI088_GYRO_SENS_500_NUM   57663
 
#define BMI088_GYRO_SENS_500_DEN   52913
 
#define BMI088_GYRO_SENS_1000   2.17953
 
#define BMI088_GYRO_SENS_1000_NUM   18271
 
#define BMI088_GYRO_SENS_1000_DEN   8383
 
#define BMI088_GYRO_SENS_2000   4.35906
 
#define BMI088_GYRO_SENS_2000_NUM   36542
 
#define BMI088_GYRO_SENS_2000_DEN   8383
 
#define BMI088_ACCEL_SENS_3G   0.919912
 default accel sensitivy from the datasheet sens = 9.81 [m/s^2] / [LSB/g] * 2^INT32_ACCEL_FRAC ex: BMI with 6g has 5460 LSB/g sens = 9.81 [m/s^2] / 5460 [LSB/g] * 2^INT32_ACCEL_FRAC = 1.83982 More...
 
#define BMI088_ACCEL_SENS_3G_NUM   9199
 
#define BMI088_ACCEL_SENS_3G_DEN   10000
 
#define BMI088_ACCEL_SENS_6G   1.83982
 
#define BMI088_ACCEL_SENS_6G_NUM   18398
 
#define BMI088_ACCEL_SENS_6G_DEN   10000
 
#define BMI088_ACCEL_SENS_12G   3.67965
 
#define BMI088_ACCEL_SENS_12G_NUM   36797
 
#define BMI088_ACCEL_SENS_12G_DEN   10000
 
#define BMI088_ACCEL_SENS_24G   7.3593
 
#define BMI088_ACCEL_SENS_24G_NUM   7359
 
#define BMI088_ACCEL_SENS_24G_DEN   1000
 
#define BMI088_CONFIG_ACCEL   0
 
#define BMI088_CONFIG_GYRO   1
 

Typedefs

typedef void(* Bmi088ConfigSet) (void *bmi, uint8_t _reg, uint8_t _val, uint8_t _type)
 Configuration function prototype. More...
 

Enumerations

enum  Bmi088ConfStatus {
  BMI088_CONF_UNINIT , BMI088_CONF_ACCEL_RANGE , BMI088_CONF_ACCEL_ODR , BMI088_CONF_ACCEL_PWR_CONF ,
  BMI088_CONF_ACCEL_PWR_CTRL , BMI088_CONF_GYRO_RANGE , BMI088_CONF_GYRO_ODR , BMI088_CONF_GYRO_PWR ,
  BMI088_CONF_DONE
}
 

Functions

void bmi088_set_default_config (struct Bmi088Config *c)
 
void bmi088_send_config (Bmi088ConfigSet bmi_set, void *bmi, struct Bmi088Config *config)
 Configuration sequence called once before normal use. More...
 

Variables

const float BMI088_GYRO_SENS [5]
 
const struct Int32Rates BMI088_GYRO_SENS_FRAC [5][2]
 
const float BMI088_ACCEL_SENS [4]
 
const struct Int32Vect3 BMI088_ACCEL_SENS_FRAC [4][2]
 

Detailed Description

BMI088 driver common interface (I2C and SPI).

Definition in file bmi088.h.


Data Structure Documentation

◆ Bmi088Config

struct Bmi088Config

Definition at line 114 of file bmi088.h.

Data Fields
enum Bmi088AccelBW accel_bw bandwidth
enum Bmi088AccelODR accel_odr output data rate
enum Bmi088AccelRanges accel_range g Range
float accel_samplerate samplerate in Hz from accel_odr
enum Bmi088GyroODR gyro_odr output data rate
enum Bmi088GyroRanges gyro_range deg/s Range
float gyro_samplerate samplerate in Hz from gyro_odr
enum Bmi088ConfStatus init_status init status
bool initialized config done flag

Macro Definition Documentation

◆ BMI088_ACCEL_SENS_12G

#define BMI088_ACCEL_SENS_12G   3.67965

Definition at line 85 of file bmi088.h.

◆ BMI088_ACCEL_SENS_12G_DEN

#define BMI088_ACCEL_SENS_12G_DEN   10000

Definition at line 87 of file bmi088.h.

◆ BMI088_ACCEL_SENS_12G_NUM

#define BMI088_ACCEL_SENS_12G_NUM   36797

Definition at line 86 of file bmi088.h.

◆ BMI088_ACCEL_SENS_24G

#define BMI088_ACCEL_SENS_24G   7.3593

Definition at line 88 of file bmi088.h.

◆ BMI088_ACCEL_SENS_24G_DEN

#define BMI088_ACCEL_SENS_24G_DEN   1000

Definition at line 90 of file bmi088.h.

◆ BMI088_ACCEL_SENS_24G_NUM

#define BMI088_ACCEL_SENS_24G_NUM   7359

Definition at line 89 of file bmi088.h.

◆ BMI088_ACCEL_SENS_3G

#define BMI088_ACCEL_SENS_3G   0.919912

default accel sensitivy from the datasheet sens = 9.81 [m/s^2] / [LSB/g] * 2^INT32_ACCEL_FRAC ex: BMI with 6g has 5460 LSB/g sens = 9.81 [m/s^2] / 5460 [LSB/g] * 2^INT32_ACCEL_FRAC = 1.83982

Definition at line 79 of file bmi088.h.

◆ BMI088_ACCEL_SENS_3G_DEN

#define BMI088_ACCEL_SENS_3G_DEN   10000

Definition at line 81 of file bmi088.h.

◆ BMI088_ACCEL_SENS_3G_NUM

#define BMI088_ACCEL_SENS_3G_NUM   9199

Definition at line 80 of file bmi088.h.

◆ BMI088_ACCEL_SENS_6G

#define BMI088_ACCEL_SENS_6G   1.83982

Definition at line 82 of file bmi088.h.

◆ BMI088_ACCEL_SENS_6G_DEN

#define BMI088_ACCEL_SENS_6G_DEN   10000

Definition at line 84 of file bmi088.h.

◆ BMI088_ACCEL_SENS_6G_NUM

#define BMI088_ACCEL_SENS_6G_NUM   18398

Definition at line 83 of file bmi088.h.

◆ BMI088_CONFIG_ACCEL

#define BMI088_CONFIG_ACCEL   0

Definition at line 109 of file bmi088.h.

◆ BMI088_CONFIG_GYRO

#define BMI088_CONFIG_GYRO   1

Definition at line 110 of file bmi088.h.

◆ BMI088_DEFAULT_ACCEL_BW

#define BMI088_DEFAULT_ACCEL_BW   BMI088_ACCEL_BW_OSR4

Default accel bandwidth.

Definition at line 45 of file bmi088.h.

◆ BMI088_DEFAULT_ACCEL_ODR

#define BMI088_DEFAULT_ACCEL_ODR   BMI088_ACCEL_ODR_1600

Default accel output rate.

Definition at line 43 of file bmi088.h.

◆ BMI088_DEFAULT_ACCEL_RANGE

#define BMI088_DEFAULT_ACCEL_RANGE   BMI088_ACCEL_RANGE_12G

Default accel full scale range +- 6g.

Definition at line 41 of file bmi088.h.

◆ BMI088_DEFAULT_GYRO_ODR

#define BMI088_DEFAULT_GYRO_ODR   BMI088_GYRO_ODR_1000_BW_116

Default gyro output rate.

Definition at line 39 of file bmi088.h.

◆ BMI088_DEFAULT_GYRO_RANGE

#define BMI088_DEFAULT_GYRO_RANGE   BMI088_GYRO_RANGE_1000

Default gyro full scale range +- 1000°/s.

Definition at line 37 of file bmi088.h.

◆ BMI088_GYRO_SENS_1000

#define BMI088_GYRO_SENS_1000   2.17953

Definition at line 61 of file bmi088.h.

◆ BMI088_GYRO_SENS_1000_DEN

#define BMI088_GYRO_SENS_1000_DEN   8383

Definition at line 63 of file bmi088.h.

◆ BMI088_GYRO_SENS_1000_NUM

#define BMI088_GYRO_SENS_1000_NUM   18271

Definition at line 62 of file bmi088.h.

◆ BMI088_GYRO_SENS_125

#define BMI088_GYRO_SENS_125   0.272442

default gyro sensitivy from the datasheet sens = 1/ [LSB/(deg/s)] * pi/180 * 2^INT32_RATE_FRAC ex: BMI with 1000 deg/s has 32.8 LSB/(deg/s) sens = 1/32.8 * pi/180 * 4096 = 2.17953

Definition at line 52 of file bmi088.h.

◆ BMI088_GYRO_SENS_125_DEN

#define BMI088_GYRO_SENS_125_DEN   17735

Definition at line 54 of file bmi088.h.

◆ BMI088_GYRO_SENS_125_NUM

#define BMI088_GYRO_SENS_125_NUM   19327

Definition at line 53 of file bmi088.h.

◆ BMI088_GYRO_SENS_2000

#define BMI088_GYRO_SENS_2000   4.35906

Definition at line 64 of file bmi088.h.

◆ BMI088_GYRO_SENS_2000_DEN

#define BMI088_GYRO_SENS_2000_DEN   8383

Definition at line 66 of file bmi088.h.

◆ BMI088_GYRO_SENS_2000_NUM

#define BMI088_GYRO_SENS_2000_NUM   36542

Definition at line 65 of file bmi088.h.

◆ BMI088_GYRO_SENS_250

#define BMI088_GYRO_SENS_250   0.544883

Definition at line 55 of file bmi088.h.

◆ BMI088_GYRO_SENS_250_DEN

#define BMI088_GYRO_SENS_250_DEN   35470

Definition at line 57 of file bmi088.h.

◆ BMI088_GYRO_SENS_250_NUM

#define BMI088_GYRO_SENS_250_NUM   19327

Definition at line 56 of file bmi088.h.

◆ BMI088_GYRO_SENS_500

#define BMI088_GYRO_SENS_500   1.08977

Definition at line 58 of file bmi088.h.

◆ BMI088_GYRO_SENS_500_DEN

#define BMI088_GYRO_SENS_500_DEN   52913

Definition at line 60 of file bmi088.h.

◆ BMI088_GYRO_SENS_500_NUM

#define BMI088_GYRO_SENS_500_NUM   57663

Definition at line 59 of file bmi088.h.

Typedef Documentation

◆ Bmi088ConfigSet

typedef void(* Bmi088ConfigSet) (void *bmi, uint8_t _reg, uint8_t _val, uint8_t _type)

Configuration function prototype.

Definition at line 112 of file bmi088.h.

Enumeration Type Documentation

◆ Bmi088ConfStatus

Enumerator
BMI088_CONF_UNINIT 
BMI088_CONF_ACCEL_RANGE 
BMI088_CONF_ACCEL_ODR 
BMI088_CONF_ACCEL_PWR_CONF 
BMI088_CONF_ACCEL_PWR_CTRL 
BMI088_CONF_GYRO_RANGE 
BMI088_CONF_GYRO_ODR 
BMI088_CONF_GYRO_PWR 
BMI088_CONF_DONE 

Definition at line 97 of file bmi088.h.

Function Documentation

◆ bmi088_send_config()

◆ bmi088_set_default_config()

Variable Documentation

◆ BMI088_ACCEL_SENS

const float BMI088_ACCEL_SENS[4]
extern

Definition at line 52 of file bmi088.c.

◆ BMI088_ACCEL_SENS_FRAC

const struct Int32Vect3 BMI088_ACCEL_SENS_FRAC[4][2]
extern

Definition at line 52 of file bmi088.c.

Referenced by imu_bmi088_init().

◆ BMI088_GYRO_SENS

const float BMI088_GYRO_SENS[5]
extern

Definition at line 31 of file bmi088.c.

◆ BMI088_GYRO_SENS_FRAC

const struct Int32Rates BMI088_GYRO_SENS_FRAC[5][2]
extern

Definition at line 31 of file bmi088.c.

Referenced by imu_bmi088_init().