[16] System: RAM may be corrupt on wakeup from CPU IDLE

This anomaly applies to IC Rev. Engineering A, build codes QFAA-AA0, QFAA-AC0, CGAA-AA0.

Symptoms

On an event or interrupt where the CPU wakes up from IDLE state:
  • The device hardfaults.
  • Shows some unpredicted behavior consistent with RAM corruption.

Conditions

Always.

Consequences

Unpredicted behavior of the device.

Workaround

RAM blocks must be prevented from going to a low power state when the CPU goes to IDLE state (by executing the WFE or WFI instructions). Executing the following code before CPU sleep will ensure this:

*(volatile uint32_t *)0x4007C074 = 3131961357ul;
This code is already present in the latest system_nrf52.c file.
This configuration will also prevent RAM from going to low power (retention) state in system OFF and cause higher current consumption than documented in this mode. The following code can be executed before triggering the SYSTEMOFF.Enter to allow the RAM to go into retention state.

*(volatile uint32_t *)0x4007C074 = 2976579765ul;