30#ifndef __LSM6DS3IMU_H__
31#define __LSM6DS3IMU_H__
62 status_t beginCore(
void);
68 status_t readRegisterRegion(uint8_t*, uint8_t, uint8_t);
71 status_t readRegister(uint8_t*, uint8_t);
75 status_t readRegisterInt16(int16_t*, uint8_t offset);
78 status_t writeRegister(uint8_t, uint8_t);
81 status_t embeddedPage(
void);
84 status_t basePage(
void);
98 uint16_t gyroSampleRate;
99 uint16_t gyroBandWidth;
101 uint8_t gyroFifoEnabled;
102 uint8_t gyroFifoDecimation;
105 uint8_t accelEnabled;
108 uint16_t accelSampleRate;
109 uint16_t accelBandWidth;
111 uint8_t accelFifoEnabled;
112 uint8_t accelFifoDecimation;
121 uint16_t fifoThreshold;
122 int16_t fifoSampleRate;
123 uint8_t fifoModeWord;
125 uint16_t tempSensitivity;
141 uint16_t allOnesCounter;
142 uint16_t nonSuccessCounter;
146 LSM6DS3(uint8_t busType = I2C_MODE, uint8_t inputArg = 0x6A);
150 status_t begin(
void);
153 int16_t readRawAccelX(
void);
154 int16_t readRawAccelY(
void);
155 int16_t readRawAccelZ(
void);
156 int16_t readRawGyroX(
void);
157 int16_t readRawGyroY(
void);
158 int16_t readRawGyroZ(
void);
161 float readFloatAccelX(
void);
162 float readFloatAccelY(
void);
163 float readFloatAccelZ(
void);
164 float readFloatGyroX(
void);
165 float readFloatGyroY(
void);
166 float readFloatGyroZ(
void);
169 int16_t readRawTemp(
void);
170 float readTempC(
void);
171 float readTempF(
void);
174 void fifoBegin(
void);
175 void fifoClear(
void);
176 int16_t fifoRead(
void);
177 uint16_t fifoGetStatus(
void);
188 bool enable_interrupt1(
const InterruptType interr);
190 float calcGyro(int16_t);
191 float calcAccel(int16_t);
194 bool enable_free_fall_detection();
195 bool enable_big_motion_detection();
201#define LSM6DS3_ACC_GYRO_WHO_AM_I 0X69
202#define LSM6DS3_C_ACC_GYRO_WHO_AM_I 0x6A
205#define LSM6DS3_ACC_GYRO_TEST_PAGE 0X00
206#define LSM6DS3_ACC_GYRO_RAM_ACCESS 0X01
207#define LSM6DS3_ACC_GYRO_SENSOR_SYNC_TIME 0X04
208#define LSM6DS3_ACC_GYRO_SENSOR_SYNC_EN 0X05
209#define LSM6DS3_ACC_GYRO_FIFO_CTRL1 0X06
210#define LSM6DS3_ACC_GYRO_FIFO_CTRL2 0X07
211#define LSM6DS3_ACC_GYRO_FIFO_CTRL3 0X08
212#define LSM6DS3_ACC_GYRO_FIFO_CTRL4 0X09
213#define LSM6DS3_ACC_GYRO_FIFO_CTRL5 0X0A
214#define LSM6DS3_ACC_GYRO_ORIENT_CFG_G 0X0B
215#define LSM6DS3_ACC_GYRO_REFERENCE_G 0X0C
218#define LSM6DS3_ACC_GYRO_INT1_CTRL 0X0D
221#define LSM6DS3_ACC_GYRO_INT2_CTRL 0X0E
222#define LSM6DS3_ACC_GYRO_WHO_AM_I_REG 0X0F
223#define LSM6DS3_ACC_GYRO_CTRL1_XL 0X10
224#define LSM6DS3_ACC_GYRO_CTRL2_G 0X11
225#define LSM6DS3_ACC_GYRO_CTRL3_C 0X12
226#define LSM6DS3_ACC_GYRO_CTRL4_C 0X13
227#define LSM6DS3_ACC_GYRO_CTRL5_C 0X14
228#define LSM6DS3_ACC_GYRO_CTRL6_C 0X15
229#define LSM6DS3_ACC_GYRO_CTRL7_G 0X16
230#define LSM6DS3_ACC_GYRO_CTRL8_XL 0X17
231#define LSM6DS3_ACC_GYRO_CTRL9_XL 0X18
232#define LSM6DS3_ACC_GYRO_CTRL10_C 0X19
233#define LSM6DS3_ACC_GYRO_MASTER_CONFIG 0X1A
234#define LSM6DS3_ACC_GYRO_WAKE_UP_SRC 0X1B
235#define LSM6DS3_ACC_GYRO_TAP_SRC 0X1C
236#define LSM6DS3_ACC_GYRO_D6D_SRC 0X1D
237#define LSM6DS3_ACC_GYRO_STATUS_REG 0X1E
238#define LSM6DS3_ACC_GYRO_OUT_TEMP_L 0X20
239#define LSM6DS3_ACC_GYRO_OUT_TEMP_H 0X21
240#define LSM6DS3_ACC_GYRO_OUTX_L_G 0X22
241#define LSM6DS3_ACC_GYRO_OUTX_H_G 0X23
242#define LSM6DS3_ACC_GYRO_OUTY_L_G 0X24
243#define LSM6DS3_ACC_GYRO_OUTY_H_G 0X25
244#define LSM6DS3_ACC_GYRO_OUTZ_L_G 0X26
245#define LSM6DS3_ACC_GYRO_OUTZ_H_G 0X27
246#define LSM6DS3_ACC_GYRO_OUTX_L_XL 0X28
247#define LSM6DS3_ACC_GYRO_OUTX_H_XL 0X29
248#define LSM6DS3_ACC_GYRO_OUTY_L_XL 0X2A
249#define LSM6DS3_ACC_GYRO_OUTY_H_XL 0X2B
250#define LSM6DS3_ACC_GYRO_OUTZ_L_XL 0X2C
251#define LSM6DS3_ACC_GYRO_OUTZ_H_XL 0X2D
252#define LSM6DS3_ACC_GYRO_SENSORHUB1_REG 0X2E
253#define LSM6DS3_ACC_GYRO_SENSORHUB2_REG 0X2F
254#define LSM6DS3_ACC_GYRO_SENSORHUB3_REG 0X30
255#define LSM6DS3_ACC_GYRO_SENSORHUB4_REG 0X31
256#define LSM6DS3_ACC_GYRO_SENSORHUB5_REG 0X32
257#define LSM6DS3_ACC_GYRO_SENSORHUB6_REG 0X33
258#define LSM6DS3_ACC_GYRO_SENSORHUB7_REG 0X34
259#define LSM6DS3_ACC_GYRO_SENSORHUB8_REG 0X35
260#define LSM6DS3_ACC_GYRO_SENSORHUB9_REG 0X36
261#define LSM6DS3_ACC_GYRO_SENSORHUB10_REG 0X37
262#define LSM6DS3_ACC_GYRO_SENSORHUB11_REG 0X38
263#define LSM6DS3_ACC_GYRO_SENSORHUB12_REG 0X39
264#define LSM6DS3_ACC_GYRO_FIFO_STATUS1 0X3A
265#define LSM6DS3_ACC_GYRO_FIFO_STATUS2 0X3B
266#define LSM6DS3_ACC_GYRO_FIFO_STATUS3 0X3C
267#define LSM6DS3_ACC_GYRO_FIFO_STATUS4 0X3D
268#define LSM6DS3_ACC_GYRO_FIFO_DATA_OUT_L 0X3E
269#define LSM6DS3_ACC_GYRO_FIFO_DATA_OUT_H 0X3F
270#define LSM6DS3_ACC_GYRO_TIMESTAMP0_REG 0X40
271#define LSM6DS3_ACC_GYRO_TIMESTAMP1_REG 0X41
272#define LSM6DS3_ACC_GYRO_TIMESTAMP2_REG 0X42
273#define LSM6DS3_ACC_GYRO_STEP_COUNTER_L 0X4B
274#define LSM6DS3_ACC_GYRO_STEP_COUNTER_H 0X4C
276#define LSM6DS3_ACC_GYRO_FUNC_SRC 0X53
278#define LSM6DS3_ACC_GYRO_TAP_CFG 0X58
280#define LSM6DS3_ACC_GYRO_TAP_THS_6D 0X59
282#define LSM6DS3_ACC_GYRO_INT_DUR2 0X5A
284#define LSM6DS3_ACC_GYRO_WAKE_UP_THS 0X5B
286#define LSM6DS3_ACC_GYRO_WAKE_UP_DUR 0X5C
288#define LSM6DS3_ACC_GYRO_FREE_FALL 0X5D
290#define LSM6DS3_ACC_GYRO_MD1_CFG 0X5E
292#define LSM6DS3_ACC_GYRO_MD2_CFG 0X5F
295#define LSM6DS3_ACC_GYRO_ADDR0_TO_RW_RAM 0x62
296#define LSM6DS3_ACC_GYRO_ADDR1_TO_RW_RAM 0x63
297#define LSM6DS3_ACC_GYRO_DATA_TO_WR_RAM 0x64
298#define LSM6DS3_ACC_GYRO_DATA_RD_FROM_RAM 0x65
300#define LSM6DS3_ACC_GYRO_RAM_SIZE 4096
303#define LSM6DS3_ACC_GYRO_SLV0_ADD 0x02
304#define LSM6DS3_ACC_GYRO_SLV0_SUBADD 0x03
305#define LSM6DS3_ACC_GYRO_SLAVE0_CONFIG 0x04
306#define LSM6DS3_ACC_GYRO_SLV1_ADD 0x05
307#define LSM6DS3_ACC_GYRO_SLV1_SUBADD 0x06
308#define LSM6DS3_ACC_GYRO_SLAVE1_CONFIG 0x07
309#define LSM6DS3_ACC_GYRO_SLV2_ADD 0x08
310#define LSM6DS3_ACC_GYRO_SLV2_SUBADD 0x09
311#define LSM6DS3_ACC_GYRO_SLAVE2_CONFIG 0x0A
312#define LSM6DS3_ACC_GYRO_SLV3_ADD 0x0B
313#define LSM6DS3_ACC_GYRO_SLV3_SUBADD 0x0C
314#define LSM6DS3_ACC_GYRO_SLAVE3_CONFIG 0x0D
315#define LSM6DS3_ACC_GYRO_DATAWRITE_SRC_MODE_SUB_SLV0 0x0E
316#define LSM6DS3_ACC_GYRO_CONFIG_PEDO_THS_MIN 0x0F
317#define LSM6DS3_ACC_GYRO_CONFIG_TILT_IIR 0x10
318#define LSM6DS3_ACC_GYRO_CONFIG_TILT_ACOS 0x11
319#define LSM6DS3_ACC_GYRO_CONFIG_TILT_WTIME 0x12
320#define LSM6DS3_ACC_GYRO_SM_STEP_THS 0x13
321#define LSM6DS3_ACC_GYRO_MAG_SI_XX 0x24
322#define LSM6DS3_ACC_GYRO_MAG_SI_XY 0x25
323#define LSM6DS3_ACC_GYRO_MAG_SI_XZ 0x26
324#define LSM6DS3_ACC_GYRO_MAG_SI_YX 0x27
325#define LSM6DS3_ACC_GYRO_MAG_SI_YY 0x28
326#define LSM6DS3_ACC_GYRO_MAG_SI_YZ 0x29
327#define LSM6DS3_ACC_GYRO_MAG_SI_ZX 0x2A
328#define LSM6DS3_ACC_GYRO_MAG_SI_ZY 0x2B
329#define LSM6DS3_ACC_GYRO_MAG_SI_ZZ 0x2C
330#define LSM6DS3_ACC_GYRO_MAG_OFFX_L 0x2D
331#define LSM6DS3_ACC_GYRO_MAG_OFFX_H 0x2E
332#define LSM6DS3_ACC_GYRO_MAG_OFFY_L 0x2F
333#define LSM6DS3_ACC_GYRO_MAG_OFFY_H 0x30
334#define LSM6DS3_ACC_GYRO_MAG_OFFZ_L 0x31
335#define LSM6DS3_ACC_GYRO_MAG_OFFZ_H 0x32
343#define FLASH_PAGE 0x40
353 LSM6DS3_ACC_GYRO_PROG_RAM1_DISABLED = 0x00,
354 LSM6DS3_ACC_GYRO_PROG_RAM1_ENABLED = 0x01,
355} LSM6DS3_ACC_GYRO_PROG_RAM1_t;
365 LSM6DS3_ACC_GYRO_CUSTOMROM1_DISABLED = 0x00,
366 LSM6DS3_ACC_GYRO_CUSTOMROM1_ENABLED = 0x04,
367} LSM6DS3_ACC_GYRO_CUSTOMROM1_t;
377 LSM6DS3_ACC_GYRO_RAM_PAGE_DISABLED = 0x00,
378 LSM6DS3_ACC_GYRO_RAM_PAGE_ENABLED = 0x80,
379} LSM6DS3_ACC_GYRO_RAM_PAGE_t;
387#define LSM6DS3_ACC_GYRO_TPH_MASK 0xFF
388#define LSM6DS3_ACC_GYRO_TPH_POSITION 0
398 LSM6DS3_ACC_GYRO_SYNC_EN_DISABLED = 0x00,
399 LSM6DS3_ACC_GYRO_SYNC_EN_ENABLED = 0x01,
400} LSM6DS3_ACC_GYRO_SYNC_EN_t;
410 LSM6DS3_ACC_GYRO_HP_RST_RST_OFF = 0x00,
411 LSM6DS3_ACC_GYRO_HP_RST_RST_ON = 0x02,
412} LSM6DS3_ACC_GYRO_HP_RST_t;
420#define LSM6DS3_ACC_GYRO_WTM_FIFO_CTRL1_MASK 0xFF
421#define LSM6DS3_ACC_GYRO_WTM_FIFO_CTRL1_POSITION 0
422#define LSM6DS3_ACC_GYRO_WTM_FIFO_CTRL2_MASK 0x0F
423#define LSM6DS3_ACC_GYRO_WTM_FIFO_CTRL2_POSITION 0
433 LSM6DS3_ACC_GYRO_TIM_PEDO_FIFO_DRDY_DISABLED = 0x00,
434 LSM6DS3_ACC_GYRO_TIM_PEDO_FIFO_DRDY_ENABLED = 0x40,
435} LSM6DS3_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t;
445 LSM6DS3_ACC_GYRO_TIM_PEDO_FIFO_EN_DISABLED = 0x00,
446 LSM6DS3_ACC_GYRO_TIM_PEDO_FIFO_EN_ENABLED = 0x80,
447} LSM6DS3_ACC_GYRO_TIM_PEDO_FIFO_EN_t;
457 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DATA_NOT_IN_FIFO = 0x00,
458 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_NO_DECIMATION = 0x01,
459 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_2 = 0x02,
460 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_3 = 0x03,
461 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_4 = 0x04,
462 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_8 = 0x05,
463 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_16 = 0x06,
464 LSM6DS3_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_32 = 0x07,
465} LSM6DS3_ACC_GYRO_DEC_FIFO_XL_t;
475 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DATA_NOT_IN_FIFO = 0x00,
476 LSM6DS3_ACC_GYRO_DEC_FIFO_G_NO_DECIMATION = 0x08,
477 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_2 = 0x10,
478 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_3 = 0x18,
479 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_4 = 0x20,
480 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_8 = 0x28,
481 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_16 = 0x30,
482 LSM6DS3_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_32 = 0x38,
483} LSM6DS3_ACC_GYRO_DEC_FIFO_G_t;
493 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DATA_NOT_IN_FIFO = 0x00,
494 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_NO_DECIMATION = 0x01,
495 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DECIMATION_BY_2 = 0x02,
496 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DECIMATION_BY_3 = 0x03,
497 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DECIMATION_BY_4 = 0x04,
498 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DECIMATION_BY_8 = 0x05,
499 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DECIMATION_BY_16 = 0x06,
500 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_DECIMATION_BY_32 = 0x07,
501} LSM6DS3_ACC_GYRO_DEC_FIFO_SLV0_t;
511 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DATA_NOT_IN_FIFO = 0x00,
512 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_NO_DECIMATION = 0x08,
513 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DECIMATION_BY_2 = 0x10,
514 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DECIMATION_BY_3 = 0x18,
515 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DECIMATION_BY_4 = 0x20,
516 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DECIMATION_BY_8 = 0x28,
517 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DECIMATION_BY_16 = 0x30,
518 LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_DECIMATION_BY_32 = 0x38,
519} LSM6DS3_ACC_GYRO_DEC_FIFO_SLV1_t;
529 LSM6DS3_ACC_GYRO_HI_DATA_ONLY_DISABLED = 0x00,
530 LSM6DS3_ACC_GYRO_HI_DATA_ONLY_ENABLED = 0x40,
531} LSM6DS3_ACC_GYRO_HI_DATA_ONLY_t;
541 LSM6DS3_ACC_GYRO_FIFO_MODE_BYPASS = 0x00,
542 LSM6DS3_ACC_GYRO_FIFO_MODE_FIFO = 0x01,
543 LSM6DS3_ACC_GYRO_FIFO_MODE_STF = 0x03,
544 LSM6DS3_ACC_GYRO_FIFO_MODE_BTS = 0x04,
545 LSM6DS3_ACC_GYRO_FIFO_MODE_DYN_STREAM = 0x06,
546} LSM6DS3_ACC_GYRO_FIFO_MODE_t;
556 LSM6DS3_ACC_GYRO_ODR_FIFO_DISABLED = 0x00,
557 LSM6DS3_ACC_GYRO_ODR_FIFO_10Hz = 0x08,
558 LSM6DS3_ACC_GYRO_ODR_FIFO_25Hz = 0x10,
559 LSM6DS3_ACC_GYRO_ODR_FIFO_50Hz = 0x18,
560 LSM6DS3_ACC_GYRO_ODR_FIFO_100Hz = 0x20,
561 LSM6DS3_ACC_GYRO_ODR_FIFO_200Hz = 0x28,
562 LSM6DS3_ACC_GYRO_ODR_FIFO_400Hz = 0x30,
563 LSM6DS3_ACC_GYRO_ODR_FIFO_800Hz = 0x38,
564 LSM6DS3_ACC_GYRO_ODR_FIFO_1600Hz = 0x40,
565 LSM6DS3_ACC_GYRO_ODR_FIFO_3300Hz = 0x48,
566 LSM6DS3_ACC_GYRO_ODR_FIFO_6600Hz = 0x50,
567} LSM6DS3_ACC_GYRO_ODR_FIFO_t;
577 LSM6DS3_ACC_GYRO_ORIENT_XYZ = 0x00,
578 LSM6DS3_ACC_GYRO_ORIENT_XZY = 0x01,
579 LSM6DS3_ACC_GYRO_ORIENT_YXZ = 0x02,
580 LSM6DS3_ACC_GYRO_ORIENT_YZX = 0x03,
581 LSM6DS3_ACC_GYRO_ORIENT_ZXY = 0x04,
582 LSM6DS3_ACC_GYRO_ORIENT_ZYX = 0x05,
583} LSM6DS3_ACC_GYRO_ORIENT_t;
593 LSM6DS3_ACC_GYRO_SIGN_Z_G_POSITIVE = 0x00,
594 LSM6DS3_ACC_GYRO_SIGN_Z_G_NEGATIVE = 0x08,
595} LSM6DS3_ACC_GYRO_SIGN_Z_G_t;
605 LSM6DS3_ACC_GYRO_SIGN_Y_G_POSITIVE = 0x00,
606 LSM6DS3_ACC_GYRO_SIGN_Y_G_NEGATIVE = 0x10,
607} LSM6DS3_ACC_GYRO_SIGN_Y_G_t;
617 LSM6DS3_ACC_GYRO_SIGN_X_G_POSITIVE = 0x00,
618 LSM6DS3_ACC_GYRO_SIGN_X_G_NEGATIVE = 0x20,
619} LSM6DS3_ACC_GYRO_SIGN_X_G_t;
627#define LSM6DS3_ACC_GYRO_REF_G_MASK 0xFF
628#define LSM6DS3_ACC_GYRO_REF_G_POSITION 0
639 LSM6DS3_ACC_GYRO_INT1_DRDY_XL_DISABLED = 0x00,
640 LSM6DS3_ACC_GYRO_INT1_DRDY_XL_ENABLED = 0x01,
641} LSM6DS3_ACC_GYRO_INT1_DRDY_XL_t;
652 LSM6DS3_ACC_GYRO_INT1_DRDY_G_DISABLED = 0x00,
653 LSM6DS3_ACC_GYRO_INT1_DRDY_G_ENABLED = 0x02,
654} LSM6DS3_ACC_GYRO_INT1_DRDY_G_t;
665 LSM6DS3_ACC_GYRO_INT1_BOOT_DISABLED = 0x00,
666 LSM6DS3_ACC_GYRO_INT1_BOOT_ENABLED = 0x04,
667} LSM6DS3_ACC_GYRO_INT1_BOOT_t;
678 LSM6DS3_ACC_GYRO_INT1_FTH_DISABLED = 0x00,
679 LSM6DS3_ACC_GYRO_INT1_FTH_ENABLED = 0x08,
680} LSM6DS3_ACC_GYRO_INT1_FTH_t;
691 LSM6DS3_ACC_GYRO_INT1_OVR_DISABLED = 0x00,
692 LSM6DS3_ACC_GYRO_INT1_OVR_ENABLED = 0x10,
693} LSM6DS3_ACC_GYRO_INT1_OVR_t;
704 LSM6DS3_ACC_GYRO_INT1_FULL_FLAG_DISABLED = 0x00,
705 LSM6DS3_ACC_GYRO_INT1_FULL_FLAG_ENABLED = 0x20,
706} LSM6DS3_ACC_GYRO_INT1_FULL_FLAG_t;
717 LSM6DS3_ACC_GYRO_INT1_SIGN_MOT_DISABLED = 0x00,
718 LSM6DS3_ACC_GYRO_INT1_SIGN_MOT_ENABLED = 0x40,
719} LSM6DS3_ACC_GYRO_INT1_SIGN_MOT_t;
730 LSM6DS3_ACC_GYRO_INT1_PEDO_DISABLED = 0x00,
731 LSM6DS3_ACC_GYRO_INT1_PEDO_ENABLED = 0x80,
732} LSM6DS3_ACC_GYRO_INT1_PEDO_t;
743 LSM6DS3_ACC_GYRO_INT2_DRDY_XL_DISABLED = 0x00,
744 LSM6DS3_ACC_GYRO_INT2_DRDY_XL_ENABLED = 0x01,
745} LSM6DS3_ACC_GYRO_INT2_DRDY_XL_t;
756 LSM6DS3_ACC_GYRO_INT2_DRDY_G_DISABLED = 0x00,
757 LSM6DS3_ACC_GYRO_INT2_DRDY_G_ENABLED = 0x02,
758} LSM6DS3_ACC_GYRO_INT2_DRDY_G_t;
769 LSM6DS3_ACC_GYRO_INT2_DRDY_TEMP_DISABLED = 0x00,
770 LSM6DS3_ACC_GYRO_INT2_DRDY_TEMP_ENABLED = 0x04,
771} LSM6DS3_ACC_GYRO_INT2_DRDY_TEMP_t;
782 LSM6DS3_ACC_GYRO_INT2_FTH_DISABLED = 0x00,
783 LSM6DS3_ACC_GYRO_INT2_FTH_ENABLED = 0x08,
784} LSM6DS3_ACC_GYRO_INT2_FTH_t;
795 LSM6DS3_ACC_GYRO_INT2_OVR_DISABLED = 0x00,
796 LSM6DS3_ACC_GYRO_INT2_OVR_ENABLED = 0x10,
797} LSM6DS3_ACC_GYRO_INT2_OVR_t;
808 LSM6DS3_ACC_GYRO_INT2_FULL_FLAG_DISABLED = 0x00,
809 LSM6DS3_ACC_GYRO_INT2_FULL_FLAG_ENABLED = 0x20,
810} LSM6DS3_ACC_GYRO_INT2_FULL_FLAG_t;
821 LSM6DS3_ACC_GYRO_INT2_STEP_COUNT_OV_DISABLED = 0x00,
822 LSM6DS3_ACC_GYRO_INT2_STEP_COUNT_OV_ENABLED = 0x40,
823} LSM6DS3_ACC_GYRO_INT2_STEP_COUNT_OV_t;
834 LSM6DS3_ACC_GYRO_INT2_STEP_DELTA_DISABLED = 0x00,
835 LSM6DS3_ACC_GYRO_INT2_STEP_DELTA_ENABLED = 0x80,
836} LSM6DS3_ACC_GYRO_INT2_STEP_DELTA_t;
844#define LSM6DS3_ACC_GYRO_WHO_AM_I_BIT_MASK 0xFF
845#define LSM6DS3_ACC_GYRO_WHO_AM_I_BIT_POSITION 0
857 LSM6DS3_ACC_GYRO_BW_XL_400Hz = 0x00,
858 LSM6DS3_ACC_GYRO_BW_XL_200Hz = 0x01,
859 LSM6DS3_ACC_GYRO_BW_XL_100Hz = 0x02,
860 LSM6DS3_ACC_GYRO_BW_XL_50Hz = 0x03,
861} LSM6DS3_ACC_GYRO_BW_XL_t;
873 LSM6DS3_ACC_GYRO_FS_XL_2g = 0x00,
874 LSM6DS3_ACC_GYRO_FS_XL_16g = 0x04,
875 LSM6DS3_ACC_GYRO_FS_XL_4g = 0x08,
876 LSM6DS3_ACC_GYRO_FS_XL_8g = 0x0C,
877} LSM6DS3_ACC_GYRO_FS_XL_t;
888 LSM6DS3_ACC_GYRO_ODR_XL_POWER_DOWN = 0x00,
889 LSM6DS3_ACC_GYRO_ODR_XL_13Hz = 0x10,
890 LSM6DS3_ACC_GYRO_ODR_XL_26Hz = 0x20,
891 LSM6DS3_ACC_GYRO_ODR_XL_52Hz = 0x30,
892 LSM6DS3_ACC_GYRO_ODR_XL_104Hz = 0x40,
893 LSM6DS3_ACC_GYRO_ODR_XL_208Hz = 0x50,
894 LSM6DS3_ACC_GYRO_ODR_XL_416Hz = 0x60,
895 LSM6DS3_ACC_GYRO_ODR_XL_833Hz = 0x70,
896 LSM6DS3_ACC_GYRO_ODR_XL_1660Hz = 0x80,
897 LSM6DS3_ACC_GYRO_ODR_XL_3330Hz = 0x90,
898 LSM6DS3_ACC_GYRO_ODR_XL_6660Hz = 0xA0,
899} LSM6DS3_ACC_GYRO_ODR_XL_t;
910 LSM6DS3_ACC_GYRO_FS_125_DISABLED = 0x00,
911 LSM6DS3_ACC_GYRO_FS_125_ENABLED = 0x02,
912} LSM6DS3_ACC_GYRO_FS_125_t;
923 LSM6DS3_ACC_GYRO_FS_G_245dps = 0x00,
924 LSM6DS3_ACC_GYRO_FS_G_500dps = 0x04,
925 LSM6DS3_ACC_GYRO_FS_G_1000dps = 0x08,
926 LSM6DS3_ACC_GYRO_FS_G_2000dps = 0x0C,
927} LSM6DS3_ACC_GYRO_FS_G_t;
938 LSM6DS3_ACC_GYRO_ODR_G_POWER_DOWN = 0x00,
939 LSM6DS3_ACC_GYRO_ODR_G_13Hz = 0x10,
940 LSM6DS3_ACC_GYRO_ODR_G_26Hz = 0x20,
941 LSM6DS3_ACC_GYRO_ODR_G_52Hz = 0x30,
942 LSM6DS3_ACC_GYRO_ODR_G_104Hz = 0x40,
943 LSM6DS3_ACC_GYRO_ODR_G_208Hz = 0x50,
944 LSM6DS3_ACC_GYRO_ODR_G_416Hz = 0x60,
945 LSM6DS3_ACC_GYRO_ODR_G_833Hz = 0x70,
946 LSM6DS3_ACC_GYRO_ODR_G_1660Hz = 0x80,
947} LSM6DS3_ACC_GYRO_ODR_G_t;
958 LSM6DS3_ACC_GYRO_SW_RESET_NORMAL_MODE = 0x00,
959 LSM6DS3_ACC_GYRO_SW_RESET_RESET_DEVICE = 0x01,
960} LSM6DS3_ACC_GYRO_SW_RESET_t;
971 LSM6DS3_ACC_GYRO_BLE_LSB = 0x00,
972 LSM6DS3_ACC_GYRO_BLE_MSB = 0x02,
973} LSM6DS3_ACC_GYRO_BLE_t;
985 LSM6DS3_ACC_GYRO_IF_INC_DISABLED = 0x00,
986 LSM6DS3_ACC_GYRO_IF_INC_ENABLED = 0x04,
987} LSM6DS3_ACC_GYRO_IF_INC_t;
998 LSM6DS3_ACC_GYRO_SIM_4_WIRE = 0x00,
999 LSM6DS3_ACC_GYRO_SIM_3_WIRE = 0x08,
1000} LSM6DS3_ACC_GYRO_SIM_t;
1011 LSM6DS3_ACC_GYRO_PP_OD_PUSH_PULL = 0x00,
1012 LSM6DS3_ACC_GYRO_PP_OD_OPEN_DRAIN = 0x10,
1013} LSM6DS3_ACC_GYRO_PP_OD_t;
1024 LSM6DS3_ACC_GYRO_INT_ACT_LEVEL_ACTIVE_HI = 0x00,
1025 LSM6DS3_ACC_GYRO_INT_ACT_LEVEL_ACTIVE_LO = 0x20,
1026} LSM6DS3_ACC_GYRO_INT_ACT_LEVEL_t;
1037 LSM6DS3_ACC_GYRO_BDU_CONTINUOS = 0x00,
1038 LSM6DS3_ACC_GYRO_BDU_BLOCK_UPDATE = 0x40,
1039} LSM6DS3_ACC_GYRO_BDU_t;
1050 LSM6DS3_ACC_GYRO_BOOT_NORMAL_MODE = 0x00,
1051 LSM6DS3_ACC_GYRO_BOOT_REBOOT_MODE = 0x80,
1052} LSM6DS3_ACC_GYRO_BOOT_t;
1063 LSM6DS3_ACC_GYRO_STOP_ON_FTH_DISABLED = 0x00,
1064 LSM6DS3_ACC_GYRO_STOP_ON_FTH_ENABLED = 0x01,
1065} LSM6DS3_ACC_GYRO_STOP_ON_FTH_t;
1076 LSM6DS3_ACC_GYRO_I2C_DISABLE_I2C_AND_SPI = 0x00,
1077 LSM6DS3_ACC_GYRO_I2C_DISABLE_SPI_ONLY = 0x04,
1078} LSM6DS3_ACC_GYRO_I2C_DISABLE_t;
1091 LSM6DS3_ACC_GYRO_DRDY_MSK_DISABLED = 0x00,
1092 LSM6DS3_ACC_GYRO_DRDY_MSK_ENABLED = 0x08,
1093} LSM6DS3_ACC_GYRO_DRDY_MSK_t;
1104 LSM6DS3_ACC_GYRO_FIFO_TEMP_EN_DISABLED = 0x00,
1105 LSM6DS3_ACC_GYRO_FIFO_TEMP_EN_ENABLED = 0x10,
1106} LSM6DS3_ACC_GYRO_FIFO_TEMP_EN_t;
1117 LSM6DS3_ACC_GYRO_INT2_ON_INT1_DISABLED = 0x00,
1118 LSM6DS3_ACC_GYRO_INT2_ON_INT1_ENABLED = 0x20,
1119} LSM6DS3_ACC_GYRO_INT2_ON_INT1_t;
1130 LSM6DS3_ACC_GYRO_SLEEP_G_DISABLED = 0x00,
1131 LSM6DS3_ACC_GYRO_SLEEP_G_ENABLED = 0x40,
1132} LSM6DS3_ACC_GYRO_SLEEP_G_t;
1145 LSM6DS3_ACC_GYRO_BW_SCAL_ODR_DISABLED = 0x00,
1146 LSM6DS3_ACC_GYRO_BW_SCAL_ODR_ENABLED = 0x80,
1147} LSM6DS3_ACC_GYRO_BW_SCAL_ODR_t;
1158 LSM6DS3_ACC_GYRO_ST_XL_NORMAL_MODE = 0x00,
1159 LSM6DS3_ACC_GYRO_ST_XL_POS_SIGN_TEST = 0x01,
1160 LSM6DS3_ACC_GYRO_ST_XL_NEG_SIGN_TEST = 0x02,
1161 LSM6DS3_ACC_GYRO_ST_XL_NA = 0x03,
1162} LSM6DS3_ACC_GYRO_ST_XL_t;
1173 LSM6DS3_ACC_GYRO_ST_G_NORMAL_MODE = 0x00,
1174 LSM6DS3_ACC_GYRO_ST_G_POS_SIGN_TEST = 0x04,
1175 LSM6DS3_ACC_GYRO_ST_G_NA = 0x08,
1176 LSM6DS3_ACC_GYRO_ST_G_NEG_SIGN_TEST = 0x0C,
1177} LSM6DS3_ACC_GYRO_ST_G_t;
1188 LSM6DS3_ACC_GYRO_ROUNDING_NONE = 0x00,
1189 LSM6DS3_ACC_GYRO_ROUNDING_ACCEL = 0x20,
1190 LSM6DS3_ACC_GYRO_ROUNDING_GYRO = 0x40,
1191 LSM6DS3_ACC_GYRO_ROUNDING_GYRO_ACCEL = 0x60,
1193 LSM6DS3_ACC_GYRO_ROUNDING_REG_SENSORHUB = 0x80,
1195 LSM6DS3_ACC_GYRO_ROUNDING_ACCEL_REG_SENSORHUB = 0xA0,
1198 LSM6DS3_ACC_GYRO_ROUNDING_GYRO_REG_SENSORHUB = 0xC0,
1200 LSM6DS3_ACC_GYRO_ROUNDING_ACCEL_GYRO_REG_SENSORHUB = 0xE0,
1201} LSM6DS3_ACC_GYRO_ROUNDING_t;
1212 LSM6DS3_ACC_GYRO_XL_HM_MODE_DISABLED = 0x00,
1213 LSM6DS3_ACC_GYRO_XL_HM_MODE_ENABLED = 0x10,
1214} LSM6DS3_ACC_GYRO_XL_HM_MODE_t;
1225 LSM6DS3_ACC_GYRO_LVL2_EN_DISABLED = 0x00,
1226 LSM6DS3_ACC_GYRO_LVL2_EN_ENABLED = 0x20,
1227} LSM6DS3_ACC_GYRO_LVL2_EN_t;
1238 LSM6DS3_ACC_GYRO_LVL_EN_DISABLED = 0x00,
1239 LSM6DS3_ACC_GYRO_LVL_EN_ENABLED = 0x40,
1240} LSM6DS3_ACC_GYRO_LVL_EN_t;
1251 LSM6DS3_ACC_GYRO_TRIG_EN_DISABLED = 0x00,
1252 LSM6DS3_ACC_GYRO_TRIG_EN_ENABLED = 0x80,
1253} LSM6DS3_ACC_GYRO_TRIG_EN_t;
1265 LSM6DS3_ACC_GYRO_ROUNDING_STATUS_DISABLED = 0x00,
1266 LSM6DS3_ACC_GYRO_ROUNDING_STATUS_ENABLED = 0x04,
1267} LSM6DS3_ACC_GYRO_ROUNDING_STATUS_t;
1278 LSM6DS3_ACC_GYRO_HP_G_RST_DISABLED = 0x00,
1279 LSM6DS3_ACC_GYRO_HP_G_RST_ENABLED = 0x08,
1280} LSM6DS3_ACC_GYRO_HP_G_RST_t;
1291 LSM6DS3_ACC_GYRO_HPCF_G_0_0081HZ = 0x00,
1292 LSM6DS3_ACC_GYRO_HPCF_G_0_0324HZ = 0x10,
1293 LSM6DS3_ACC_GYRO_HPCF_G_2_0700HZ = 0x20,
1294 LSM6DS3_ACC_GYRO_HPCF_G_16_320HZ = 0x30,
1295} LSM6DS3_ACC_GYRO_HPCF_G_t;
1307 LSM6DS3_ACC_GYRO_HPG_EN_DISABLED = 0x00,
1308 LSM6DS3_ACC_GYRO_HPG_EN_ENABLED = 0x40,
1309} LSM6DS3_ACC_GYRO_HPG_EN_t;
1320 LSM6DS3_ACC_GYRO_G_HM_MODE_DISABLED = 0x00,
1321 LSM6DS3_ACC_GYRO_G_HM_MODE_ENABLED = 0x80,
1322} LSM6DS3_ACC_GYRO_G_HM_MODE_t;
1333 LSM6DS3_ACC_GYRO_LOW_PASS_ON_6D_OFF = 0x00,
1334 LSM6DS3_ACC_GYRO_LOW_PASS_ON_6D_ON = 0x01,
1335} LSM6DS3_ACC_GYRO_LOW_PASS_ON_6D_t;
1346 LSM6DS3_ACC_GYRO_HP_SLOPE_XL_EN_DISABLED = 0x00,
1347 LSM6DS3_ACC_GYRO_HP_SLOPE_XL_EN_ENABLED = 0x04,
1348} LSM6DS3_ACC_GYRO_HP_SLOPE_XL_EN_t;
1362 LSM6DS3_ACC_GYRO_HPCF_XL_SLOPE = 0x00,
1364 LSM6DS3_ACC_GYRO_HPCF_XL_GP_100 = 0x20,
1366 LSM6DS3_ACC_GYRO_HPCF_XL_GP_9 = 0x40,
1368 LSM6DS3_ACC_GYRO_HPCF_XL_GP_400 = 0x60,
1369} LSM6DS3_ACC_GYRO_HPCF_XL_t;
1380 LSM6DS3_ACC_GYRO_LPF2_XL_EN_DISABLED = 0x00,
1381 LSM6DS3_ACC_GYRO_LPF2_XL_EN_ENABLED = 0x80,
1382} LSM6DS3_ACC_GYRO_LPF2_XL_EN_t;
1393 LSM6DS3_ACC_GYRO_SOFT_EN_DISABLED = 0x00,
1394 LSM6DS3_ACC_GYRO_SOFT_EN_ENABLED = 0x04,
1395} LSM6DS3_ACC_GYRO_SOFT_EN_t;
1406 LSM6DS3_ACC_GYRO_XEN_XL_DISABLED = 0x00,
1407 LSM6DS3_ACC_GYRO_XEN_XL_ENABLED = 0x08,
1408} LSM6DS3_ACC_GYRO_XEN_XL_t;
1419 LSM6DS3_ACC_GYRO_YEN_XL_DISABLED = 0x00,
1420 LSM6DS3_ACC_GYRO_YEN_XL_ENABLED = 0x10,
1421} LSM6DS3_ACC_GYRO_YEN_XL_t;
1432 LSM6DS3_ACC_GYRO_ZEN_XL_DISABLED = 0x00,
1433 LSM6DS3_ACC_GYRO_ZEN_XL_ENABLED = 0x20,
1434} LSM6DS3_ACC_GYRO_ZEN_XL_t;
1445 LSM6DS3_ACC_GYRO_SIGN_MOTION_EN_DISABLED = 0x00,
1446 LSM6DS3_ACC_GYRO_SIGN_MOTION_EN_ENABLED = 0x01,
1447} LSM6DS3_ACC_GYRO_SIGN_MOTION_EN_t;
1458 LSM6DS3_ACC_GYRO_PEDO_RST_STEP_DISABLED = 0x00,
1459 LSM6DS3_ACC_GYRO_PEDO_RST_STEP_ENABLED = 0x02,
1460} LSM6DS3_ACC_GYRO_PEDO_RST_STEP_t;
1472 LSM6DS3_ACC_GYRO_FUNC_EN_DISABLED = 0x00,
1473 LSM6DS3_ACC_GYRO_FUNC_EN_ENABLED = 0x04,
1474} LSM6DS3_ACC_GYRO_FUNC_EN_t;
1485 LSM6DS3_ACC_GYRO_XEN_G_DISABLED = 0x00,
1486 LSM6DS3_ACC_GYRO_XEN_G_ENABLED = 0x08,
1487} LSM6DS3_ACC_GYRO_XEN_G_t;
1498 LSM6DS3_ACC_GYRO_YEN_G_DISABLED = 0x00,
1499 LSM6DS3_ACC_GYRO_YEN_G_ENABLED = 0x10,
1500} LSM6DS3_ACC_GYRO_YEN_G_t;
1511 LSM6DS3_ACC_GYRO_ZEN_G_DISABLED = 0x00,
1512 LSM6DS3_ACC_GYRO_ZEN_G_ENABLED = 0x20,
1513} LSM6DS3_ACC_GYRO_ZEN_G_t;
1525 LSM6DS3_ACC_GYRO_MASTER_ON_DISABLED = 0x00,
1526 LSM6DS3_ACC_GYRO_MASTER_ON_ENABLED = 0x01,
1527} LSM6DS3_ACC_GYRO_MASTER_ON_t;
1538 LSM6DS3_ACC_GYRO_IRON_EN_DISABLED = 0x00,
1539 LSM6DS3_ACC_GYRO_IRON_EN_ENABLED = 0x02,
1540} LSM6DS3_ACC_GYRO_IRON_EN_t;
1551 LSM6DS3_ACC_GYRO_PASS_THRU_MODE_DISABLED = 0x00,
1552 LSM6DS3_ACC_GYRO_PASS_THRU_MODE_ENABLED = 0x04,
1553} LSM6DS3_ACC_GYRO_PASS_THRU_MODE_t;
1564 LSM6DS3_ACC_GYRO_PULL_UP_EN_DISABLED = 0x00,
1565 LSM6DS3_ACC_GYRO_PULL_UP_EN_ENABLED = 0x08,
1566} LSM6DS3_ACC_GYRO_PULL_UP_EN_t;
1577 LSM6DS3_ACC_GYRO_START_CONFIG_XL_G_DRDY = 0x00,
1578 LSM6DS3_ACC_GYRO_START_CONFIG_EXT_INT2 = 0x10,
1579} LSM6DS3_ACC_GYRO_START_CONFIG_t;
1590 LSM6DS3_ACC_GYRO_DATA_VAL_SEL_FIFO_XL_G_DRDY = 0x00,
1591 LSM6DS3_ACC_GYRO_DATA_VAL_SEL_FIFO_SHUB_DRDY = 0x40,
1592} LSM6DS3_ACC_GYRO_DATA_VAL_SEL_FIFO_t;
1603 LSM6DS3_ACC_GYRO_DRDY_ON_INT1_DISABLED = 0x00,
1604 LSM6DS3_ACC_GYRO_DRDY_ON_INT1_ENABLED = 0x80,
1605} LSM6DS3_ACC_GYRO_DRDY_ON_INT1_t;
1616 LSM6DS3_ACC_GYRO_Z_WU_NOT_DETECTED = 0x00,
1617 LSM6DS3_ACC_GYRO_Z_WU_DETECTED = 0x01,
1618} LSM6DS3_ACC_GYRO_Z_WU_t;
1629 LSM6DS3_ACC_GYRO_Y_WU_NOT_DETECTED = 0x00,
1630 LSM6DS3_ACC_GYRO_Y_WU_DETECTED = 0x02,
1631} LSM6DS3_ACC_GYRO_Y_WU_t;
1642 LSM6DS3_ACC_GYRO_X_WU_NOT_DETECTED = 0x00,
1643 LSM6DS3_ACC_GYRO_X_WU_DETECTED = 0x04,
1644} LSM6DS3_ACC_GYRO_X_WU_t;
1655 LSM6DS3_ACC_GYRO_WU_EV_STATUS_NOT_DETECTED = 0x00,
1656 LSM6DS3_ACC_GYRO_WU_EV_STATUS_DETECTED = 0x08,
1657} LSM6DS3_ACC_GYRO_WU_EV_STATUS_t;
1668 LSM6DS3_ACC_GYRO_SLEEP_EV_STATUS_NOT_DETECTED = 0x00,
1669 LSM6DS3_ACC_GYRO_SLEEP_EV_STATUS_DETECTED = 0x10,
1670} LSM6DS3_ACC_GYRO_SLEEP_EV_STATUS_t;
1681 LSM6DS3_ACC_GYRO_FF_EV_STATUS_NOT_DETECTED = 0x00,
1682 LSM6DS3_ACC_GYRO_FF_EV_STATUS_DETECTED = 0x20,
1683} LSM6DS3_ACC_GYRO_FF_EV_STATUS_t;
1694 LSM6DS3_ACC_GYRO_Z_TAP_NOT_DETECTED = 0x00,
1695 LSM6DS3_ACC_GYRO_Z_TAP_DETECTED = 0x01,
1696} LSM6DS3_ACC_GYRO_Z_TAP_t;
1707 LSM6DS3_ACC_GYRO_Y_TAP_NOT_DETECTED = 0x00,
1708 LSM6DS3_ACC_GYRO_Y_TAP_DETECTED = 0x02,
1709} LSM6DS3_ACC_GYRO_Y_TAP_t;
1720 LSM6DS3_ACC_GYRO_X_TAP_NOT_DETECTED = 0x00,
1721 LSM6DS3_ACC_GYRO_X_TAP_DETECTED = 0x04,
1722} LSM6DS3_ACC_GYRO_X_TAP_t;
1733 LSM6DS3_ACC_GYRO_TAP_SIGN_POS_SIGN = 0x00,
1734 LSM6DS3_ACC_GYRO_TAP_SIGN_NEG_SIGN = 0x08,
1735} LSM6DS3_ACC_GYRO_TAP_SIGN_t;
1746 LSM6DS3_ACC_GYRO_DOUBLE_TAP_EV_STATUS_NOT_DETECTED = 0x00,
1747 LSM6DS3_ACC_GYRO_DOUBLE_TAP_EV_STATUS_DETECTED = 0x10,
1748} LSM6DS3_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t;
1759 LSM6DS3_ACC_GYRO_SINGLE_TAP_EV_STATUS_NOT_DETECTED = 0x00,
1760 LSM6DS3_ACC_GYRO_SINGLE_TAP_EV_STATUS_DETECTED = 0x20,
1761} LSM6DS3_ACC_GYRO_SINGLE_TAP_EV_STATUS_t;
1772 LSM6DS3_ACC_GYRO_TAP_EV_STATUS_NOT_DETECTED = 0x00,
1773 LSM6DS3_ACC_GYRO_TAP_EV_STATUS_DETECTED = 0x40,
1774} LSM6DS3_ACC_GYRO_TAP_EV_STATUS_t;
1785 LSM6DS3_ACC_GYRO_DSD_XL_NOT_DETECTED = 0x00,
1786 LSM6DS3_ACC_GYRO_DSD_XL_DETECTED = 0x01,
1787} LSM6DS3_ACC_GYRO_DSD_XL_t;
1798 LSM6DS3_ACC_GYRO_DSD_XH_NOT_DETECTED = 0x00,
1799 LSM6DS3_ACC_GYRO_DSD_XH_DETECTED = 0x02,
1800} LSM6DS3_ACC_GYRO_DSD_XH_t;
1811 LSM6DS3_ACC_GYRO_DSD_YL_NOT_DETECTED = 0x00,
1812 LSM6DS3_ACC_GYRO_DSD_YL_DETECTED = 0x04,
1813} LSM6DS3_ACC_GYRO_DSD_YL_t;
1824 LSM6DS3_ACC_GYRO_DSD_YH_NOT_DETECTED = 0x00,
1825 LSM6DS3_ACC_GYRO_DSD_YH_DETECTED = 0x08,
1826} LSM6DS3_ACC_GYRO_DSD_YH_t;
1837 LSM6DS3_ACC_GYRO_DSD_ZL_NOT_DETECTED = 0x00,
1838 LSM6DS3_ACC_GYRO_DSD_ZL_DETECTED = 0x10,
1839} LSM6DS3_ACC_GYRO_DSD_ZL_t;
1850 LSM6DS3_ACC_GYRO_DSD_ZH_NOT_DETECTED = 0x00,
1851 LSM6DS3_ACC_GYRO_DSD_ZH_DETECTED = 0x20,
1852} LSM6DS3_ACC_GYRO_DSD_ZH_t;
1863 LSM6DS3_ACC_GYRO_D6D_EV_STATUS_NOT_DETECTED = 0x00,
1864 LSM6DS3_ACC_GYRO_D6D_EV_STATUS_DETECTED = 0x40,
1865} LSM6DS3_ACC_GYRO_D6D_EV_STATUS_t;
1876 LSM6DS3_ACC_GYRO_XLDA_NO_DATA_AVAIL = 0x00,
1877 LSM6DS3_ACC_GYRO_XLDA_DATA_AVAIL = 0x01,
1878} LSM6DS3_ACC_GYRO_XLDA_t;
1889 LSM6DS3_ACC_GYRO_GDA_NO_DATA_AVAIL = 0x00,
1890 LSM6DS3_ACC_GYRO_GDA_DATA_AVAIL = 0x02,
1891} LSM6DS3_ACC_GYRO_GDA_t;
1902 LSM6DS3_ACC_GYRO_TDA_NO_DATA_AVAIL = 0x00,
1903 LSM6DS3_ACC_GYRO_TDA_DATA_AVAIL = 0x04,
1904} LSM6DS3_ACC_GYRO_TDA_t;
1913#define LSM6DS3_ACC_GYRO_DIFF_FIFO_STATUS1_MASK 0xFF
1914#define LSM6DS3_ACC_GYRO_DIFF_FIFO_STATUS1_POSITION 0
1923#define LSM6DS3_ACC_GYRO_DIFF_FIFO_STATUS2_MASK 0xF
1924#define LSM6DS3_ACC_GYRO_DIFF_FIFO_STATUS2_POSITION 0
1935 LSM6DS3_ACC_GYRO_FIFO_EMPTY_FIFO_NOT_EMPTY = 0x00,
1936 LSM6DS3_ACC_GYRO_FIFO_EMPTY_FIFO_EMPTY = 0x10,
1937} LSM6DS3_ACC_GYRO_FIFO_EMPTY_t;
1948 LSM6DS3_ACC_GYRO_FIFO_FULL_FIFO_NOT_FULL = 0x00,
1949 LSM6DS3_ACC_GYRO_FIFO_FULL_FIFO_FULL = 0x20,
1950} LSM6DS3_ACC_GYRO_FIFO_FULL_t;
1961 LSM6DS3_ACC_GYRO_OVERRUN_NO_OVERRUN = 0x00,
1962 LSM6DS3_ACC_GYRO_OVERRUN_OVERRUN = 0x40,
1963} LSM6DS3_ACC_GYRO_OVERRUN_t;
1974 LSM6DS3_ACC_GYRO_WTM_BELOW_WTM = 0x00,
1975 LSM6DS3_ACC_GYRO_WTM_ABOVE_OR_EQUAL_WTM = 0x80,
1976} LSM6DS3_ACC_GYRO_WTM_t;
1984#define LSM6DS3_ACC_GYRO_FIFO_STATUS3_PATTERN_MASK 0xFF
1985#define LSM6DS3_ACC_GYRO_FIFO_STATUS3_PATTERN_POSITION 0
1986#define LSM6DS3_ACC_GYRO_FIFO_STATUS4_PATTERN_MASK 0x03
1987#define LSM6DS3_ACC_GYRO_FIFO_STATUS4_PATTERN_POSITION 0
1998 LSM6DS3_ACC_GYRO_SENS_HUB_END_STILL_ONGOING = 0x00,
1999 LSM6DS3_ACC_GYRO_SENS_HUB_END_OP_COMPLETED = 0x01,
2000} LSM6DS3_ACC_GYRO_SENS_HUB_END_t;
2011 LSM6DS3_ACC_GYRO_SOFT_IRON_END_NOT_COMPLETED = 0x00,
2012 LSM6DS3_ACC_GYRO_SOFT_IRON_END_COMPLETED = 0x02,
2013} LSM6DS3_ACC_GYRO_SOFT_IRON_END_t;
2024 LSM6DS3_ACC_GYRO_STEP_NOT_OVERFLOWED = 0x00,
2025 LSM6DS3_ACC_GYRO_STEP_OVERFLOWED = 0x08,
2026} LSM6DS3_ACC_GYRO_STEP_OVERFLOW_t;
2037 LSM6DS3_ACC_GYRO_STEP_NOT_DETECTED = 0x00,
2038 LSM6DS3_ACC_GYRO_STEP_DETECTED = 0x10,
2039} LSM6DS3_ACC_GYRO_STEP_DETECTED_t;
2050 LSM6DS3_ACC_GYRO_TILT_IA_NOT_DETECTED = 0x00,
2051 LSM6DS3_ACC_GYRO_TILT_IA_DETECTED = 0x20,
2052} LSM6DS3_ACC_GYRO_TILT_IA_t;
2063 LSM6DS3_ACC_GYRO_SIGN_MOTION_IA_NOT_DETECTED = 0x00,
2064 LSM6DS3_ACC_GYRO_SIGN_MOTION_IA_DETECTED = 0x40,
2065} LSM6DS3_ACC_GYRO_SIGN_MOTION_IA_t;
2077 LSM6DS3_ACC_GYRO_STEP_COUNT_DELTA_IA_STATUS_NOT_DETECTED = 0x00,
2078 LSM6DS3_ACC_GYRO_STEP_COUNT_DELTA_IA_STATUS_DETECTED = 0x80,
2079} LSM6DS3_ACC_GYRO_STEP_COUNT_DELTA_IA_STATUS_t;
2090 LSM6DS3_ACC_GYRO_LIR_DISABLED = 0x00,
2091 LSM6DS3_ACC_GYRO_LIR_ENABLED = 0x01,
2092} LSM6DS3_ACC_GYRO_LIR_t;
2103 LSM6DS3_ACC_GYRO_TAP_Z_EN_DISABLED = 0x00,
2104 LSM6DS3_ACC_GYRO_TAP_Z_EN_ENABLED = 0x02,
2105} LSM6DS3_ACC_GYRO_TAP_Z_EN_t;
2116 LSM6DS3_ACC_GYRO_TAP_Y_EN_DISABLED = 0x00,
2117 LSM6DS3_ACC_GYRO_TAP_Y_EN_ENABLED = 0x04,
2118} LSM6DS3_ACC_GYRO_TAP_Y_EN_t;
2129 LSM6DS3_ACC_GYRO_TAP_X_EN_DISABLED = 0x00,
2130 LSM6DS3_ACC_GYRO_TAP_X_EN_ENABLED = 0x08,
2131} LSM6DS3_ACC_GYRO_TAP_X_EN_t;
2142 LSM6DS3_ACC_GYRO_SLOPE_FDS_DISABLED = 0x00,
2143 LSM6DS3_ACC_GYRO_SLOPE_FDS_ENABLED = 1 << 4,
2144} LSM6DS3_ACC_GYRO_SLOPE_FDS_t;
2155 LSM6DS3_ACC_GYRO_TILT_EN_DISABLED = 0x00,
2156 LSM6DS3_ACC_GYRO_TILT_EN_ENABLED = 0x20,
2157} LSM6DS3_ACC_GYRO_TILT_EN_t;
2168 LSM6DS3_ACC_GYRO_PEDO_EN_DISABLED = 0x00,
2169 LSM6DS3_ACC_GYRO_PEDO_EN_ENABLED = 0x40,
2170} LSM6DS3_ACC_GYRO_PEDO_EN_t;
2182 LSM6DS3_ACC_GYRO_TIMER_EN_DISABLED = 0x00,
2183 LSM6DS3_ACC_GYRO_TIMER_EN_ENABLED = 0x80,
2184} LSM6DS3_ACC_GYRO_TIMER_EN_t;
2193#define LSM6DS3_ACC_GYRO_TAP_THS_MASK 0x1F
2194#define LSM6DS3_ACC_GYRO_TAP_THS_POSITION 0
2205 LSM6DS3_ACC_GYRO_SIXD_THS_80_degree = 0x00,
2206 LSM6DS3_ACC_GYRO_SIXD_THS_70_degree = 0x20,
2207 LSM6DS3_ACC_GYRO_SIXD_THS_60_degree = 0x40,
2208 LSM6DS3_ACC_GYRO_SIXD_THS_50_degree = 0x60,
2209} LSM6DS3_ACC_GYRO_SIXD_THS_t;
2220 LSM6DS3_ACC_GYRO_D4D_DISABLED_degree = 0x00,
2221 LSM6DS3_ACC_GYRO_D4D_ENABLED_degree = 0x80,
2222} LSM6DS3_ACC_GYRO_D4D_EN_t;
2234#define LSM6DS3_ACC_GYRO_SHOCK_MASK 0x03
2235#define LSM6DS3_ACC_GYRO_SHOCK_POSITION 0
2247#define LSM6DS3_ACC_GYRO_QUIET_MASK 0x0C
2248#define LSM6DS3_ACC_GYRO_QUIET_POSITION 2
2260#define LSM6DS3_ACC_GYRO_DUR_MASK 0xF0
2261#define LSM6DS3_ACC_GYRO_DUR_POSITION 4
2270#define LSM6DS3_ACC_GYRO_WK_THS_MASK 0x3F
2271#define LSM6DS3_ACC_GYRO_WK_THS_POSITION 0
2282 LSM6DS3_ACC_GYRO_INACTIVITY_ON_DISABLED = 0x00,
2283 LSM6DS3_ACC_GYRO_INACTIVITY_ON_ENABLED = 0x40,
2284} LSM6DS3_ACC_GYRO_INACTIVITY_ON_t;
2295 LSM6DS3_ACC_GYRO_SINGLE_DOUBLE_TAP_DOUBLE_TAP = 0x00,
2296 LSM6DS3_ACC_GYRO_SINGLE_DOUBLE_TAP_SINGLE_TAP = 0x80,
2297} LSM6DS3_ACC_GYRO_SINGLE_DOUBLE_TAP_t;
2306#define LSM6DS3_ACC_GYRO_SLEEP_DUR_MASK 0x0F
2307#define LSM6DS3_ACC_GYRO_SLEEP_DUR_POSITION 0
2318 LSM6DS3_ACC_GYRO_TIMER_HR_6_4ms = 0x00,
2319 LSM6DS3_ACC_GYRO_TIMER_HR_25us = 0x10,
2320} LSM6DS3_ACC_GYRO_TIMER_HR_t;
2329#define LSM6DS3_ACC_GYRO_WAKE_DUR_MASK 0x60
2330#define LSM6DS3_ACC_GYRO_WAKE_DUR_POSITION 5
2339#define LSM6DS3_ACC_GYRO_FREE_FALL_DUR_MASK 0xF8
2340#define LSM6DS3_ACC_GYRO_FREE_FALL_DUR_POSITION 3
2342#define LSM6DS3_ACC_GYRO_FF_WAKE_UP_DUR_MASK 0x80
2343#define LSM6DS3_ACC_GYRO_FF_WAKE_UP_DUR_POSITION 7
2354 LSM6DS3_ACC_GYRO_FF_THS_5 = 0x00,
2355 LSM6DS3_ACC_GYRO_FF_THS_7 = 0x01,
2356 LSM6DS3_ACC_GYRO_FF_THS_8 = 0x02,
2357 LSM6DS3_ACC_GYRO_FF_THS_10 = 0x03,
2358 LSM6DS3_ACC_GYRO_FF_THS_11 = 0x04,
2359 LSM6DS3_ACC_GYRO_FF_THS_13 = 0x05,
2360 LSM6DS3_ACC_GYRO_FF_THS_15 = 0x06,
2361 LSM6DS3_ACC_GYRO_FF_THS_16 = 0x07,
2362} LSM6DS3_ACC_GYRO_FF_THS_t;
2373 LSM6DS3_ACC_GYRO_INT1_TIMER_DISABLED = 0x00,
2374 LSM6DS3_ACC_GYRO_INT1_TIMER_ENABLED = 0x01,
2375} LSM6DS3_ACC_GYRO_INT1_TIMER_t;
2386 LSM6DS3_ACC_GYRO_INT1_TILT_DISABLED = 0x00,
2387 LSM6DS3_ACC_GYRO_INT1_TILT_ENABLED = 0x02,
2388} LSM6DS3_ACC_GYRO_INT1_TILT_t;
2399 LSM6DS3_ACC_GYRO_INT1_6D_DISABLED = 0x00,
2400 LSM6DS3_ACC_GYRO_INT1_6D_ENABLED = 0x04,
2401} LSM6DS3_ACC_GYRO_INT1_6D_t;
2412 LSM6DS3_ACC_GYRO_INT1_DOUBLE_TAP_DISABLED = 0x00,
2413 LSM6DS3_ACC_GYRO_INT1_DOUBLE_TAP_ENABLED = 0x08,
2414} LSM6DS3_ACC_GYRO_INT1_DOUBLE_TAP_t;
2425 LSM6DS3_ACC_GYRO_INT1_FF_DISABLED = 0x00,
2426 LSM6DS3_ACC_GYRO_INT1_FF_ENABLED = 0x10,
2427} LSM6DS3_ACC_GYRO_INT1_FF_t;
2438 LSM6DS3_ACC_GYRO_INT1_WU_DISABLED = 0x00,
2439 LSM6DS3_ACC_GYRO_INT1_WU_ENABLED = 0x20,
2440} LSM6DS3_ACC_GYRO_INT1_WU_t;
2451 LSM6DS3_ACC_GYRO_INT1_SINGLE_TAP_DISABLED = 0x00,
2452 LSM6DS3_ACC_GYRO_INT1_SINGLE_TAP_ENABLED = 0x40,
2453} LSM6DS3_ACC_GYRO_INT1_SINGLE_TAP_t;
2464 LSM6DS3_ACC_GYRO_INT1_SLEEP_DISABLED = 0x00,
2465 LSM6DS3_ACC_GYRO_INT1_SLEEP_ENABLED = 0x80,
2466} LSM6DS3_ACC_GYRO_INT1_SLEEP_t;
2477 LSM6DS3_ACC_GYRO_INT2_IRON_DISABLED = 0x00,
2478 LSM6DS3_ACC_GYRO_INT2_IRON_ENABLED = 0x01,
2479} LSM6DS3_ACC_GYRO_INT2_IRON_t;
2490 LSM6DS3_ACC_GYRO_INT2_TILT_DISABLED = 0x00,
2491 LSM6DS3_ACC_GYRO_INT2_TILT_ENABLED = 0x02,
2492} LSM6DS3_ACC_GYRO_INT2_TILT_t;
2503 LSM6DS3_ACC_GYRO_INT2_6D_DISABLED = 0x00,
2504 LSM6DS3_ACC_GYRO_INT2_6D_ENABLED = 0x04,
2505} LSM6DS3_ACC_GYRO_INT2_6D_t;
2516 LSM6DS3_ACC_GYRO_INT2_DOUBLE_TAP_DISABLED = 0x00,
2517 LSM6DS3_ACC_GYRO_INT2_DOUBLE_TAP_ENABLED = 0x08,
2518} LSM6DS3_ACC_GYRO_INT2_DOUBLE_TAP_t;
2529 LSM6DS3_ACC_GYRO_INT2_FF_DISABLED = 0x00,
2530 LSM6DS3_ACC_GYRO_INT2_FF_ENABLED = 0x10,
2531} LSM6DS3_ACC_GYRO_INT2_FF_t;
2542 LSM6DS3_ACC_GYRO_INT2_WU_DISABLED = 0x00,
2543 LSM6DS3_ACC_GYRO_INT2_WU_ENABLED = 0x20,
2544} LSM6DS3_ACC_GYRO_INT2_WU_t;
2555 LSM6DS3_ACC_GYRO_INT2_SINGLE_TAP_DISABLED = 0x00,
2556 LSM6DS3_ACC_GYRO_INT2_SINGLE_TAP_ENABLED = 0x40,
2557} LSM6DS3_ACC_GYRO_INT2_SINGLE_TAP_t;
2568 LSM6DS3_ACC_GYRO_INT2_SLEEP_DISABLED = 0x00,
2569 LSM6DS3_ACC_GYRO_INT2_SLEEP_ENABLED = 0x80,
2570} LSM6DS3_ACC_GYRO_INT2_SLEEP_t;
Definition: LSM6DS3.h:135