Hi,
I have a custom board using nrf 52832. I am using SDK 15.2.0 and softdevice s132 v6.1.0.
I have referred following link
Also referred nRF52 Series > nRF52832 > Errata > nRF52832 Revision 2 Errata > New and inherited anomalies.
By using the above link I am trying to implement a workaround for errata 220.
I have written a simple application that reads battery status after every 60 sec and transmitted it in mfg data. I have made changes in the nrf_pwr_mgmt_run function as below.
void nrf_pwr_mgmt_run(void)
{
PWR_MGMT_FPU_SLEEP_PREPARE();
PWR_MGMT_SLEEP_LOCK_ACQUIRE();
PWR_MGMT_CPU_USAGE_MONITOR_SECTION_ENTER();
PWR_MGMT_DEBUG_PIN_SET();
// Wait for an event.
#ifdef SOFTDEVICE_PRESENT
if (nrf_sdh_is_enabled())
{
// commented by prashant test purpose 10082020
// ret_code_t ret_code = sd_app_evt_wait();
// ASSERT((ret_code == NRF_SUCCESS) || (ret_code == NRF_ERROR_SOFTDEVICE_NOT_ENABLED));
// UNUSED_VARIABLE(ret_code);
//
// added by prashant for test purpose
SCB->SCR |= SCB_SCR_SEVONPEND_Msk;
__disable_irq();
__WFE();
__nop();__nop();__nop();__nop();
__enable_irq();
////////////////////////////////////////////
}
else
#endif // SOFTDEVICE_PRESENT
{
// Wait for an event.
__WFE();
// Clear the internal event register.
__SEV();
__WFE();
}
PWR_MGMT_DEBUG_PIN_CLEAR();
PWR_MGMT_CPU_USAGE_MONITOR_SECTION_EXIT();
PWR_MGMT_SLEEP_LOCK_RELEASE();
}
But After implementing the above code sleep current increases. kindly find below images for sleep current with and without a workaround implementation.
a) Without Workaround implementation.

b) With Workaround implementation.
