Hi
When we enable the ADC on the nRF9160, we se a considerable rise in current consumption in standby mode, from sub-100 µA to several hundreds of µA (~400 µA). How do we trim down the current consumption?
tron
Hi
When we enable the ADC on the nRF9160, we se a considerable rise in current consumption in standby mode, from sub-100 µA to several hundreds of µA (~400 µA). How do we trim down the current consumption?
tron
Hi Tron,
400 uA indicates that there is something keeping the clock tree running. I tried to reproduce this scenario using the adc sample here, but I measure around 80-100 uA in sleep:
https://github.com/Rallare/fw-nrfconnect-nrf/tree/nrf9160_samples/samples/nrf9160/adc
Note that I have turned off the RXD using this code snippet to ensure that the UART doesn't influence the current measurement:
if (!IS_ENABLED(CONFIG_AT_HOST_LIBRARY)) { /* Stop the UART RX for power consumption reasons */ NRF_UARTE0_NS->TASKS_STOPRX = 1; }
Have you tried omitting the ADC init and measurements (only in your sources, no need to disable the whole module in prj.conf etc) to see if the current consumption is changed? This would give an indication if there's something else in the "background" causing this raised current consumption.
Kind regards,
Håkon
I've been searching for if(!_IS_ENABLED in the source code of the ADC project, and it is not there. Where do I find it in the code?
I've been searching for if(!_IS_ENABLED in the source code of the ADC project, and it is not there. Where do I find it in the code?
I added that to ensure that the UART RXD does not draw current consumption, for testing your scenario. The printing will still occur, but the UART reception is disabled.
When the UART RXD is stopped, the "adc" sample draws around 100 uA.
Did you try to disable the ADC in your project to see if there's anything else that might cause this high current?
Kind regards,
Håkon
We disabled the ADC, and the current consumption fell from around 3-400 µA to below 100µA.
Q1: Will this issue happen consistently, at boot up? Or will the current go up after a while?
Q2: Is there any of the ADC function calls that fails (be sure to check all return values)?