2025-10-24 11:57 AM
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.
Solved! Go to Solution.
2025-10-28 8:50 AM
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.
2025-10-28 7:32 AM
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.
2025-10-28 8:50 AM
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.
2025-10-28 8:51 AM
Hi @cspangler ,
I'm glad to hear that you've solved the problem.