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

Constant high power consumption in low power mode (about 480 uA)

Good morning everyone,

I read a lot of threads in the last week on this subject, but so far I was not able to find a solution to the problem.

On a custom board we are developing, I am not able to reduce the power consumption below 480uA, when no peripheral is active.

On our boards we use 2 TWI peripherals and 2 SAADC peripherals, one of which uses a differential value from 2 inputs.

I use the S132 softdevice, and the application starts advertising only when the board is activated using the NFC antenna (touched with a smartphone).

When starting up, I use the fstorage to read a value stored during the very first startup of the board.

This is what I tried so far:

1 - disable GPIOTE

2 - check that I am not affected by a float bug reported in the forum (I am not)

3 - physically disconnect all peripherals

4 - double checked that the fstorage is not the problem

5 - tried to disable all the timers and have a "dummy" application which does nothing

6 - disable all timers (I base now my timers on the hrs sample application, as recommended in a discussion)

7 - checked all the points raised in the most upvoted answer on the forum 

8 - NRF log is disabled, and the board is powered off after programming to ensure I am not in debug mode

9 - ran out of ideas

So here I am, I don't know what else I can try or check.

Maybe it is worth mentioning another couple of things I noticed and I found a bit weird:

1 - I am not able to call nrf_drv_twi_disable. This call causes a fatal error

2 - the consumption is high also when using examples from the SDK (by the way, I am on SDK 15.0.0), and this is true both for the custom board and for the 

NRF52 development kit. I am never able to obtain the few uA indicated in the specs.

Any suggestion in more than welcome, thank you in advance!

Lorenzo

Parents Reply Children
  • Hi Martin,

    thank you very much for this checklist, it will be useful for the future.

    As for the topic I opened, I found out after more digging that for some reason the SAADC was causing the problem.

    I was using a double buffered SAADC (using two disting channels from 2 sensors), and since starting the SAADC for the first time, the consumption increased at 470uA. I was of course calling the uninint and disable, clearing all the interrupts and doing all the things recommended here, but I was still unable to reduce the consumption.

    The solution I found is to use a single buffer and to read one channel, then the second one. I don't know if this is normal or not, but for me it works perfectly and I have now a consumption of less than 3uA when disconnected and not advertising. 

    Thank you anyhow.

Related