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

nrf52 high current after sd_power_system_off

Hi I am trying to put the nrf52 device to system off state, in order to get minimal current consumption. When I don't use the soft device, and enter system off state by "NRF_POWER->SYSTEMOFF = 1", I see that CPU current goes down to a few uA. But when I enable the softdevice (using "SOFTDEVICE_HANDLER_INIT"), and than enter system off state by ""softdevice_handler_sd_disable" & "sd_power_system_off", I see CPU current of 5.83 mA!!!. If I add "NRF_POWER->SYSTEMOFF = 1" after "sd_power_system_off" , the CPU current goes down to 2.46 mA. I am currently using soft device version s132_nrf52_1.0.0-3.alpha. Is this a known issue with this version? If not, can some please explain? What is the correct way to enter system off state after soft device is enabled?

Thanks Yaron

  • Hi Yaron. Can you tell me what kit you are using? Preview nRF52-DK or nRF52-DK v0.9.0?

  • Hi Yaron

    If you are using preview kit, the errata #16 for Eng A chip. Anyways, the s132_nrf52_1.0.0-3.alpha softdevice implements the first line of code described in the anomaly workaround, not allowing low power state on RAM blocks.

    Anomaly #16 is fixed in Eng B nRF52, residing on PCA10040 v0.9.0 board.

    I have verified the current consumption of system_off by running the ble_app_template example application in nRF52 SDK 0.9.2, running on top of s132_nrf52_1.0.0-3.alpha softdevice, and the current consumption is as expected. The example will enter system off on advertising timeout after 180 seconds, but you can make it timeout after 6 seconds by changing the following timeout at the top of the main file

    #define APP_ADV_TIMEOUT_IN_SECONDS      6
    

    Then wake up from system_off by pressing button_1 on the nRF52-DK preview kit. So if you have the preview kit you can check how system_off is entered in this example.

  • Hi Stefan Thanks for your answer. I am using chip rev B (QFAABA / 1542AB), both on my own hardware, and on the Preview nRF52-DK, and I can't redproduce your results. I have run the ble_app_template, and when the device enters system off state, I measure 2.03 mA!!! (before that, during device advertizing, I measured 500-750uA). Any ideas? Thanks Yaron

  • Ok, then your anomaly is not present and you should be measuring normal current consumption. I have measured now with the PCA10040 (contains Eng B QFAABA), s132_nrf52_2.0.0-7.alpha_softdevice, and the ble_app_template example from nRF5 SDK 11.0.0-2.alpha. I measure around 1uA when the nRF52 enters System Off mode. When advertising, I measure 100uA - 150uA, not very stable reading with a 300ms advertising interval. If I change the advertising interval to 100ms, then I measure around 350uA average current consumption.

    What measuring method are you using? Are you following the methods described here?

    Are you measuring the same current consumption on both preview nRF52-DK and your custom board? If so, then it is hard to conclude that it is a hardware problem.

    Make sure you power reset the board after flashing your code to the chip.

    What happens if you run the blinky example and measure current consumption on that?

  • Hi Yaron

    I'm currently having a similar problem on my own board with a nRF52 revision QFAAB0 using nRF52_SDK_0.9.2_dbc28c9.

    Are/was you by any chance calling SOFTDEVICE_HANDLER_INIT with a "NRF_CLOCK_LFCLKSRC_RC_250_PPM_500MS_CALIBRATION" option? I'm also getting around 2.5mA in system off using this.

    If I use NRF_CLOCK_LFCLKSRC_XTAL_20_PPM the off current goes down to ~12uA (I don't actually have a 32Khz xtal on my board, so this isn't a practical solution for me)

    Also if I don't call SOFTDEVICE_HANDLER_INIT at all I can get down to <=1uA as well

    Currents was measured using a ET3255 meter

    Kind Regards Visti

Related