NRF52832 Power Consumption

Argiris_Mouratidis
Fri, 13 Aug 2021 09:41:59 +0000
Mbed OS

I’m creating a custom board using NRF52832 in order to create a BLE device that will store and transmit data.
Ble device uses GATT Characteristics for data transmission.
For data storage I use LittleFileSystem.

My project will be a wearable device, so I’m trying to achieve months of battery life (if possible). I saw that the NRF52832 chip can achieve lower power consumption than 0.5mA using ble.

I’ve found the following step to improve the power consumption of the board:

int main(void)
{
  //Enable DCDC Regulator
  NRF_POWER->DCDCEN = 1;
  //Start Bluetooth Functionalities
  thread.start(BluetoothThread);
  shouldSleep = false;
  while(1){
     // if System OFF must be enabled
    if (shouldSleep == true)
    {
      NRF_POWER->SYSTEMOFF = 1;
    }
    // Enter LOWPWR mode (LOWPWR is recommended for most applications)
    NRF_POWER->TASKS_LOWPWR = 1;
    // Enter System ON sleep mode
    __WFI();
    __SEV();
    __WFI();
  }
}

I want to reduce the power consumption as much as possible, but the best I got was 1.5mA, which is way too much compared to BLE examples using Segger Embedded Studio.

As you can see in the screenshot above, power consumption has a large spike (5mA) at the beginning of the wake-up process (triggered from an interrupt pin signal). Furthermore, the wake-up takes way too long until the first advertising. Is it a normal thing to happen or did I miss something?

I am more familiar with C++ and mbed os, that’s why I want to find the best solution with this approach.

All suggestions are welcome.

3 posts - 3 participants