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

Power consumption 52832

Hi,

I am relatively new to programming hardware at this level, and have developed our product on the 52832, so finally I have purchased the Power Profiler Kit, and downloaded the NRFConnect and power profiler software.

Please see the attached screen shot, and can I ask if this is a good result in power consumption, or should I be trying to improve it further?

Sorry for such a newbie question, and any extra information or links to information to learn about power consumption more, would be fantastic, and much appreciated.

Cheers and thanks in advance for your help

Jason

Parents
  • Hi Einar,

    Sorry, you are correct, I am using the S132 Softdevice, and I have dug a little further taking into consideration of your comments about what else I maybe doing when create my RTC instance, I also setup SAADC for battery monitoring, and it looks like from what I can tell, the cause of the high power usage, so I have now tried to initialize the SAADC, and after I get a sample, I then uninitialize it, and wait for approx 5 minutes to repeat, however, after about five minutes after uninitiliasing the SAADC ( nrf_drv_saadc_uninit ), I try to initialize (nrf_drv_saadc_init) and sample again, it simply wont work anymore, I keep trying to call nrf_drv_saadc_sample (about every 5 seconds) to start a sample, but it wont call the callback???  Any idea of what I might be doing wrong.

    As a note, if I nrf_drv_saadc_init at the start once only, and perform the sampling every 5 minutes by calling nrf_drv_saadc_sample, it works perfectly, however, this is probably the power consumption problem I am having, so performing the nrf_drv_saadc_uninit seems to stop this working. So I am guessing I need to turn of the SAADC, to bring the power back down, but now I have a new problem...always the way :-)

    For your reference, the SDK I am using is 12.3

    Cheers and thanks again for your help.

    Jason

Reply
  • Hi Einar,

    Sorry, you are correct, I am using the S132 Softdevice, and I have dug a little further taking into consideration of your comments about what else I maybe doing when create my RTC instance, I also setup SAADC for battery monitoring, and it looks like from what I can tell, the cause of the high power usage, so I have now tried to initialize the SAADC, and after I get a sample, I then uninitialize it, and wait for approx 5 minutes to repeat, however, after about five minutes after uninitiliasing the SAADC ( nrf_drv_saadc_uninit ), I try to initialize (nrf_drv_saadc_init) and sample again, it simply wont work anymore, I keep trying to call nrf_drv_saadc_sample (about every 5 seconds) to start a sample, but it wont call the callback???  Any idea of what I might be doing wrong.

    As a note, if I nrf_drv_saadc_init at the start once only, and perform the sampling every 5 minutes by calling nrf_drv_saadc_sample, it works perfectly, however, this is probably the power consumption problem I am having, so performing the nrf_drv_saadc_uninit seems to stop this working. So I am guessing I need to turn of the SAADC, to bring the power back down, but now I have a new problem...always the way :-)

    For your reference, the SDK I am using is 12.3

    Cheers and thanks again for your help.

    Jason

Children
  • Hi Jason,

    Yes, if you keep the SAADC active it will typically give a high current consumption for a few reasons:

    • If you use a TIMER to trigger regular sampling, this will keep the HF clock always on.
    • If you use DMA (implicitly used if you use more than one sample buffer), this will keep the DMA bus and underlying resources active causing a high current consumption.

    If you only need to collect a single sample every few minutes, then it is probably better to uninint the SAADC as you write, and initialize it as needed. You could also consider a low power implementation such as discussed here. The driver supports low power mode by setting SAADC_CONFIG_LP_MODE to 1 in your projects sdk_config.h.

Related