MMA8452 sleep current

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MMA8452 sleep current

875 Views
takuya1
Contributor I

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

Labels (1)
0 Kudos
Reply
1 Reply

690 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

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.

0 Kudos
Reply