AnsweredAssumed Answered

MMA8452 sleep current

Question asked by Takuya Kawakami on Jul 24, 2019


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;

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;

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.