I want to reduce power consumption

I am developing with nRF52832.
In addition to the main loop, 4 types of application timer interrupts are running.
If you want to reduce power consumption, in the main loop
for (;;)
{
  __WFE();
  __SEV();
  __WFE();
}
should I do?

Parents
  • Hi Hiroyasu, 
    I assume you are using nRF5 SDK. 

    Could you be more specific on what you want to ask ? 


    Calling  

    __WFE();
    __SEV();
    __WFE();

    In the main loop can put the CPU to sleep (SystenON Idle) hence reduce power consumption. 

    If you use our power management library you can call nrf_pwr_mgmt_run() instead. 

  • Dear Hung Bui

    Yes I am using the SDK.
    with other questions
    __WFE();
    __SEV();
    __WFE();
    Then the power consumption does not drop,
    __SEV();
    __WFE();
    __WFE();
    I found that it fell.

    It is now about 2.5mA.
    I would like to know if there is a way to reduce power consumption.
    However, I want application_timer and BLE advertising to work.

  • Hi Hiroyasu, 

    When you use : 
    __SEV();
    __WFE();
    __WFE();

    what's the current consumption ? 

    2.5mA doesn't seem to be low current consumption. When the CPU is sleeping and if there is no other peripheral is running it should be around 2-3 uA not mA. But it depends on how often do you wake up from the interrupt. 
    I would suggest to use our power profiler kit  to measure the power consumption. You can visualyze the power consumption and see how exactly the current is draw. 

    In most of our examples we use 
    __WFE();
    __SEV();
    __WFE();

    As you can see in our pwr_mgmt_run library: 

    I would suggest to try testing with our \examples\peripheral\rtc\ example and check if you can achieve low power consumption or not. When I tested with the example it doesn't matter the order of SEV and WFE is the current consumption is round 10uA. 

Reply
  • Hi Hiroyasu, 

    When you use : 
    __SEV();
    __WFE();
    __WFE();

    what's the current consumption ? 

    2.5mA doesn't seem to be low current consumption. When the CPU is sleeping and if there is no other peripheral is running it should be around 2-3 uA not mA. But it depends on how often do you wake up from the interrupt. 
    I would suggest to use our power profiler kit  to measure the power consumption. You can visualyze the power consumption and see how exactly the current is draw. 

    In most of our examples we use 
    __WFE();
    __SEV();
    __WFE();

    As you can see in our pwr_mgmt_run library: 

    I would suggest to try testing with our \examples\peripheral\rtc\ example and check if you can achieve low power consumption or not. When I tested with the example it doesn't matter the order of SEV and WFE is the current consumption is round 10uA. 

Children
Related