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

Power Consmuption issue in nrf51 during advertising packets

Hi All,

My goal is to advertise the generic packets untill a GPIO interrupt occurs. So in order to achieve low power consumption I have increased the time interval of those packets being advertised from 40ms to 3 seconds. While scanning i am able to see the packets in every 3 sec, but as intended i don't see any reduction in power consumption. With both the intervals, it consumes same 10mA. Am i missing something on this, please suggest.

Any suggestion would be well appreciated.

Thanks

  • @If you have other peripheral runing such as crystal, timer you would need to add them to the total power consumption. How accuracy is your power supply current measurement ?

    Regarding the 30uA current consumption, have you made sure there is no other peripheral running on the board, and on the chip, except for the timer ? What do you do when at the advertising time out ?

    2-3mA when in connection is still pretty high, which connection interval did you use ?

  • @Hung Bui, Yes' I'v made sure that there is no other peripheral apart from timer except few GPIO's. As per datasheet, timer consumes 30uA while counting down which probably tells why it is taking 30uA in between BUT the same timer is running at the start for 15 seconds and device consumes only 5uA during that period.
    But I'm more worried about the power consumption during connected period when it consumes 2-3 mA. I've also made sure i stop the timer when device gets connected. I'm using following GAP connection parameters for the connection setup.

    MIN_CON_INTERVAL - 20ms MAX_CON_INTERVAL - 75ms CONN_SUP_TIMEOUT - 4sec SEC_PARAM_TIMEOUT - 30sec SLAVE_LATENCY - 0

    These are the default connection parameters , can you please let me know what is the expected power consumption during connected period. Do i need to change any of these parameters to reduce consumption ?

    Thanks

  • @Brajesh: Depends on which timer you are using, if you use the RTC timer (app_timer) then the current consumption should be few uA. If you use the timer running on 16MHz the current consumption will be 30uA+400uA (or +700uA depends on the 16MHz clock source) => Anyway it can't be the timer running on 16MHz clock.

    When in connection how long in a conection event do you keep the CPU on (to do interrupt handler for example) ?

    I would suggest you to test with our example. You can either try with ble_app_pwr_profiling (which is power optimized) or with any normal example , ble_app_hrs for example.

  • @Hung Bui,

    It can vary how long we keep it in Connected mode, it can vary from 10 seconds to 2-3 hours or even more, but for now it is just for testing purpose and CPU is on all the time the device is connected, or if you are asking something else please let me know , I didn't get it exactly. I would try the SDK example and will come up with stats. Thanks :)

  • @Brajesh: What I meant was the CPU processing time, not the time your device remain in connection. Usually it's only dozens of micro second for CPU processing time depends on what you process. And is 0 microsecond if you don't have any interrupt handler or any processing in the main loop. Let me know when you have the stats on testing with our example.

Related