Whenever the device comes to active mode, the buttons are scanned and the current consumption increases. (This maybe the spikes that you are observing).
When the device goes to sleep mode / look for touch mode/ look for proximity mode, the current consumption decreases.
If possible please share your current waveform so that we can provide our comment on it.
Please refer to the section 7. Low-Power Design Considerations in MBR 3 design guide for information on how to reduce power consumption:
Thanks for your response.
the rectangle is a measurement. Otherwise he should be in sleep mode.
I use the default config and only change this:
REG_SCRATCHPAD0 = MAGIC_WORD;
REG_SENSOR_EN = 0xFB;
REG_SPO_CFG = 0x11; // enabled as capacitive sensors
REG_CTRL_CMD = 0x07; //go to sleep
REG_CTRL_CMD = 0x02; // save config
REG_CTRL_CMD = 0xFF; //reset device
REG_SENSITIVITY0 = 0x00;
REG_DEVICE_CFG2 = 0x0A; // enable guard
I set it to sleep with the REG_CTRL_CMD so he should only wait for a I2c address match.
So why should there be a transition between different modes and which modes?
And how can I prevent it from doing so?
My goal is to get a deep sleep current of 2.5µA, which is advertised in the data sheet.
Once a deep sleep command is issued, the device will be put to deep sleep mode. ie sensor scanning is stopped and only the I2C block is enabled to look for waking up due to I2C address match. There won't be any transition to any other modes.
Can you please ensure the following:
1. There aren't any I2C address match events occurring from the host side that is causing the device to wake up from deep sleep.
2. Please check if the power supply is stable and if the decoupling capacitors are in place as per recommendations.
3. It looks like your device is waking up from deep sleep during specific intervals. Can you please let us know the period?
4. When the device is in deep sleep mode, none of the buttons are supposed to work. Can you please touch the buttons and check if they are not responsive?
5. Also check for the Host interrupt line and see if there is any interrupt occurring in those lines during deep sleep. Ideally there shouldn't be any such interrupts occurring in deep sleep.
6. Finally, ensure that you have entered the correct opcode 0x07 in the CTRL_CMD (0x86) register.
7. Please check if this issue is occurring with most of the boards or only few boards.