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

Need to put nrf in low power mode

Hi,
We are using nrf52832 micro controller and our device is consuming about 14mA current right now.so i have 2 querries that 
1. How can we put our nrf into low power mode ?
2. How to check whether the nrf is in low power mode ?
Also we are gpio 25 as external interrupt to wake the device up which is connected to a motion sensor.
Thanks
Parents
  • Hi,

    14mA is very high average current, and is normaly only seen when the radio is enabled in TX or RX mode. How are you measuring the current consumption? 

    1. If the softdevice is enabled, you can enter system on sleep mode and system off deep sleep mode, using the functions sd_app_evt_wait and sd_power_system_off. If not using softdevice, you can use __WFE() and NRF_POWER->SYSTEMOFF = 1;
    2. You should measure the current consumption, and compare this towards the current consumption in the various power modes. Note that other peripherals can be enabled, increasing the current consumption in sleep modes. If the chip is not in sleep mode, the CPU will be active and consumpe more than 3mA

    Best regards,
    Jørgen

     

  • Hi Jorgen,

    I am trying to do exactly the same.

    I am using SDK 12.3.0, Softdevice 132.

    I would like to put the processor in sleep mode to reduce current consumption. 

    As you mentioned when soft device is enabled, using the functions sd_app_evt_wait will put the processor into sleep mode where it will consume less current. Which is not happening we are measuring 3.15mA. 

    Actually our application is battery operated. It is mandate to increase the battery life by enabling the sleep mode or even we are ready to reconfigure the clock to 32,768 Hz also. 

    But with reconfigure the clock the low frequency clock by stopping the high frequency clock, we are measuring 5.7mA. We are not sure whether the system clock is switched from High Frequency clock to low frequency clock.

    Below are the methods we tried to switch the clock frequency so the processor can be put in ultra low power mode.

    But we are not getting results as mentioned in datasheet.

    Method 1: 

                    NRF_CLOCK->TASKS_HFCLKSTOP = 1; 

                    // Set the external high frequency clock source to 32 MHz

                    //NRF_CLOCK->XTALFREQ = 0x00008000; 

                    // Start the external high frequency crystal

                    NRF_CLOCK->EVENTS_LFCLKSTARTED = 0;

                    NRF_CLOCK->TASKS_LFCLKSTART = 1;

     

                    while(NRF_CLOCK->EVENTS_LFCLKSTARTED == 0) {}

      

    Method 2 : 

        ret_code_t err_code = nrf_drv_clock_init();

        APP_ERROR_CHECK(err_code); 

        nrf_drv_clock_lfclk_request(NULL);

    
    

    Kindly review and share your comments. I need your support on this.

    Thanks 

    ,

    Chinnasamy.

  • Can you please post your issue in a new question? This sounds like something that would require some debugging, so posting it in a new question will be better to avoid spamming this question with comments. One of our support engineers will help you with your request as soon as possible.

Reply Children
No Data
Related