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

nRF51822 and low power: can it really go below ~600 µA?

I have a PCB with an nRf51822 @1.8V, using the SDK 10 (no chance to change it).

The PCB itself with everything but the nRF (we did not iron it on purpose to measure consumption) draws ~14µA.

The full PCB with the nRF in "low power" draws ~640µA, so the nRf is using ~526 µA.

The code does the following:

            // Initializes the softdevice.

softdevice_init();




NRF_UART0->ENABLE = 0;

NRF_SPIS1->ENABLE = 0;

NRF_SPI0->ENABLE = 0;

NRF_SPI1->ENABLE = 0;

NRF_TWI0->ENABLE=0;

NRF_TWI1->ENABLE=0;

NRF_ADC->ENABLE = 0;

NRF_QDEC->ENABLE = 0;

NRF_LPCOMP->ENABLE = 0;




NRF_CLOCK->TASKS_HFCLKSTOP = 1;




do

{

sd_app_evt_wait();


// Process the event.

do

{

retval = mcutask_run();

} while(retval == NRF_SUCCESS);




nrf_gpio_pin_toggle(18);

} while(1);

I am using the internal RC for the LFCLK, but even using the external crystal will only decrese the amount on ~10µA.

I can also do the same without using the softdevice and issuing __WFI().

I know that the loop is not running due to pin 18 not toggling, so there are no external events awakening the CPU. I can confirm this works because if I use the debugger the code will not wait for events and the pin will toggle.

The only thing I'm running on purpose if the RTC1 because I need a timer. No BLE enabled at this point.

Can the power consumption be lowered? Am I missing something? Yes, i have digged the archive trying lots of things but could not get lower than this so far.

Is there any way I can check if somehow the internal HFCLK is still running?

Related