Ask about power consumtion of nrf52833 with esb_tx example

Hi Nordic support team.

I incharg project replace NRF24l01 by new design with nrf52833.

Using nRF5_SDK_17.0.2 and segger studio compiler.

I using esb_tx example, the application running well.

But it seem take so much power consumtion. i try to modify code in main function like this nothing to do only sleep mode like this.

int main(void)
{
    ret_code_t err_code;
    gpio_init();
    clocks_start();

    err_code = esb_init();
    APP_ERROR_CHECK(err_code);

    while (true)
    {
            __WFE();
            __SEV();
            __WFE();
    }

}

But when measure power consumtion i see that always 270uA. It happened the same eventhrough i commented //gpio_init() function

Can you help me check about that. i expect down to 25uA.

thank and best regards,

Parents
  • Wait a minute, I missed to see the obvious that you are starting the clocks here 
    clocks_start()

    normally you should not need to call clocks_start() until >1.5ms before you want to enter receive mode or transmit a packet,. You can then stop the clocks afterwards to save power, just ensure that if he is in prx mode, that he don't stop the clocks (or disable esb) immediately after receiving a packet (since that will indirectly affect the outgoing ack). For the ptx you can stop clocks if you don't want to transmit further packets after receiving the ack (or until next packet).

Reply
  • Wait a minute, I missed to see the obvious that you are starting the clocks here 
    clocks_start()

    normally you should not need to call clocks_start() until >1.5ms before you want to enter receive mode or transmit a packet,. You can then stop the clocks afterwards to save power, just ensure that if he is in prx mode, that he don't stop the clocks (or disable esb) immediately after receiving a packet (since that will indirectly affect the outgoing ack). For the ptx you can stop clocks if you don't want to transmit further packets after receiving the ack (or until next packet).

Children
  • hi,

    Sorry for not check comment //clocks_start(); function.

    It exactly issue come from HFCLK in clock_start().
    Now it reduce to 30-47uA with our application build on esb_tx.

    But it seem much power consumtion with battery life time. My target smaller 20uA

    Can i reduce more by manage NRF_POWER->RAM.

    Can you share me experience for process NRF_POWER->RAM: init, turn off, turn on function, where to cal it,..

    or show me example to apply this controling NRF_POWER->RAM.

    which mode(Sysrem off/Sleep/Idle Modes) can using turn off RAM power?

    I can refer to "esb_lowpower_ptx", but i can not understand clearly progress running.

  • Quangca said:
    Can i reduce more by manage NRF_POWER->RAM.

    Yes you should be able reduce further by disabling the RAM sections but not very significantly, maybe a further 1uA as mentioned here. In the nRF5SDKv17.1 you can look at the RAM retention example to see how you can do that.

    if you have high accuracy enabled in GPIOTE_CONFIG_IN_SENSE_TOGGLE in the gpio_init , then it might also effect the current consumption by keeping clocks active.

Related