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 10:20 PM
Hello,
I believe that BGM220S Soc is large enough to migrate our API. I highly recommend to use it because that is easy debug for you.
I think you didn't try with my code.
We have API and examples in our github, and easy to migrate it. You just need to put your write, read, delay functions.
https://github.com/BoschSensortec/BMA490L-Sensor-API
But, anyway, for test below configuration should work. Please keep in mind that this is only test purpose.
We highly recommend to implement our API.
// Enable Accelrometer
if (!writeRegister(0x7D, 0x04))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
// Test with 25Hz
// Average mode, no sampling
if (!writeRegister(0x40, 0x06))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
if (!writeRegister(0x7C, 0x00))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
if (!writeRegister(0x48, 0x00))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
if (!writeRegister(0x49, 0x00))
{
// NACK is received.
return false;
}
delay(100);
if (!writeRegister(0x49, 0x40))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
// INT MAP - FIFO WTM
if (!writeRegister(0x58, 0x02))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
// Watermark - 120
if (!writeRegister(0x46, 0x78))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
// Watermark - 120
if (!writeRegister(0x47, 0x00))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
// Setup interrupt pin
if (!writeRegister(0x53, 0x0A))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
if (!writeRegister(0x7C, 0x03))
{
// NACK is received.
return false;
}
delayMicroseconds(2);
Thanks,
11-12-2020 04:54 AM
Hi Minhwan, I hope you are doing well. I had several questions regarding using the BMA490L API with my BGM220S SoC from Silabs. I was wondering if it was possible for you to join a short Zoom call with me so I can go over these quiickly with you and proceed? Thank you, Venkat
07-20-2021 03:15 AM
This issue was clear after BMA490L API implementation.