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

SDK13.0.0 FreeRTOS Application loaded from DFU draws high current

Application Specs:

NRF52832 + SDK13.0.0 + Softdevice 4.0.4 + FreeRTOS application project migrated from SDK 12.2.0

Uses low power SAADC, FPU, SPIM and buttonless DFU running on custom board.

When application is flashed with a debugger, the current draw is 600uA average. The same application when loaded via with secure dfu bootloader draws 6mA (even after I completely power down the board and restart it.) Any ideas why?

Any pointers here would be much appreciated!

Thank you, Labi

P.S. Couple other things I've observed

  • RAM Power bits are all set to 0x0000FFFF (By the way, sd_power_ram_power_get/set/clr doesnt seem to do anything but NRF_POWER->RAM[idx].POWER works.
  • FPU doesnt automagically shut off when used. This even after I called nrf_drv_power_init() and nrf_pwr_mgmt_init() during startup, so I have to clear FPU flags before I exit the task to force the FPU off. This issue seems to have come back in SDK13.

Edit 08/08/2017: Turns out that the high current is being drawn not by the MCU but by a SPI peripheral (Invensense ICM20648). Still, I can't understand why the high current draw when flashed via DFU/OTA and not when flashed directly with the debugger (i.e. without a bootloader installed.) In both cases the application works as expected, the only difference being the current draw. There's clearly some difference here running with a bootloader vs. without that I'm not understanding. Can someone from Nordic please help me resolve this? This issue is blocking my work at the moment.

Thanks, Labi.

Related