11-09-2020 08:07 PM
Hi,
I am using the BMA490L and would like to use low power mode with an ODR of 25Hz and no averaging. On the datasheet, it says that if I do this, I should be consuming only 8uA of current, however when I try to go to low power mode I actually end up consuming around 70uA of current. What are the correct instructions, sequence of instructions, and delays for me to achieve this 8uA low current consumption. I would like to store the data in the FIFO buffer and trigger a watermark interrupt to read the data from low power mode.
Solved! Go to Solution.
11-10-2020 03:00 AM
Hello,
Why you got such high current consumption was two reason.
First, you didn't enable advanced power mode, please enable advanced power mode before running your application.
Second, the best current consumption in our datasheet is optimal test case, not for FIFO case.
Unfortuantely, we don't provide official example code, but I made a FIFO example in quick as the attached file.
I can't measure exactly, but the current consumption is around 10uA.
You might optimize more, but could be good start point 🙂
Key point is I put rslt = bma490l_set_advance_power_save(BMA490L_ENABLE, &bma490l_dev); end of my setup function.
You also can check page 16 in our datasheet regarding FIFO in power mode.
Thanks,
11-10-2020 03:10 AM
Thanks for the reply. However, I believe I did enable the advanced power mode I believe. Below are all the values I initialize the registers with. I initialize them in the same order and have a 1 second gap between writing to each register. Am I using the wrong values or doing something else wrong?
FIFO_WTM_0[0] = 0x46;
FIFO_WTM_0[1] = 0b11000000;
FIFO_WTM_1[0] = 0x47;
FIFO_WTM_1[1] = 0b00000011;
FIFO_CONFIG_0[0] = 0x48;
FIFO_CONFIG_0[1] = 0b00000000;
FIFO_CONFIG_1[0] = 0x49;
FIFO_CONFIG_1[1] = 0b01000000;
INT_MAP_DATA[0] = 0x58;
INT_MAP_DATA[1] = 0b00000010;
INT1_IO_CTRL[0] = 0x53;
INT1_IO_CTRL[1] = 0b00001010;
ACC_CONF[0] = 0x40;
ACC_CONF[1] = 0b00000110;
PWR_CONF[0] = 0x7C;
PWR_CONF[1] = 0x03;
PWR_CTRL[0] = 0x7D;
PWR_CTRL[1] = 0x04;
11-10-2020 03:20 AM
Hello,
It might be wrong sequence.
Please switch 7C, 7D and test it in your code, but still you have problem, then test with my code.
The API is our BMA490's code, so it's highly reliable.
Thanks,
11-10-2020 03:36 AM
Hi, I am still having the issue. I'm not sure how to use your code because I am testing the device out on my custom board build on top of the BGM220S SoC (by Silabs).