ChibiOS/EX
1.2.0
|
LSM6DS0 MEMS interface module header. More...
Go to the source code of this file.
Data Structures | |
struct | LSM6DS0Config |
LSM6DS0 configuration structure. More... | |
struct | LSM6DS0VMT |
LSM6DS0 virtual methods table. More... | |
struct | LSM6DS0Driver |
LSM6DS0 6-axis accelerometer/gyroscope class. More... | |
Macros | |
#define | lsm6ds0AccelerometerGetAxesNumber(devp) accelerometerGetAxesNumber(&((devp)->acc_if)) |
Return the number of axes of the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerReadRaw(devp, axes) accelerometerReadRaw(&((devp)->acc_if), axes) |
Retrieves raw data from the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerReadCooked(devp, axes) accelerometerReadCooked(&((devp)->acc_if), axes) |
Retrieves cooked data from the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerSetBias(devp, bp) accelerometerSetBias(&((devp)->acc_if), bp) |
Set bias values for the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerResetBias(devp) accelerometerResetBias(&((devp)->acc_if)) |
Reset bias values for the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerSetSensitivity(devp, sp) accelerometerSetSensitivity(&((devp)->acc_if), sp) |
Set sensitivity values for the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerResetSensitivity(devp) accelerometerResetSensitivity(&((devp)->acc_if)) |
Reset sensitivity values for the BaseAccelerometer. More... | |
#define | lsm6ds0AccelerometerSetFullScale(devp, fs) (devp)->vmt->acc_set_full_scale(devp, fs) |
Changes the LSM6DS0Driver accelerometer fullscale value. More... | |
#define | lsm6ds0GyroscopeGetAxesNumber(devp) gyroscopeGetAxesNumber(&((devp)->gyro_if)) |
Return the number of axes of the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeReadRaw(devp, axes) gyroscopeReadRaw(&((devp)->gyro_if), axes) |
Retrieves raw data from the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeReadCooked(devp, axes) gyroscopeReadCooked(&((devp)->gyro_if), axes) |
Retrieves cooked data from the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeSampleBias(devp) gyroscopeSampleBias(&((devp)->gyro_if)) |
Samples bias values for the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeSetBias(devp, bp) gyroscopeSetBias(&((devp)->gyro_if), bp) |
Set bias values for the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeResetBias(devp) gyroscopeResetBias(&((devp)->gyro_if)) |
Reset bias values for the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeSetSensitivity(devp, sp) gyroscopeSetSensitivity(&((devp)->gyro_if), sp) |
Set sensitivity values for the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeResetSensitivity(devp) gyroscopeResetSensitivity(&((devp)->gyro_if)) |
Reset sensitivity values for the BaseGyroscope. More... | |
#define | lsm6ds0GyroscopeSetFullScale(devp, fs) (devp)->vmt->acc_set_full_scale(devp, fs) |
Changes the LSM6DS0Driver gyroscope fullscale value. More... | |
Version identification | |
#define | EX_LSM6DS0_VERSION "1.1.2" |
LSM6DS0 driver version string. More... | |
#define | EX_LSM6DS0_MAJOR 1 |
LSM6DS0 driver version major number. More... | |
#define | EX_LSM6DS0_MINOR 1 |
LSM6DS0 driver version minor number. More... | |
#define | EX_LSM6DS0_PATCH 2 |
LSM6DS0 driver version patch number. More... | |
#define | LSM6DS0_ACC_NUMBER_OF_AXES 3U |
LSM6DS0 accelerometer subsystem characteristics. More... | |
#define | LSM6DS0_GYRO_NUMBER_OF_AXES 3U |
L3GD20 gyroscope system characteristics. More... | |
LSM6DS0 communication interfaces related bit masks | |
#define | LSM6DS0_DI_MASK 0xFF |
#define | LSM6DS0_DI(n) (1 << n) |
#define | LSM6DS0_AD_MASK 0x7F |
#define | LSM6DS0_AD(n) (1 << n) |
#define | LSM6DS0_MS (1 << 7) |
LSM6DS0 register addresses | |
#define | LSM6DS0_AD_ACT_THS 0x04 |
#define | LSM6DS0_AD_ACT_DUR 0x05 |
#define | LSM6DS0_AD_INT_GEN_CFG_XL 0x06 |
#define | LSM6DS0_AD_INT_GEN_THS_X_XL 0x07 |
#define | LSM6DS0_AD_INT_GEN_THS_Y_XL 0x08 |
#define | LSM6DS0_AD_INT_GEN_THS_Z_XL 0x09 |
#define | LSM6DS0_AD_INT_GEN_DUR_XL 0x0A |
#define | LSM6DS0_AD_REFERENCE_G 0x0B |
#define | LSM6DS0_AD_INT_CTRL 0x0C |
#define | LSM6DS0_AD_WHO_AM_I 0x0F |
#define | LSM6DS0_AD_CTRL_REG1_G 0x10 |
#define | LSM6DS0_AD_CTRL_REG2_G 0x11 |
#define | LSM6DS0_AD_CTRL_REG3_G 0x12 |
#define | LSM6DS0_AD_ORIENT_CFG_G 0x13 |
#define | LSM6DS0_AD_INT_GEN_SRC_G 0x14 |
#define | LSM6DS0_AD_OUT_TEMP_L 0x15 |
#define | LSM6DS0_AD_OUT_TEMP_H 0x16 |
#define | LSM6DS0_AD_STATUS_REG1 0x17 |
#define | LSM6DS0_AD_OUT_X_L_G 0x18 |
#define | LSM6DS0_AD_OUT_X_H_G 0x19 |
#define | LSM6DS0_AD_OUT_Y_L_G 0x1A |
#define | LSM6DS0_AD_OUT_Y_H_G 0x1B |
#define | LSM6DS0_AD_OUT_Z_L_G 0x1C |
#define | LSM6DS0_AD_OUT_Z_H_G 0x1D |
#define | LSM6DS0_AD_CTRL_REG4 0x1E |
#define | LSM6DS0_AD_CTRL_REG5_XL 0x1F |
#define | LSM6DS0_AD_CTRL_REG6_XL 0x20 |
#define | LSM6DS0_AD_CTRL_REG7_XL 0x21 |
#define | LSM6DS0_AD_CTRL_REG8 0x22 |
#define | LSM6DS0_AD_CTRL_REG9 0x23 |
#define | LSM6DS0_AD_CTRL_REG10 0x24 |
#define | LSM6DS0_AD_INT_GEN_SRC_XL 0x26 |
#define | LSM6DS0_AD_STATUS_REG2 0x27 |
#define | LSM6DS0_AD_OUT_X_L_XL 0x28 |
#define | LSM6DS0_AD_OUT_X_H_XL 0x29 |
#define | LSM6DS0_AD_OUT_Y_L_XL 0x2A |
#define | LSM6DS0_AD_OUT_Y_H_XL 0x2B |
#define | LSM6DS0_AD_OUT_Z_L_XL 0x2C |
#define | LSM6DS0_AD_OUT_Z_H_XL 0x2D |
#define | LSM6DS0_AD_FIFO_CTRL 0x2E |
#define | LSM6DS0_AD_FIFO_SRC 0x2F |
#define | LSM6DS0_AD_INT_GEN_CFG_G 0x30 |
#define | LSM6DS0_AD_INT_GEN_THS_XH_G 0x31 |
#define | LSM6DS0_AD_INT_GEN_THS_XL_G 0x32 |
#define | LSM6DS0_AD_INT_GEN_THS_YH_G 0x33 |
#define | LSM6DS0_AD_INT_GEN_THS_YL_G 0x34 |
#define | LSM6DS0_AD_INT_GEN_THS_ZH_G 0x35 |
#define | LSM6DS0_AD_INT_GEN_THS_ZL_G 0x36 |
#define | LSM6DS0_AD_INT_GEN_DUR_G 0x37 |
LSM6DS0_AD_CTRL_REG1_G register bits definitions | |
#define | LSM6DS0_CTRL_REG1_G 0xFA |
#define | LSM6DS0_CTRL_REG1_G_BW_G0 (1 << 0) |
#define | LSM6DS0_CTRL_REG1_G_BW_G1 (1 << 1) |
#define | LSM6DS0_CTRL_REG1_G_FS_MASK 0x1F |
#define | LSM6DS0_CTRL_REG1_G_FS_G0 (1 << 3) |
#define | LSM6DS0_CTRL_REG1_G_FS_G1 (1 << 4) |
#define | LSM6DS0_CTRL_REG1_G_ODR_G0 (1 << 5) |
#define | LSM6DS0_CTRL_REG1_G_ODR_G1 (1 << 6) |
#define | LSM6DS0_CTRL_REG1_G_ODR_G2 (1 << 7) |
LSM6DS0_AD_CTRL_REG2_G register bits definitions | |
#define | LSM6DS0_CTRL_REG2_G 0x0F |
#define | LSM6DS0_CTRL_REG2_G_OUT_SEL0 (1 << 0) |
#define | LSM6DS0_CTRL_REG2_G_OUT_SEL1 (1 << 1) |
#define | LSM6DS0_CTRL_REG2_G_INT_SEL0 (1 << 2) |
#define | LSM6DS0_CTRL_REG2_G_INT_SEL1 (1 << 3) |
LSM6DS0_AD_CTRL_REG3_G register bits definitions | |
#define | LSM6DS0_CTRL_REG3_G 0x64 |
#define | LSM6DS0_CTRL_REG3_G_HP_CF0_G (1 << 0) |
#define | LSM6DS0_CTRL_REG3_G_HP_CF1_G (1 << 1) |
#define | LSM6DS0_CTRL_REG3_G_HP_CF2_G (1 << 2) |
#define | LSM6DS0_CTRL_REG3_G_HP_CF3_G (1 << 3) |
#define | LSM6DS0_CTRL_REG3_G_HP_EN (1 << 6) |
#define | LSM6DS0_CTRL_REG3_G_LP_MODE (1 << 7) |
LSM6DS0_AD_CTRL_REG4 register bits definitions | |
#define | LSM6DS0_CTRL_REG4 0x3A |
#define | LSM6DS0_CTRL_REG4_4D_XL1 (1 << 0) |
#define | LSM6DS0_CTRL_REG4_LIR_XL1 (1 << 1) |
#define | LSM6DS0_CTRL_REG4_XEN_G (1 << 3) |
#define | LSM6DS0_CTRL_REG4_YEN_G (1 << 4) |
#define | LSM6DS0_CTRL_REG4_ZEN_G (1 << 5) |
LSM6DS0_AD_CTRL_REG5_XL register bits definitions | |
#define | LSM6DS0_CTRL_REG5_XL 0xF8 |
#define | LSM6DS0_CTRL_REG5_XL_XEN_XL (1 << 3) |
#define | LSM6DS0_CTRL_REG5_XL_YEN_XL (1 << 4) |
#define | LSM6DS0_CTRL_REG5_XL_ZEN_XL (1 << 5) |
#define | LSM6DS0_CTRL_REG5_XL_DEC0 (1 << 6) |
#define | LSM6DS0_CTRL_REG5_XL_DEC1 (1 << 7) |
LSM6DS0_AD_CTRL_REG6_XL register bits definitions | |
#define | LSM6DS0_CTRL_REG6_XL 0xFF |
#define | LSM6DS0_CTRL_REG6_XL_BW_XL0 (1 << 0) |
#define | LSM6DS0_CTRL_REG6_XL_BW_XL1 (1 << 1) |
#define | LSM6DS0_CTRL_REG6_XL_BW_SCAL_ODR (1 << 2) |
#define | LSM6DS0_CTRL_REG6_XL_FS_MASK 0x1F |
#define | LSM6DS0_CTRL_REG6_XL_FS0_XL (1 << 3) |
#define | LSM6DS0_CTRL_REG6_XL_FS1_XL (1 << 4) |
#define | LSM6DS0_CTRL_REG6_XL_ODR_XL0 (1 << 5) |
#define | LSM6DS0_CTRL_REG6_XL_ODR_XL1 (1 << 6) |
#define | LSM6DS0_CTRL_REG6_XL_ODR_XL2 (1 << 7) |
LSM6DS0_AD_CTRL_REG7_XL register bits definitions | |
#define | LSM6DS0_CTRL_REG7_XL 0xE5 |
#define | LSM6DS0_CTRL_REG7_XL_HPIS1 (1 << 0) |
#define | LSM6DS0_CTRL_REG7_XL_FDS (1 << 2) |
#define | LSM6DS0_CTRL_REG7_XL_DCF0 (1 << 5) |
#define | LSM6DS0_CTRL_REG7_XL_DCF1 (1 << 6) |
#define | LSM6DS0_CTRL_REG7_XL_HR (1 << 7) |
LSM6DS0_AD_CTRL_REG8 register bits definitions | |
#define | LSM6DS0_CTRL_REG8 0xFF |
#define | LSM6DS0_CTRL_REG8_SW_RESET (1 << 0) |
#define | LSM6DS0_CTRL_REG8_BLE (1 << 1) |
#define | LSM6DS0_CTRL_REG8_IF_ADD_INC (1 << 2) |
#define | LSM6DS0_CTRL_REG8_SIM (1 << 3) |
#define | LSM6DS0_CTRL_REG8_PP_OD (1 << 4) |
#define | LSM6DS0_CTRL_REG8_H_LACTIVE (1 << 5) |
#define | LSM6DS0_CTRL_REG8_BDU (1 << 6) |
#define | LSM6DS0_CTRL_REG8_BOOT (1 << 7) |
LSM6DS0_AD_CTRL_REG9 register bits definitions | |
#define | LSM6DS0_CTRL_REG9 0x5F |
#define | LSM6DS0_CTRL_REG9_STOP_ON_FTH (1 << 0) |
#define | LSM6DS0_CTRL_REG9_FIFO_EN (1 << 1) |
#define | LSM6DS0_CTRL_REG9_I2C_DISABLE (1 << 2) |
#define | LSM6DS0_CTRL_REG9_DRDY_MASK_BIT (1 << 3) |
#define | LSM6DS0_CTRL_REG9_FIFO_TEMP_EN (1 << 4) |
#define | LSM6DS0_CTRL_REG9_SLEEP_G (1 << 6) |
LSM6DS0_AD_CTRL_REG10 register bits definitions | |
#define | LSM6DS0_CTRL_REG10 0x05 |
#define | LSM6DS0_CTRL_REG10_ST_XL (1 << 0) |
#define | LSM6DS0_CTRL_REG10_ST_G (1 << 2) |
Configuration options | |
#define | LSM6DS0_USE_SPI FALSE |
LSM6DS0 SPI interface switch. More... | |
#define | LSM6DS0_SHARED_SPI FALSE |
LSM6DS0 shared SPI switch. More... | |
#define | LSM6DS0_USE_I2C TRUE |
LSM6DS0 I2C interface switch. More... | |
#define | LSM6DS0_SHARED_I2C FALSE |
LSM6DS0 shared I2C switch. More... | |
#define | LSM6DS0_USE_ADVANCED FALSE |
LSM6DS0 advanced configurations switch. More... | |
#define | LSM6DS0_GYRO_BIAS_ACQ_TIMES 50 |
Number of acquisitions for gyroscope bias removal. More... | |
#define | LSM6DS0_GYRO_BIAS_SETTLING_US 5000 |
Settling time for gyroscope bias removal. More... | |
Functions | |
void | lsm6ds0ObjectInit (LSM6DS0Driver *devp) |
Initializes an instance. More... | |
void | lsm6ds0Start (LSM6DS0Driver *devp, const LSM6DS0Config *config) |
Configures and activates LSM6DS0 Complex Driver peripheral. More... | |
void | lsm6ds0Stop (LSM6DS0Driver *devp) |
Deactivates the LSM6DS0 Complex Driver peripheral. More... | |
LSM6DS0 data structures and types. | |
#define | _lsm6ds0_methods_alone |
LSM6DS0 specific methods. More... | |
#define | _lsm6ds0_methods |
LSM6DS0 specific methods with inherited ones. More... | |
#define | _lsm6ds0_data |
LSM6DS0Driver specific data. More... | |
enum | lsm6ds0_sad_t { LSM6DS0_SAD_GND = 0x6A, LSM6DS0_SAD_VCC = 0x6B } |
Accelerometer and Gyroscope Slave Address. More... | |
enum | lsm6ds0_acc_fs_t { LSM6DS0_ACC_FS_2G = 0x00, LSM6DS0_ACC_FS_4G = 0x10, LSM6DS0_ACC_FS_8G = 0x18, LSM6DS0_ACC_FS_16G = 0x08 } |
LSM6DS0 accelerometer subsystem full scale. More... | |
enum | lsm6ds0_acc_odr_t { LSM6DS0_ACC_ODR_PD = 0x00, LSM6DS0_ACC_ODR_10Hz = 0x20, LSM6DS0_ACC_ODR_50Hz = 0x40, LSM6DS0_ACC_ODR_119Hz = 0x60, LSM6DS0_ACC_ODR_238Hz = 0x80, LSM6DS0_ACC_ODR_476Hz = 0xA0, LSM6DS0_ACC_ODR_952Hz = 0xC0 } |
LSM6DS0 accelerometer subsystem output data rate. More... | |
enum | lsm6ds0_acc_dec_t { LSM6DS0_ACC_DEC_DISABLED = 0x00, LSM6DS0_ACC_DEC_X2 = 0x40, LSM6DS0_ACC_DEC_X4 = 0x80, LSM6DS0_ACC_DEC_X8 = 0xC0 } |
LSM6DS0 accelerometer subsystem decimation mode. More... | |
enum | lsm6ds0_gyro_fs_t { LSM6DS0_GYRO_FS_245DPS = 0x00, LSM6DS0_GYRO_FS_500DPS = 0x08, LSM6DS0_GYRO_FS_2000DPS = 0x18 } |
LSM6DS0 gyroscope subsystem full scale. More... | |
enum | lsm6ds0_gyro_odr_t |
LSM6DS0 gyroscope subsystem output data rate. More... | |
enum | lsm6ds0_gyro_lp_t { LSM6DS0_GYRO_LP_DISABLED = 0x00, LSM6DS0_GYRO_LP_ENABLED = 0x80 } |
LSM6DS0 gyroscope subsystem low mode configuration. More... | |
enum | lsm6ds0_gyro_out_sel_t { LSM6DS0_GYRO_OUT_SEL_0 = 0x00, LSM6DS0_GYRO_OUT_SEL_1 = 0x01, LSM6DS0_GYRO_OUT_SEL_2 = 0x02 } |
LSM6DS0 gyroscope subsystem output selection. More... | |
enum | lsm6ds0_gyro_hp_t { LSM6DS0_GYRO_HP_DISABLED = 0x00, LSM6DS0_GYRO_HP_ENABLED = 0x40 } |
LSM6DS0 gyroscope subsystem high pass filter. More... | |
enum | lsm6ds0_gyro_hpcf_t { LSM6DS0_GYRO_HPCF_0 = 0x00 } |
LSM6DS0 gyroscope subsystem high pass filter configuration. More... | |
enum | lsm6ds0_bdu_t { LSM6DS0_BDU_CONTINUOUS = 0x00, LSM6DS0_BDU_BLOCKED = 0x40 } |
LSM6DS0 block data update. More... | |
enum | lsm6ds0_end_t { LSM6DS0_END_LITTLE = 0x00, LSM6DS0_END_BIG = 0x20 } |
LSM6DS0 endianness. More... | |
enum | lsm6ds0_state_t { LSM6DS0_UNINIT = 0, LSM6DS0_STOP = 1, LSM6DS0_READY = 2 } |
Driver state machine possible states. More... | |
typedef struct LSM6DS0Driver | LSM6DS0Driver |
Structure representing a LSM6DS0 driver. More... | |
LSM6DS0 MEMS interface module header.
Definition in file lsm6ds0.h.