Nrf52840 custom firmware high idle power consumption

Hello everyone,

I'm currently developing a custom firmware for the Nrf52840 usb dongle (https://www.mouser.de/new/nordic-semiconductor/nordic-nrf52840-usb-dongle).
The custom firmware is written completely from scratch in Rust, if needed I can provide all the code.

I am currently trying to optimize the power consumption when the board should be idle.
Information regarding the setup:

  • The board is powered using the vbus and ground connectors using a 5V power source (battery based)
  • I am measuring the current using a Multimeter, according to my tests (using the 5V power source and some high resistance resistors) it is sufficiently precise
  • Except GND and VBUS no other pin is connected to the nrf52840 usb dongle.

When I started measuring the idle (power on, full ram powered, rtc running on lfclk, dcdc enabled) power consumption I was surprised to see about 25 uA, which is not terrible, but according to the documentation something in the range of 2 - 3 uA should be possible.

To rule out enabling any peripherals by accident I went ahead and placed the following code at the start of the firmware (rust, but I'm sure everyone here will understand it):

    loop {
        unsafe {
            core::arch::asm! {
                "wfe"
            }
        };
    }

With this my understanding is, that:

  • Immediatly after reset the cpu will enter idle mode
  • No peripherals are ever accessed
  • If I didn't miss anything in the documentation no peripheral should by default be enabled

Sadly the high power consumption of about 25 uA still remains.

Is there anything I actively have to disable to achieve a lower power consumption?

Any help is much appreciated Slight smile

Edit:
I also found this post (https://devzone.nordicsemi.com/f/nordic-q-a/1657/how-to-minimize-current-consumption-for-ble-application-on-nrf51822#reply-5187), but I don't think any of the troubleshooting steps apply in my scenario?

Parents Reply Children
No Data
Related