Large current spikes (1Hz) with softdevice enabled

Hello, 

I am using an nRF52840 on a custom board running the BLE stack from SDK16.0.0. I have an application that periodically advertises for 10s and is idle in between these advertising events. During this idle period I measure very large current spikes (up to ~15mA) which occur at 1Hz. The WDT is enabled with a reload value of 2000, and set to CONFIG_BEHAVIOUR 8 (Pause in SLEEP, Run in HALT). Captures of the current waveform are provided below. 

Curiously, I modified the CONFIG_BEHAVIOUR to 0 (Pause in SLEEP and HALT), and the current spikes were still present but with reduced peak values (up to ~5mA).

I also went through and stepped through each part of initialization, and found that these spikes do not occur until I enabled the softdevice before going idle. Completely disabling the watchdog does not yield any further reductions. This leads me to believe the softdevice is responsible for this behavior, but I have not had luck at figuring how to fix this. Any suggestions would be appreciated, thank you!

Parents
  • Hello,

    The cause of getting high current could be from custom hardware design or application. From your second comment - ''I was able to modify this timer and saw the current spikes shift respectively as well. PWR_MGMT_TIMER_REQUIRED is defined due to NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY being defined in sdk_config.h. Setting this value to 0, disables this timer and gets rid of the current spikes altogether, which is great.''

    It seems you have the reduced current value in the idle period. what is the reduced value? 

    Shutdown or Enter DFU modes can be blocked by one or more modules. To restore this process, we can call nrf_pwr_mgmt_shutdown with NRF_PWR_MGMT_SHUTDOWN_CONTINUE. Alternatively, we can enable NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY. In this configuration, the module will try to retry this process every second(https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/group__nrf__pwr__mgmt.html?cp=9_5_0_6_10_37).

    Do you have DC-DC converter on your custom design? Be enabling and populating the DC/DC converter, the current consumption of the product will be much lower. Depending on your design, you can see the percentage of reduction in power usage. Also, the 32kHz LFCLK crystal ensures the low power. In very low duty cycle applications, like a long-interval beacon, the savings may be much greater.

Reply
  • Hello,

    The cause of getting high current could be from custom hardware design or application. From your second comment - ''I was able to modify this timer and saw the current spikes shift respectively as well. PWR_MGMT_TIMER_REQUIRED is defined due to NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY being defined in sdk_config.h. Setting this value to 0, disables this timer and gets rid of the current spikes altogether, which is great.''

    It seems you have the reduced current value in the idle period. what is the reduced value? 

    Shutdown or Enter DFU modes can be blocked by one or more modules. To restore this process, we can call nrf_pwr_mgmt_shutdown with NRF_PWR_MGMT_SHUTDOWN_CONTINUE. Alternatively, we can enable NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY. In this configuration, the module will try to retry this process every second(https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/group__nrf__pwr__mgmt.html?cp=9_5_0_6_10_37).

    Do you have DC-DC converter on your custom design? Be enabling and populating the DC/DC converter, the current consumption of the product will be much lower. Depending on your design, you can see the percentage of reduction in power usage. Also, the 32kHz LFCLK crystal ensures the low power. In very low duty cycle applications, like a long-interval beacon, the savings may be much greater.

Children
Related