I am working on a development project using MMA8452, but I am facing the problem that the sleep current of MMA8452 doesn't go down.
Automatic sleep and wake up of MMA8452 functions are set, and the CPU also transitions to sleep based on the sleep interrupt signal from MMA8452.
However, the consumption current of MMA8452 doesn't fall after sleep.
I am doing the following configuration setting on the device.
1. standby mode setting
writeRegister(0x2A, data & ~(0x01));
2. dynamic range setting (2G)
CTRL_REG3_Data &= 0xFC;
3. oversampling mode setting(SleepMode : Low Power, ActiveMode : Low Power)
CTRL_REG2_Data &= 0xE4;
CTRL_REG2_Data |= 0x1B;
4. automatic sleep and wake up setting
CTRL_REG2_Data |= 0x04;
5. automatic sleep timer count setting (five second)
6. interrupt enable setting (motion, automatic sleep and wake up enable)
7. configuration setting (set auto sleep, wake up to INT1)
8. wake up control setting (motion)
9. sample rate setting (sleep : 12.5Hz, wake : 12.5Hz)
CTRL_REG1_Data &= 0x07;
CTRL_REG1_Data |= 0x68;
10. motion detection setting
11. motion detection threshold setting ( switchable)
12. device counter setting (300ms/80ms=4)
13. active mode setting
writeRegister(0x2A, data | 0x01);
Is there a cause for the sleep current not to fall in the above settings?
The board current at sleep is 235uA, but if you remove the MMA8452 from the board and put the CPU to sleep, the board current will drop to 5uA.