cancel
Showing results for 
Search instead for 
Did you mean: 

LIS2DW12 high current consumption

APaan.1
Associate II

Hi,

We have STMicroelectonics LIS2DW12 accelerometer on our custom board which has nRF9160 SiP from Nordic Semiconductor and we are using the nRF Connect SDK which runs on Zephyr OS. Here are the LIS2DW12 driver codes of the nRF Connect SDK / Zephyr: https://github.com/nrfconnect/sdk-zephyr/tree/v2.4.99-ncs1/drivers/sensor/lis2dw12

The configuration of the LIS2DW12:

Interrupt pin: INT2

Accel range / full scale: 2G

ODR: 1.6Hz

Power mode: Low Power Mode 1

Low noise: Disabled

Stationary/motion: Enabled

VDD & VDD_IO: 3.0V

0693W00000AMew4QAD.png 

Our problem is that our board is consuming a lot of power when we are using the LIS2DW12. If we fully disable LIS2DW12, the consumption is about 20µA and when it's enabled the consumption is around 200uA.

We read all the registers after the trigger is set and they seem to be fine:

reg: d 		dataDEC: 128 	dataBIN: 1000 0000
reg: e 		dataDEC: 253 	dataBIN: 1111 1101
reg: f 		dataDEC: 68 	dataBIN: 0100 0100
reg: 20 	dataDEC: 16 	dataBIN: 0001 0000
reg: 21 	dataDEC: 12 	dataBIN: 0000 1100
reg: 22 	dataDEC: 0 	dataBIN: 0000 0000
reg: 23 	dataDEC: 0 	dataBIN: 0000 0000
reg: 24 	dataDEC: 64 	dataBIN: 0100 0000
reg: 25 	dataDEC: 0 	dataBIN: 0000 0000
reg: 26 	dataDEC: 253 	dataBIN: 1111 1101
reg: 27 	dataDEC: 33 	dataBIN: 0010 0001
reg: 28 	dataDEC: 32 	dataBIN: 0010 0000
reg: 29 	dataDEC: 34 	dataBIN: 0010 0010
reg: 2a 	dataDEC: 32 	dataBIN: 0010 0000
reg: 2b 	dataDEC: 8 	dataBIN: 0000 1000
reg: 2c 	dataDEC: 96 	dataBIN: 0110 0000
reg: 2d 	dataDEC: 53 	dataBIN: 0011 0101
reg: 2e 	dataDEC: 0 	dataBIN: 0000 0000
reg: 2f 	dataDEC: 0 	dataBIN: 0000 0000
reg: 30 	dataDEC: 0 	dataBIN: 0000 0000
reg: 31 	dataDEC: 0 	dataBIN: 0000 0000
reg: 32 	dataDEC: 0 	dataBIN: 0000 0000
reg: 33 	dataDEC: 0 	dataBIN: 0000 0000
reg: 34 	dataDEC: 65 	dataBIN: 0100 0001
reg: 35 	dataDEC: 59 	dataBIN: 0011 1011
reg: 36 	dataDEC: 0 	dataBIN: 0000 0000
reg: 37 	dataDEC: 97 	dataBIN: 0110 0001
reg: 38 	dataDEC: 16 	dataBIN: 0001 0000
reg: 39 	dataDEC: 0 	dataBIN: 0000 0000
reg: 3a 	dataDEC: 0 	dataBIN: 0000 0000
reg: 3b 	dataDEC: 0 	dataBIN: 0000 0000
reg: 3c 	dataDEC: 0 	dataBIN: 0000 0000
reg: 3d 	dataDEC: 0 	dataBIN: 0000 0000
reg: 3e 	dataDEC: 0 	dataBIN: 0000 0000
reg: 3f 	dataDEC: 32 	dataBIN: 0010 0000

We checked the GPIO configurations of all of the pins connected between LIS2DW12 and nRF9160. On nRF9160 side, SDA and SCL pins have internal pull-ups and also INT1 and INT2 pins have no pull-ups. We tried to change the pull configuration for all of those pins and found that the defaults are the correct ones.

Also, CS pull-up on LIS2DW12 side is connected by default. We tried to disconnect that pull-up and didn't notice any big change there on power consumption.

We tried to find help from the forum and found a quite similar thread: https://community.st.com/s/question/0D53W00000aqbhi/lis2dw12-activityinactivity-power-consumption-too-high-when-inactive but that didn't help us.

Do you have any ideas how to get the power consumption down? Is the schematics and all of the configurations okay or have we missed something?

Thank you!

12 REPLIES 12
niccolò
ST Employee

Hi @APaan.1​ ,

I'm sorry, I thought I got it this time =(

may I ask you to try to set to 1 bit CS_PU_DISC in CTRL2 (21h) and check if power consumption changes?

this option may help if there are problems on the hw.

another check could be to measure the power consumption (both with ODR != 0 and ODR = 0) and then disable I2C by setting to 1 bit I2C_DISABLE in register CTRL2.

thank you for your patience.

Niccolò

APaan.1
Associate II

Hi,

"may I ask you to try to set to 1 bit CS_PU_DISC in CTRL2 (21h) and check if power consumption changes?"

We tried changing it and saw no change in power consumption

We cut VDD-trace to LIS2DW12 on our board and attached the ammeter directly to it and the average consumption was 0,52µA which I assume is correct as we are using 3.0V. This makes me think the LIS2DW12 is set up correctly but instead there's something wrong on the nRF9160 side.

Do you have any ideas what could be causing this? When we configure LIS2DW12, the nRF9160 starts consuming too much power.

Hi @APaan.1​ ,

as I wrote before, it seems to me that the problem is that you have a current flowing in static conditions, that would lead to excessive power consumption.

I would have blamed the internal configuration of the nRF9160, but you said you already checked it =\

maybe some internal pull-downs to be reconfigured?

maybe you configured 2 I2C ports instead of one, and other pins are driven high/low in other parts of the board?

this would explain why the consumption is high only when enabling the LIS2DW12

I would suggest to find the pins that consumes so much power to further pin down the actual position of the problem, and then check if the pins linked to that place are configured correctly.

but I think that nordic's assistance can be more helpful than me in this case =)

Niccolò