5 Replies Latest reply on Aug 19, 2019 12:17 AM by BragadeeshV_41

    cy8cmbr3110 deep sleep current




      I made a average current measurement while the mcu is sleeping and the result was:

      Peak to peak: 2.57mA / Average: 783µA / Standard Dev: 873µA / Max: 2.79mA / Min 216µA


      I got a lot of spikes in the current graph.


      To my set up:

      MCU: cy8cmbr3110

      Source voltage: 3.3V

      All 10 sensor are enabled. The second as guard

      I set him to sleep in the register CTRL_CMD(0x86) whit the CMD_OP_CODE 7.


      How can I reduce the average current dramatically and why get I such high spikes?

        • 1. Re: cy8cmbr3110 deep sleep current

          Hi AdSe_2809606,


          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:





          • 2. Re: cy8cmbr3110 deep sleep current

            Hi BragadeeshV_41,

            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;

                                                        = 0x03;

            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;

                                                        = 0x00;

                                                        = 0x00;

            REG_DEVICE_CFG2          = 0x0A; // enable guard

            • 3. Re: cy8cmbr3110 deep sleep current

              Hi AdSe_2809606,


              This is as expected and it is the transition between different modes that appear as spikes in current consumption.




              • 4. Re: cy8cmbr3110 deep sleep current

                Hi BragadeeshV_41,


                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.



                • 5. Re: cy8cmbr3110 deep sleep current

                  Hi AdSe_2809606,


                  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.