Hello.
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
readRegister(0x2A, &data);
writeRegister(0x2A, data & ~(0x01));
2. dynamic range setting (2G)
readRegister(0x0E, &XYZ_DATA);
CTRL_REG3_Data &= 0xFC;
writeRegister(0x0E, XYZ_DATA);
3. oversampling mode setting(SleepMode : Low Power, ActiveMode : Low Power)
readRegister(0x2B, &CTRL_REG2_Data);
CTRL_REG2_Data &= 0xE4;
CTRL_REG2_Data |= 0x1B;
writeRegister(0x2B,CTRL_REG2_Data);
4. automatic sleep and wake up setting
readRegister(0x2B, &CTRL_REG2_Data);
CTRL_REG2_Data |= 0x04;
writeRegister(0x2B, CTRL_REG2_Data);
5. automatic sleep timer count setting (five second)
writeRegister(0x29, 0x10);
6. interrupt enable setting (motion, automatic sleep and wake up enable)
writeRegister(0x2D, 0x84);
7. configuration setting (set auto sleep, wake up to INT1)
writeRegister(0x2E, 0x80);
8. wake up control setting (motion)
writeRegister(0x2C, 0x08);
9. sample rate setting (sleep : 12.5Hz, wake : 12.5Hz)
readRegister(0x2A, &CTRL_REG1_Data);
CTRL_REG1_Data &= 0x07;
CTRL_REG1_Data |= 0x68;
writeRegister(0x2A,CTRL_REG1_Data);
10. motion detection setting
writeRegister(0x15, 0xD8);
11. motion detection threshold setting ( switchable)
writeRegister(0x17, 0x01);
writeRegister(0x17, 0x02);
writeRegister(0x17, 0x03);
12. device counter setting (300ms/80ms=4)
writeRegister(0x18, 0x04);
13. active mode setting
readRegister(0x2A, &data);
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.
Regards,
Takuya
Hello Takuya-san,
I do not have enough time right now to try to reproduce your settings, but there is a good example illustrating the use of auto-wake/sleep mode available at:
https://community.nxp.com/docs/DOC-332453
Eventually you can also take a closer look at my example code at:
https://community.nxp.com/thread/318705
Hope it helps!
Best regards,
Tomas
PS: If this answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.