cancel
Showing results for 
Search instead for 
Did you mean: 

accelerometer sensor current consumption

Akuma.6
Associate III

Hi,

I am working on the lis2dh12 interface to MCU and getting the data. The below observations I found in our device.

1. Getting x,y,z data

2. The current consumption is taking 120ua.

3. When I call the power down (Write LIS_CTRL_REG1, 0x00) it is carrying 10ua.

4. I am using an interrupt pin for fall alert purposes. When I use to declare an interrupt line and check the threshold impact current is too high. If I use power down (Write LIS_CTRL_REG1, 0x00)  after reading and the next poll wakes up (Write LIS_CTRL_REG1, 0x47) then I lost my interrupt means didn't get interrupted yet at all. Without a power-down command (i.e Write LIS_CTRL_REG1, 0x47), a fall interrupt is coming.

How to handle and minimize my current. Please check my code flow defined all the registers and suggest me.

#define SLAVE_ADDRESS_I2C   0x19

fnAccel_Register_Write(LIS_CTRL_REG0, 0x10); // Disable the internal pull-up on the SDO/SA0 pin

fnAccel_Register_Write(LIS_CTRL_REG1, 0x47); // Enable X/Y/Z axes & ODR = 50Hz

fnAccel_Register_Write(LIS_CTRL_REG2, 0x00); // High-pass filter disabled

fnAccel_Register_Write(LIS_CTRL_REG3, 0x40); // Interrupt activity 1 driven to INT1 pad

fnAccel_Register_Write(LIS_CTRL_REG4, 0x10); //0x10=4g

fnAccel_Register_Write(LIS_CTRL_REG5, 0x08); // Interrupt 1 pin latched

fnAccel_Register_Write(LIS_INT1_THS, 0x15); // Threshold

fnAccel_Register_Write(LIS_INT1_DURATION, 0x10); // Duration time

fnAccel_Register_Write(LIS_INT1_CFG, 0x95); // Configure free-fall recognition

Our program sequence:

---------------------------------------------------------------------------------------------------------------------------------------

0. Write LIS_CTRL_REG0

1. Write LIS_CTRL_REG1

2. Write LIS_CTRL_REG2

3. Write LIS_CTRL_REG3

4. Write LIS_CTRL_REG4

5. Write LIS_CTRL_REG5

6. Write REFERENCE

7. Write LIS_INT1_THS

8. Write LIS_INT1_DURATION

9. Write LIS_INT1_CFG

10. Poll INT1 pad; if INT1 = 0 then go to fall detection code

11. Read INT1_SRC register

12. Go to 10

void fnLIS_PowerDown_Mode(void)

{

               fnAccel_Register_Write(LIS_CTRL_REG1, 0x00);

}

void fnLIS_PowerOn_Mode(void)

{

               fnAccel_Register_Write(LIS_CTRL_REG1, 0x47);

}             

---------------------------------------------------------------------------------------------------------------------------------------

Please check the above flow and do the needful. What is the best power consumption using this sensor?

Regards,

Kumar

1 REPLY 1
Akuma.6
Associate III

Hi ST Team,

No response from anyone. ​Why ST couldn't have responded to the questions immediately why this much delay?

Please go through my below concern and let us know your suggestions and support.​

Regards,

Kumar​