LSM6DSL 3D accelerometer/gyroscope¶
Device driver for the LSM6DSL 3D accelerometer/gyroscope.
This driver provides [S]ensor [A]ctuator [U]ber [L]ayer capabilities.
-
enum
@127
¶ - LSM6DSL_DATA_RATE_POWER_DOWN
= 0x0
- LSM6DSL_DATA_RATE_1_6HZ
= 0xB
- LSM6DSL_DATA_RATE_12_5HZ
= 0x1
- LSM6DSL_DATA_RATE_26HZ
= 0x2
- LSM6DSL_DATA_RATE_52HZ
= 0x3
- LSM6DSL_DATA_RATE_104HZ
= 0x4
- LSM6DSL_DATA_RATE_208HZ
= 0x5
- LSM6DSL_DATA_RATE_416HZ
= 0x6
- LSM6DSL_DATA_RATE_833HZ
= 0x7
- LSM6DSL_DATA_RATE_1_66KHZ
= 0x8
- LSM6DSL_DATA_RATE_3_33KHZ
= 0x9
- LSM6DSL_DATA_RATE_6_66KHZ
= 0xa
- LSM6DSL_DATA_RATE_POWER_DOWN
-
enum
@128
¶ - LSM6DSL_DECIMATION_NOT_IN_FIFO
= 0
- LSM6DSL_DECIMATION_NO
- LSM6DSL_DECIMATION_2
- LSM6DSL_DECIMATION_3
- LSM6DSL_DECIMATION_4
- LSM6DSL_DECIMATION_8
- LSM6DSL_DECIMATION_16
- LSM6DSL_DECIMATION_32
- LSM6DSL_DECIMATION_NOT_IN_FIFO
-
enum
@129
¶ - LSM6DSL_ACC_FS_2G
= 0
- LSM6DSL_ACC_FS_16G
- LSM6DSL_ACC_FS_4G
- LSM6DSL_ACC_FS_8G
- LSM6DSL_ACC_FS_MAX
- LSM6DSL_ACC_FS_2G
-
enum
@130
¶ - LSM6DSL_GYRO_FS_245DPS
= 0
- LSM6DSL_GYRO_FS_500DPS
- LSM6DSL_GYRO_FS_1000DPS
- LSM6DSL_GYRO_FS_2000DPS
- LSM6DSL_GYRO_FS_MAX
- LSM6DSL_GYRO_FS_245DPS
-
enum
@131
¶ - LSM6DSL_OK
= 0
- all good
- LSM6DSL_ERROR_BUS
- I2C bus error.
- LSM6DSL_ERROR_CNF
- Config error.
- LSM6DSL_ERROR_DEV
- device error
- LSM6DSL_OK
-
int
lsm6dsl_init
(lsm6dsl_t * dev, const lsm6dsl_params_t * params)¶ Initialize a LSM6DSL device.
Parameters
dev: device to initialize params: driver parameters Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_read_acc
(const lsm6dsl_t * dev, lsm6dsl_3d_data_t * data)¶ Read accelerometer data.
Parameters
dev: device to read data: accelerometer values Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_read_gyro
(const lsm6dsl_t * dev, lsm6dsl_3d_data_t * data)¶ Read gyroscope data.
Parameters
dev: device to read data: gyroscope values Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_read_temp
(const lsm6dsl_t * dev, int16_t * data)¶ Read temperature data.
Note
To avoid floating point data types but still provide high resolution for temperature readings, resulting values are scale by factor 100.
Parameters
dev: device to read data: temperature value, in °C x 100 Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_acc_power_down
(const lsm6dsl_t * dev)¶ Power down accelerometer.
Parameters
dev: device to power down Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_gyro_power_down
(const lsm6dsl_t * dev)¶ Power down gyroscope.
Parameters
dev: device to power down Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_acc_power_up
(const lsm6dsl_t * dev)¶ Power up accelerometer.
Parameters
dev: device to power up Return values
- LSM6DSL_OK on success
- < 0 on error
-
int
lsm6dsl_gyro_power_up
(const lsm6dsl_t * dev)¶ Power up gyroscope.
Parameters
dev: device to power up Return values
- LSM6DSL_OK on success
- < 0 on error
-
struct
lsm6dsl_params_t
¶ LSM6DSL driver parameters.
-
i2c.h::i2c_t
i2c
¶ i2c bus
-
uint8_t
addr
¶ i2c address
-
uint8_t
acc_odr
¶ accelerometer output data rate
-
uint8_t
gyro_odr
¶ gyroscope output data rate
-
uint8_t
acc_fs
¶ accelerometer full scale
-
uint8_t
gyro_fs
¶ gyroscope full scale
-
uint8_t
acc_decimation
¶ accelerometer decimation
-
uint8_t
gyro_decimation
¶ gyroscope decimation
-
-
struct
lsm6dsl_t
¶ LSM6DSL device descriptor.
-
lsm6dsl_params_t
params
¶ driver parameters
-
lsm6dsl_params_t