This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Current Consumption of nRF52832

Hi,

AFAIK, the peripherals on the nRF52832 need to be explicitly enabled. If that is the case, what would be the current consumption of the chip if I program it using the below code:

#include "nrf.h"
#include <stdint.h>
#include <stdbool.h>
int main(void)
{}

I measured the current using a FLUKE 17B multimeter and it read a constant 5.47 mA. The below are my queries:

  1. Is the above current draw expected?
  2. Can someone give me a rough breakdown of the current consumption?
  3. If this is not expected, could someone point to what I might be doing wrong here?

If the use the below code:

#include "nrf.h"
#include <stdint.h>
#include <stdbool.h>
int main(void)
{
NRF_POWER->SYSTEMOFF = 1;
}

the current consumption drops to < 2 uA, which is expected.

Just to rule out the obvious, I have reset the board by power cycling and have disconnected the J-link debugger while measuring the current.

Additional Info: Using SES 3.34a with J-link Segger programmer/Debugger.

Thank you for reading.

Arish  

Parents
  • Hey arish,

    What you are measuring is the CPU idling and powered by LDO (see CPU performance). You can write the following to put the CPU to sleep and turn on the DCDC regulator (DCDC components must be available).

    #include "nrf.h"
    #include <stdint.h>
    #include <stdbool.h>
    int main(void)
    {
        NRF_POWER->DCDCEN = 1;  // Enable DCDC
        while(1)
        {
            __WFE();
            __SEV();
            __WFE();    // Puts the CPU to sleep
        }
    }

    Cheers,

    Håkon.

  • Hi Håkon,

    Thank you for your prompt response. I am aware of the 'System ON' sleep mode you suggested and have been using it successfully :) I have also used the DCDC mode previously and have further reduced the CPU idling current to 2.95 mA. What I am interested in is the current consumed when the chip comes out of the sleep mode. I feel that even with DCDC enabled, 2.95 mA (idle current) is on the higher side with no softdevice programmed. I haven't worked with ARM Core M4 device before but saw an idle current of ~200 uA in one of the posts on this forum. 

    Just curious, shouldn't the System ON sleep code be the below:

    #include "nrf.h"
    #include <stdint.h>
    #include <stdbool.h>
    int main(void)
    {
        NRF_POWER->DCDCEN = 1;  // Enable DCDC
        while(1)
        {
            __SEV();
            __WFE();
            __WFE();    // Puts the CPU to sleep
        }
    }

    Arish

Reply
  • Hi Håkon,

    Thank you for your prompt response. I am aware of the 'System ON' sleep mode you suggested and have been using it successfully :) I have also used the DCDC mode previously and have further reduced the CPU idling current to 2.95 mA. What I am interested in is the current consumed when the chip comes out of the sleep mode. I feel that even with DCDC enabled, 2.95 mA (idle current) is on the higher side with no softdevice programmed. I haven't worked with ARM Core M4 device before but saw an idle current of ~200 uA in one of the posts on this forum. 

    Just curious, shouldn't the System ON sleep code be the below:

    #include "nrf.h"
    #include <stdint.h>
    #include <stdbool.h>
    int main(void)
    {
        NRF_POWER->DCDCEN = 1;  // Enable DCDC
        while(1)
        {
            __SEV();
            __WFE();
            __WFE();    // Puts the CPU to sleep
        }
    }

    Arish

Children
Related