ChibiOS
0.0.0
|
LSM6DSL MEMS interface module header. More...
Go to the source code of this file.
Data Structures | |
struct | LSM6DSLConfig |
LSM6DSL configuration structure. More... | |
struct | LSM6DSLVMT |
LSM6DSL virtual methods table. More... | |
struct | LSM6DSLDriver |
LSM6DSL 6-axis accelerometer/gyroscope class. More... | |
Macros | |
#define | lsm6dslAccelerometerGetAxesNumber(devp) accelerometerGetAxesNumber(&((devp)->acc_if)) |
Return the number of axes of the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerReadRaw(devp, axes) accelerometerReadRaw(&((devp)->acc_if), axes) |
Retrieves raw data from the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerReadCooked(devp, axes) accelerometerReadCooked(&((devp)->acc_if), axes) |
Retrieves cooked data from the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerSetBias(devp, bp) accelerometerSetBias(&((devp)->acc_if), bp) |
Set bias values for the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerResetBias(devp) accelerometerResetBias(&((devp)->acc_if)) |
Reset bias values for the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerSetSensitivity(devp, sp) accelerometerSetSensitivity(&((devp)->acc_if), sp) |
Set sensitivity values for the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerResetSensitivity(devp) accelerometerResetSensitivity(&((devp)->acc_if)) |
Reset sensitivity values for the BaseAccelerometer. More... | |
#define | lsm6dslAccelerometerSetFullScale(devp, fs) (devp)->vmt->acc_set_full_scale(devp, fs) |
Changes the LSM6DSLDriver accelerometer fullscale value. More... | |
#define | lsm6dslGyroscopeGetAxesNumber(devp) gyroscopeGetAxesNumber(&((devp)->gyro_if)) |
Return the number of axes of the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeReadRaw(devp, axes) gyroscopeReadRaw(&((devp)->gyro_if), axes) |
Retrieves raw data from the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeReadCooked(devp, axes) gyroscopeReadCooked(&((devp)->gyro_if), axes) |
Retrieves cooked data from the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeSampleBias(devp) gyroscopeSampleBias(&((devp)->gyro_if)) |
Samples bias values for the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeSetBias(devp, bp) gyroscopeSetBias(&((devp)->gyro_if), bp) |
Set bias values for the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeResetBias(devp) gyroscopeResetBias(&((devp)->gyro_if)) |
Reset bias values for the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeSetSensitivity(devp, sp) gyroscopeSetSensitivity(&((devp)->gyro_if), sp) |
Set sensitivity values for the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeResetSensitivity(devp) gyroscopeResetSensitivity(&((devp)->gyro_if)) |
Reset sensitivity values for the BaseGyroscope. More... | |
#define | lsm6dslGyroscopeSetFullScale(devp, fs) (devp)->vmt->acc_set_full_scale(devp, fs) |
Changes the LSM6DSLDriver gyroscope fullscale value. More... | |
Version identification | |
#define | EX_LSM6DSL_VERSION "1.0.0" |
LSM6DSL driver version string. More... | |
#define | EX_LSM6DSL_MAJOR 1 |
LSM6DSL driver version major number. More... | |
#define | EX_LSM6DSL_MINOR 0 |
LSM6DSL driver version minor number. More... | |
#define | EX_LSM6DSL_PATCH 0 |
LSM6DSL driver version patch number. More... | |
#define | LSM6DSL_ACC_NUMBER_OF_AXES 3U |
LSM6DSL accelerometer subsystem characteristics. More... | |
#define | LSM6DSL_GYRO_NUMBER_OF_AXES 3U |
L3GD20 gyroscope system characteristics. More... | |
LSM6DSL communication interfaces related bit masks | |
#define | LSM6DSL_DI_MASK 0xFF |
#define | LSM6DSL_DI(n) (1 << n) |
#define | LSM6DSL_AD_MASK 0x7F |
#define | LSM6DSL_AD(n) (1 << n) |
#define | LSM6DSL_MS (1 << 7) |
LSM6DSL register addresses | |
#define | LSM6DSL_AD_FUNC_CFG_ACCESS 0x01 |
#define | LSM6DSL_AD_SENSOR_SYNC_TIME_FRAME 0x04 |
#define | LSM6DSL_AD_SENSOR_SYNC_RES_RATIO 0x05 |
#define | LSM6DSL_AD_FIFO_CTRL1 0x06 |
#define | LSM6DSL_AD_FIFO_CTRL2 0x07 |
#define | LSM6DSL_AD_FIFO_CTRL3 0x08 |
#define | LSM6DSL_AD_FIFO_CTRL4 0x09 |
#define | LSM6DSL_AD_FIFO_CTRL5 0x0A |
#define | LSM6DSL_AD_DRDY_PULSE_CFG_G 0x0B |
#define | LSM6DSL_AD_INT1_CTRL 0x0D |
#define | LSM6DSL_AD_INT2_CTRL 0x0E |
#define | LSM6DSL_AD_WHO_AM_I 0x0F |
#define | LSM6DSL_AD_CTRL1_XL 0x10 |
#define | LSM6DSL_AD_CTRL2_G 0x11 |
#define | LSM6DSL_AD_CTRL3_C 0x12 |
#define | LSM6DSL_AD_CTRL4_C 0x13 |
#define | LSM6DSL_AD_CTRL5_C 0x14 |
#define | LSM6DSL_AD_CTRL6_C 0x15 |
#define | LSM6DSL_AD_CTRL7_G 0x16 |
#define | LSM6DSL_AD_CTRL8_XL 0x17 |
#define | LSM6DSL_AD_CTRL9_XL 0x18 |
#define | LSM6DSL_AD_CTRL10_C 0x19 |
#define | LSM6DSL_AD_MASTER_CONFIG 0x1A |
#define | LSM6DSL_AD_WAKE_UP_SRC 0x1B |
#define | LSM6DSL_AD_TAP_SRC 0x1C |
#define | LSM6DSL_AD_D6D_SRC 0x1D |
#define | LSM6DSL_AD_STATUS_REG 0x1E |
#define | LSM6DSL_AD_OUT_TEMP_L 0x20 |
#define | LSM6DSL_AD_OUT_TEMP_H 0x21 |
#define | LSM6DSL_AD_OUTX_L_G 0x22 |
#define | LSM6DSL_AD_OUTX_H_G 0x23 |
#define | LSM6DSL_AD_OUTY_L_G 0x24 |
#define | LSM6DSL_AD_OUTY_H_G 0x25 |
#define | LSM6DSL_AD_OUTZ_L_G 0x26 |
#define | LSM6DSL_AD_OUTZ_H_G 0x27 |
#define | LSM6DSL_AD_OUTX_L_XL 0x28 |
#define | LSM6DSL_AD_OUTX_H_XL 0x29 |
#define | LSM6DSL_AD_OUTY_L_XL 0x2A |
#define | LSM6DSL_AD_OUTY_H_XL 0x2B |
#define | LSM6DSL_AD_OUTZ_L_XL 0x2C |
#define | LSM6DSL_AD_OUTZ_H_XL 0x2D |
#define | LSM6DSL_AD_SENSORHUB1_REG 0x2E |
#define | LSM6DSL_AD_SENSORHUB2_REG 0x2F |
#define | LSM6DSL_AD_SENSORHUB3_REG 0x30 |
#define | LSM6DSL_AD_SENSORHUB4_REG 0x31 |
#define | LSM6DSL_AD_SENSORHUB5_REG 0x32 |
#define | LSM6DSL_AD_SENSORHUB6_REG 0x33 |
#define | LSM6DSL_AD_SENSORHUB7_REG 0x34 |
#define | LSM6DSL_AD_SENSORHUB8_REG 0x35 |
#define | LSM6DSL_AD_SENSORHUB9_REG 0x36 |
#define | LSM6DSL_AD_SENSORHUB10_REG 0x37 |
#define | LSM6DSL_AD_SENSORHUB11_REG 0x38 |
#define | LSM6DSL_AD_SENSORHUB12_REG 0x39 |
#define | LSM6DSL_AD_FIFO_STATUS1 0x3A |
#define | LSM6DSL_AD_FIFO_STATUS2 0x3B |
#define | LSM6DSL_AD_FIFO_STATUS3 0x3C |
#define | LSM6DSL_AD_FIFO_STATUS4 0x3D |
#define | LSM6DSL_AD_FIFO_DATA_OUT_L 0x3E |
#define | LSM6DSL_AD_FIFO_DATA_OUT_H 0x3F |
#define | LSM6DSL_AD_TIMESTAMP0_REG 0x40 |
#define | LSM6DSL_AD_TIMESTAMP1_REG 0x41 |
#define | LSM6DSL_AD_TIMESTAMP2_REG 0x42 |
#define | LSM6DSL_AD_STEP_TIMESTAMP_L 0x49 |
#define | LSM6DSL_AD_STEP_TIMESTAMP_H 0x4A |
#define | LSM6DSL_AD_STEP_COUNTER_L 0x4B |
#define | LSM6DSL_AD_STEP_COUNTER_H 0x4C |
#define | LSM6DSL_AD_SENSORHUB13_REG 0x4D |
#define | LSM6DSL_AD_SENSORHUB14_REG 0x4E |
#define | LSM6DSL_AD_SENSORHUB15_REG 0x4F |
#define | LSM6DSL_AD_SENSORHUB16_REG 0x50 |
#define | LSM6DSL_AD_SENSORHUB17_REG 0x51 |
#define | LSM6DSL_AD_SENSORHUB18_REG 0x52 |
#define | LSM6DSL_AD_FUNC_SRC1 0x53 |
#define | LSM6DSL_AD_FUNC_SRC2 0x54 |
#define | LSM6DSL_AD_WRIST_TILT_IA 0x55 |
#define | LSM6DSL_AD_TAP_CFG 0x58 |
#define | LSM6DSL_AD_TAP_THS_6D 0x59 |
#define | LSM6DSL_AD_INT_DUR2 0x5A |
#define | LSM6DSL_AD_WAKE_UP_THS 0x5B |
#define | LSM6DSL_AD_WAKE_UP_DUR 0x5C |
#define | LSM6DSL_AD_FREE_FALL 0x5D |
#define | LSM6DSL_AD_MD1_CFG 0x5E |
#define | LSM6DSL_AD_MD2_CFG 0x5F |
#define | LSM6DSL_AD_MASTER_CMD_CODE 0x60 |
#define | LSM6DSL_AD_SENS_SYNC_SPI_ERROR_CODE 0x61 |
#define | LSM6DSL_AD_OUT_MAG_RAW_X_L 0x66 |
#define | LSM6DSL_AD_OUT_MAG_RAW_X_H 0x67 |
#define | LSM6DSL_AD_OUT_MAG_RAW_Y_L 0x68 |
#define | LSM6DSL_AD_OUT_MAG_RAW_Y_H 0x69 |
#define | LSM6DSL_AD_OUT_MAG_RAW_Z_L 0x6A |
#define | LSM6DSL_AD_OUT_MAG_RAW_Z_H 0x6B |
#define | LSM6DSL_AD_X_OFS_USR 0x73 |
#define | LSM6DSL_AD_Y_OFS_USR 0x74 |
#define | LSM6DSL_AD_Z_OFS_USR 0x75 |
LSM6DSL_AD_CTRL1_XL register bits definitions | |
#define | LSMDSL_CTRL1_XL_BW0_XL (1 << 0) |
#define | LSMDSL_CTRL1_XL_LPF1_BW_SEL (1 << 1) |
#define | LSMDSL_CTRL1_XL_FS_MASK 0x0C |
#define | LSMDSL_CTRL1_XL_FS_XL0 (1 << 2) |
#define | LSMDSL_CTRL1_XL_FS_XL1 (1 << 3) |
#define | LSMDSL_CTRL1_XL_ODR_XL0 (1 << 4) |
#define | LSMDSL_CTRL1_XL_ODR_XL1 (1 << 5) |
#define | LSMDSL_CTRL1_XL_ODR_XL2 (1 << 6) |
#define | LSMDSL_CTRL1_XL_ODR_XL3 (1 << 7) |
LSM6DSL_AD_CTRL2_G register bits definitions | |
#define | LSMDSL_CTRL2_G_FS_MASK 0x0E |
#define | LSMDSL_CTRL2_G_FS_125 (1 << 1) |
#define | LSMDSL_CTRL2_G_FS_G0 (1 << 2) |
#define | LSMDSL_CTRL2_G_FS_G1 (1 << 3) |
#define | LSMDSL_CTRL2_G_ODR_G0 (1 << 4) |
#define | LSMDSL_CTRL2_G_ODR_G1 (1 << 5) |
#define | LSMDSL_CTRL2_G_ODR_G2 (1 << 6) |
#define | LSMDSL_CTRL2_G_ODR_G3 (1 << 7) |
LSM6DSL_AD_CTRL3_C register bits definitions | |
#define | LSMDSL_CTRL3_C_SW_RESET (1 << 0) |
#define | LSMDSL_CTRL3_C_BLE (1 << 1) |
#define | LSMDSL_CTRL3_C_IF_INC (1 << 2) |
#define | LSMDSL_CTRL3_C_SIM (1 << 3) |
#define | LSMDSL_CTRL3_C_PP_OD (1 << 4) |
#define | LSMDSL_CTRL3_C_H_LACTIVE (1 << 5) |
#define | LSMDSL_CTRL3_C_BDU (1 << 6) |
#define | LSMDSL_CTRL3_C_BOOT (1 << 7) |
LSM6DSL_AD_CTRL4_C register bits definitions | |
#define | LSMDSL_CTRL4_C_NOT_USED_01 (1 << 0) |
#define | LSMDSL_CTRL4_C_LPF1_SEL_G (1 << 1) |
#define | LSMDSL_CTRL4_C_I2C_DISABLE (1 << 2) |
#define | LSMDSL_CTRL4_C_DRDY_MASK (1 << 3) |
#define | LSMDSL_CTRL4_C_DEN_DRDY_IN (1 << 4) |
#define | LSMDSL_CTRL4_C_INT2_ON_INT (1 << 5) |
#define | LSMDSL_CTRL4_C_SLEEP (1 << 6) |
#define | LSMDSL_CTRL4_C_DEN_XL_EN (1 << 7) |
LSM6DSL_AD_CTRL5_C register bits definitions | |
#define | LSMDSL_CTRL5_C_ST0_XL (1 << 0) |
#define | LSMDSL_CTRL5_C_ST1_XL (1 << 1) |
#define | LSMDSL_CTRL5_C_ST0_G (1 << 2) |
#define | LSMDSL_CTRL5_C_ST1_G (1 << 3) |
#define | LSMDSL_CTRL5_C_DEN_LH (1 << 4) |
#define | LSMDSL_CTRL5_C_ROUNDING0 (1 << 5) |
#define | LSMDSL_CTRL5_C_ROUNDING1 (1 << 6) |
#define | LSMDSL_CTRL5_C_ROUNDING2 (1 << 7) |
LSM6DSL_AD_CTRL6_C register bits definitions | |
#define | LSMDSL_CTRL6_C_FTYPE_0 (1 << 0) |
#define | LSMDSL_CTRL6_C_FTYPE_1 (1 << 1) |
#define | LSMDSL_CTRL6_C_USR_OFF_W (1 << 3) |
#define | LSMDSL_CTRL6_C_XL_HM_MODE (1 << 4) |
#define | LSMDSL_CTRL6_C_LVL2_EN (1 << 5) |
#define | LSMDSL_CTRL6_C_LVL_EN (1 << 6) |
#define | LSMDSL_CTRL6_C_TRIG_EN (1 << 7) |
LSM6DSL_AD_CTRL7_G register bits definitions | |
#define | LSMDSL_CTRL7_G_ROUNDING_ST (1 << 2) |
#define | LSMDSL_CTRL7_G_HPM0_G (1 << 4) |
#define | LSMDSL_CTRL7_G_HPM1_G (1 << 5) |
#define | LSMDSL_CTRL7_G_HP_EN_G (1 << 6) |
#define | LSMDSL_CTRL7_G_G_HM_MODE (1 << 7) |
LSM6DSL_AD_CTRL8_XL register bits definitions | |
#define | LSMDSL_CTRL8_XL_LOW_PASS_ON (1 << 0) |
#define | LSMDSL_CTRL8_XL_HP_SLOPE_XL (1 << 2) |
#define | LSMDSL_CTRL8_XL_INPUT_COMPO (1 << 3) |
#define | LSMDSL_CTRL8_XL_HP_REF_MODE (1 << 4) |
#define | LSMDSL_CTRL8_XL_HPCF_XL0 (1 << 5) |
#define | LSMDSL_CTRL8_XL_HPCF_XL1 (1 << 6) |
#define | LSMDSL_CTRL8_XL_LPF2_XL_EN (1 << 7) |
LSM6DSL_AD_CTRL9_XL register bits definitions | |
#define | LSMDSL_CTRL9_XL_SOFT_EN (1 << 2) |
#define | LSMDSL_CTRL9_XL_DEN_XL_G (1 << 4) |
#define | LSMDSL_CTRL9_XL_DEN_Z (1 << 5) |
#define | LSMDSL_CTRL9_XL_DEN_Y (1 << 6) |
#define | LSMDSL_CTRL9_XL_DEN_X (1 << 7) |
LSM6DSL_AD_CTRL10_C register bits definitions | |
#define | LSMDSL_CTRL10_C_SIGN_MOTION (1 << 0) |
#define | LSMDSL_CTRL10_C_PEDO_RST_ST (1 << 1) |
#define | LSMDSL_CTRL10_C_FUNC_EN (1 << 2) |
#define | LSMDSL_CTRL10_C_TILT_EN (1 << 3) |
#define | LSMDSL_CTRL10_C_PEDO_EN (1 << 4) |
#define | LSMDSL_CTRL10_C_TIMER_EN (1 << 5) |
#define | LSMDSL_CTRL10_C_WRIST_TILT (1 << 7) |
Configuration options | |
#define | LSM6DSL_USE_SPI FALSE |
LSM6DSL SPI interface switch. More... | |
#define | LSM6DSL_SHARED_SPI FALSE |
LSM6DSL shared SPI switch. More... | |
#define | LSM6DSL_USE_I2C TRUE |
LSM6DSL I2C interface switch. More... | |
#define | LSM6DSL_SHARED_I2C FALSE |
LSM6DSL shared I2C switch. More... | |
#define | LSM6DSL_USE_ADVANCED FALSE |
LSM6DSL advanced configurations switch. More... | |
#define | LSM6DSL_ACC_USE_ADVANCED FALSE |
LSM6DSL accelerometer subsystem advanced configurations switch. More... | |
#define | LSM6DSL_GYRO_USE_ADVANCED FALSE |
LSM6DSL gyroscope subsystem advanced configurations switch. More... | |
#define | LSM6DSL_GYRO_BIAS_ACQ_TIMES 50 |
Number of acquisitions for gyroscope bias removal. More... | |
#define | LSM6DSL_GYRO_BIAS_SETTLING_US 5000 |
Settling time for gyroscope bias removal. More... | |
Functions | |
void | lsm6dslObjectInit (LSM6DSLDriver *devp) |
Initializes an instance. More... | |
void | lsm6dslStart (LSM6DSLDriver *devp, const LSM6DSLConfig *config) |
Configures and activates LSM6DSL Complex Driver peripheral. More... | |
void | lsm6dslStop (LSM6DSLDriver *devp) |
Deactivates the LSM6DSL Complex Driver peripheral. More... | |
LSM6DSL data structures and types. | |
| |
#define | _lsm6dsl_methods_alone |
LSM6DSL specific methods. More... | |
#define | _lsm6dsl_methods |
LSM6DSL specific methods with inherited ones. More... | |
#define | _lsm6dsl_data |
LSM6DSLDriver specific data. More... | |
typedef struct LSM6DSLDriver | LSM6DSLDriver |
Structure representing a LSM6DSL driver. More... | |
LSM6DSL MEMS interface module header.
Definition in file lsm6dsl.h.