cancel
Showing results for 
Search instead for 
Did you mean: 

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

loremino
Associate

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). 

 
1 REPLY 1
Federica Bossi
ST Employee

Hi @loremino ,

Unfortunately, when you enable ultralow-power mode, both the FIFO depth and the batch data rate are unavailable.

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.