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

expected current for saadc low power mode

Dear Nordic support,

I need to clarify a few points using SAADC for battery measurement - running the ble_app_proximity application without modification. I measured the power using PPK on 52840 DK and get around 1mA back ground current. After some googling, it says using Low power of SAADC should help. 

However,  after I change the config.h file to enable low power mode of SAADC, the current measured is still close to 1mA. Is this expected?

The following post (2 years old):

https://devzone.nordicsemi.com/f/nordic-q-a/27070/saadc-battery-measurement-current-consumption

suggest that the following has to be done for each read to reduce current, is it still relevant in SDK 15.2 or 15.3? What's the SAADC low power mode is for if it cannot reduce power consumption? What's the expected current using LP (low power) SAADC mode? 

Thanks,

Lichang

  • Sorry, should have included the quote from the above link:

    -------------------------------------------

    What might not be obvious in the sample code is that you need to turn off the SAADC when you are done with it. So in your handler once you are done reading the buffer, turn off the saadc and clear pending irq.

    nrf_drv_saadc_uninit();
        NRF_SAADC->INTENCLR = (SAADC_INTENCLR_END_Clear << SAADC_INTENCLR_END_Pos);
        NVIC_ClearPendingIRQ(SAADC_IRQn);

    -------------------------
  • Hi Lichang,

    Just to make sure, did you disable logging before you conducted the current measurements (set NRF_LOG_ENABLED to 0 in sdk_config,h)? This might explain the high base current. I have used the SAADC in one of my own projects and I didn't need to disable it after sampling. The base current was around ~2-4ua in my case.  

  • Thanks Vidar, yes I've disabled all the logging. Please see the attached config.h file.

    Can you please adapt  the ble_app_proximity project to make it achieve a few uA and send me the whole project (config.h and other files) ? I've tried my own project and the ble_app_proximity (based on which my own project is created), neither can get current below 800uA if not using the above snippet containing nrf_drv_saadc_uninit();

    While using nrf_drv_saadc_uninit() I can achieve current below 20uA (advertising) current.

  • Not sure why I cannot attach files but here is the related section:


    // <e> NRF_LOG_ENABLED - nrf_log - Logger
    //==========================================================
    #ifndef NRF_LOG_ENABLED
    #if DEBUG
    #define NRF_LOG_ENABLED 1
    #warning "debug version got log"
    #else
    #define NRF_LOG_ENABLED 0
    #endif
    #endif

    I specifically checked if LOG is enabled or not for non-debug build, if enabled, compiler will report that. 

  • Thanks for confirming. I will try to adapt the ble_app_proximity example for you as soon as I get time. Hopefully tomorrow. Friday if not. 

Related