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

nRF58122 consuming 1.15mA in system sleep mode continuosly

Hi,

I am using nRF51822 controller for my development. I implemented the system sleep mode as below. for (;;)

{ power_manage(); }

void power_manage(void) { uint32_t err_code = sd_app_evt_wait(); APP_ERROR_CHECK(err_code); }

uint32_t sd_app_evt_wait(void) { // Use directly __WFE and __SEV macros since the SoftDevice is not available. // Wait for event. __WFE();

// Clear Event Register.
__SEV();
__WFE();

return NRF_SUCCESS;

}

Can you please let me know why it is consuming 1.15 mA continuously.

Below are the development version tools.

SD: S110(7.0.0) SDK:6.1.0 controller: nRF51822(32kb RAM variant) Adverting interval :1 Sec.

Regards, Anand

Parents
  • power_manage is only a function that will make CPU to go to sleep and wait for events. It will not power manage anything on the nRF51 chip automatically. Your device definitely seems to have few peripherals active even when the CPU is in sleep and hence the clocks they are using are running. Check the power settings of all peripherals that you are using in your application. By the way,

  • Hi Aryan,

    I commented the function uART_init(definition posted below) in my application and I took the measurement , Now the average power consumption is about 60 MicroAmp. I think the UART was drawing the more current.

     static void uart_init(void)
    

    { /**@snippet [UART Initialization] */ simple_uart_config(RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);

     NRF_UART0->INTENSET = UART_INTENSET_RXDRDY_Enabled << UART_INTENSET_RXDRDY_Pos;
    
     NVIC_SetPriority(UART0_IRQn, APP_IRQ_PRIORITY_LOW);
     NVIC_EnableIRQ(UART0_IRQn);
     /**@snippet [UART Initialization] */
    

    }

    Regards, Anand

Reply
  • Hi Aryan,

    I commented the function uART_init(definition posted below) in my application and I took the measurement , Now the average power consumption is about 60 MicroAmp. I think the UART was drawing the more current.

     static void uart_init(void)
    

    { /**@snippet [UART Initialization] */ simple_uart_config(RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);

     NRF_UART0->INTENSET = UART_INTENSET_RXDRDY_Enabled << UART_INTENSET_RXDRDY_Pos;
    
     NVIC_SetPriority(UART0_IRQn, APP_IRQ_PRIORITY_LOW);
     NVIC_EnableIRQ(UART0_IRQn);
     /**@snippet [UART Initialization] */
    

    }

    Regards, Anand

Children
No Data
Related