cancel
Showing results for 
Search instead for 
Did you mean: 

[LIS2DUXS12] BDR_XL[2:0] and 2xFIFO in ultralow power mode

loremino
Visitor

Hello,

I am trying to use an accelerometer LIS2DUXS12 in ultralow power mode using the FIFO with a threshold. To initialize it, I configure the registers using the driver's functions in this order:

  • sw reset
  • init set
  • fifo_mode_set (operation = LIS2DUX12_BYPASS_MODE to reset the FIFO, 
    store = LIS2DUX12_FIFO_1X and xl_only = 1)
  • fifo_batch_set (dec_ts = LIS2DUX12_DEC_TS_OFF and bdr_xl = LIS2DUX12_BDR_XL_ODR)
  • fifo_mode_set (operation = LIS2DUX12_FIFO_MODE, store = LIS2DUX12_FIFO_1X and xl_only = 1)
  • fifo_watermark_set
  • fifo_stop_on_wtm_set
  • pin_int2_route_set
  • mode_set

I use odr=25Hz ULP, fs = 2g.
Everything works fine as long as I set

store = LIS2DUX12_FIFO_1X

and 

bdr_xl = LIS2DUX12_BDR_XL_ODR

but as soon as I add a divider to BDR (for example I set bdr_xl = LIS2DUX12_BDR_XL_ODR_DIV_2), the FIFO remains empty forever.

Same result if I use

store = LIS2DUX12_FIFO_2X instead of store = LIS2DUX12_FIFO_1X.

I read the number of elements in FIFO after a timeout with lis2dux12_fifo_data_level_get(..)

I tried also with 3Hz ULP and the outcome is the same, so I am wondering if ultralow power mode prevents the use of FIFOx2 and/or BDR dividers, or if something is missing in my configuration. There is nothing regarding this in the datasheet and I can't find any examples.

Could someone please help?

Edit: I am using LIS2DUX12 driver even if I actually have a LIS2DUXS12 (for some project reasons), assuming nothing changes for what I am trying to do here (and it shouldn't looking at the code and datasheet). 

 
0 REPLIES 0