cancel
Showing results for 
Search instead for 
Did you mean: 

LSM6DSV Power Draw Too High

cspangler
Associate

Hello,

I am using the LSM6DSV in a very simple configuration.  I am finding that it does not power down properly after I have powered it up.  In normal operation I power it up by writing a value of 0x01 to address 0x10 (turns on accelerometor at 1.875Hz) and writing a value of 0x02 to address 0x11 (turns on gyroscope at 7.5Hz).  Then after taking some readings I power it down by writing a value of 0x0 to address 0x10 and a value of 0x0 to address 0x11. After I power it down I find that it still draws ~650uA of current.

Other than reading the conversion results at address 0x22-0x2D, the writes to addresses 0x10 and 0x11 are the only ones I do.

I have run a couple of experiments:

1. I omitted the writes to 0x10 and 0x11 when powering up and find that the power draw stays at or below a few uA.  This demonstrates to me that the power draw is coming from a mode the LSM6DSV is in rather than my MCU or other circuitry.

2. I explicitly wrote power down/disable values to the other registers just in case one of them was being turned on somehow.  But none of these made a difference.

0x0A = 0x0 //Disable fifo

0x0D = 0x0 //Disable interrupts

0x19 = 0x0 //Disable self-test and debug modes

0x63 = 0x8 //Disable embedded functions

0x01 = 0x4 //Global reset of the device

0x12 = 0x1 //Soft reset of the device

 

Any help is appreciated.  How do I get the device to power down after powering it up?  The only registers I access to power it up are 0x10 and 0x11.  Do I need to do something other than setting those two registers to power down mode?

Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions

I was able to determine that the error was on my end.  I was not calling the correct function in my code during the power down sequence and the registers were never being updated.  It is working now.  Thanks.

View solution in original post

3 REPLIES 3
Federica Bossi
ST Employee

Hi @cspangler ,

Your procedure to power down the LSM6DSV is correct.

After global reset (0x01 = 0x4) and soft reset (0x12 = 0x1), the device may require some time to stabilize. Verify if the device is stuck in a specific state by reading the STATUS_REG (0x1E).

In addition, after each register write, read back the register to confirm the value was correctly set.

If you continue to experience this issue, please contact your local FAE or open a ticket to OLS for direct support.

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.

I was able to determine that the error was on my end.  I was not calling the correct function in my code during the power down sequence and the registers were never being updated.  It is working now.  Thanks.

Hi @cspangler ,

I'm glad to hear that you've solved the problem.

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.