cancel
Showing results for 
Search instead for 
Did you mean: 

[LIS2DUXS12] FIFO: one xyz sample lost every each 1055 samples

tomny
Associate II

Hi,

I'm using the LIS2DUXS12 in FIFO Stream mode with DEC_TS_32. FIFO watermark is set to 64. Looks like every ~17 FIFO reads (~1055 XL samples), exactly 1 accelerometer sample is lost. The pattern is consistent and repeatable.

Each FIFO read of 64 entries normally contains 62 XL samples + 2 timestamp tags. However, every 17th read contains 63 XL + 1 timestamp tag. Looks like before this batch with 63 XL samples, there is 1 XL sample gap in data.

I use only the timestamp present in the FIFO batch to calculate timestamp for each sample. And with that approach samples in that FIFO batch aligns with next FIFO batch exactly - no gaps, no overwriting, fixed period. 

So despite the fact that this FIFO batch contains one XL sample more than the other, there's still a gap in data. 


Configuration:
- ODR: 200 Hz (HP mode)
- FIFO mode: Stream (continuous)
- bdr_xl: ODR
- dec_ts: DEC_TS_32
- xl_only_fifo: 1
- FIFO watermark: 64

I couldn't find errata for LIS2DUXS12. 


Questions:
1. Is this a known hardware behavior — does the TS tag replace (instead of accompany) the triggering XL sample at certain FIFO alignment boundaries?
2. Is there a recommended workaround? 

1 REPLY 1
Federica Bossi
ST Employee

Hi @tomny ,

FIFO watermark takes into consideration also timestamps batching, the XL_ONLY_FIFO bit avoids to store the other signals like temperature or Qvar.

So you need to modify FIFO watermark to accommodate the reading of both XL and TS. For example: based on your description, reading always 2 TS you will read for each TS (tag + timestamp) 8 times the 4 XL data (tag + xyz) --> FIFO watermark: 68

Now, you are forgetting to read 4 sample each FIFO read, so every 16 times you have a FIFO read with only 1 TS.

 

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.