PebbleOS
Loading...
Searching...
No Matches
Data Structures | Macros
LSM6DSO

ST LSM6DSO accelerometer driver board configuration. More...

Data Structures

struct  LSM6DSOState
 LSM6DSO driver state, owned by the driver. More...
 
struct  LSM6DSOConfig
 LSM6DSO board configuration. More...
 

Macros

#define LSM6DSO_SAMPLE_SIZE_BYTES   6
 Accelerometer sample size in bytes (X, Y, Z, 16 bits each).
 
#define LSM6DSO_FIFO_WORD_SIZE_BYTES   7
 FIFO word size in bytes as read from FIFO_DATA_OUT (tag byte plus sample).
 
#define LSM6DSO_FIFO_THRESHOLD   128
 FIFO watermark in samples (the FIFO holds up to 512).
 
#define LSM6DSO_FIFO_SIZE   LSM6DSO_FIFO_THRESHOLD
 Read buffer capacity in samples, sized to the watermark.
 

Detailed Description

ST LSM6DSO accelerometer driver board configuration.


Data Structure Documentation

◆ LSM6DSOState

struct LSM6DSOState

LSM6DSO driver state, owned by the driver.

Data Fields
bool double_tap_detection_enabled Double tap detection requested.
bool initialized Driver initialized.
uint32_t int1_period_ms Expected INT1 period in milliseconds.
bool int1_requeued The INT1 servicing pass was requeued while the pad stayed high.
RegularTimerInfo int1_wdt_timer Watchdog timer detecting a stalled INT1 stream.
RtcTicks last_fifo_read_tick Time of the last FIFO read.
uint32_t num_recoveries Number of stream recoveries performed.
uint16_t num_samples Samples per FIFO batch requested by the subscribers, 0 when not streaming.
uint8_t raw_sample_buf[DCACHE_ROUND_UP(LSM6DSO_FIFO_SIZE *LSM6DSO_FIFO_WORD_SIZE_BYTES)] Raw FIFO read buffer, filled with i2c_read_register_block_dma().
bool recovery_pending A stream recovery is queued.
bool rotated Watch mounted rotated 180 degrees: X and Y are inverted.
uint32_t sampling_interval_us Sampling interval in microseconds, 0 when not sampling.
bool shake_detection_enabled Shake detection requested.
uint8_t shake_stuck_passes Consecutive watchdog passes with INT1 stuck high in shake-only mode.
uint8_t wk_ths_curr Current wake-up (shake) threshold register value.
bool wu_active Wake-up condition currently asserted, to report a shake once per assertion.

◆ LSM6DSOConfig

struct LSM6DSOConfig

LSM6DSO board configuration.

Data Fields
int8_t axis_dir[3] Direction of each watch axis: 1 or -1.
uint8_t axis_map[3] Sensor axis feeding each watch axis (0: X, 1: Y, 2: Z).
I2CSlavePort i2c I2C device.
ExtiConfig int1 INT1 interrupt line.
InputConfig int1_in INT1 input, to read back the pad level.
LSM6DSOState * state Driver state.

Macro Definition Documentation

◆ LSM6DSO_FIFO_SIZE

#define LSM6DSO_FIFO_SIZE   LSM6DSO_FIFO_THRESHOLD

Read buffer capacity in samples, sized to the watermark.

◆ LSM6DSO_FIFO_THRESHOLD

#define LSM6DSO_FIFO_THRESHOLD   128

FIFO watermark in samples (the FIFO holds up to 512).

◆ LSM6DSO_FIFO_WORD_SIZE_BYTES

#define LSM6DSO_FIFO_WORD_SIZE_BYTES   7

FIFO word size in bytes as read from FIFO_DATA_OUT (tag byte plus sample).

◆ LSM6DSO_SAMPLE_SIZE_BYTES

#define LSM6DSO_SAMPLE_SIZE_BYTES   6

Accelerometer sample size in bytes (X, Y, Z, 16 bits each).