GPIO wakeup edges may be lost in STANDBY mode
Details
After waking up once through a single GPIO edge, subsequent GPIO wakeup edges can be missed in STANDBY modes.
- Case 1: STANDBY0 wakeup - IF the MCU is set into STANDBY0 mode before one cycle of LFCLK AND you set the IO back to the “non-wake” state for <1 LFCLK cycle AND THEN assert it again, the next wakeup edge will not be detected. This issue is because the GPIO module never sees the IO "clear" to the "non-asserted" state AND so it thinks that the pin was always asserted.
- Case 2: STANDBY1 wakeup - IF a GPIO edge is used to wakeup AND the GPIO pulse is still active when the device returns to STANDBY1 THEN the device will not detect any subsequent wakeup edges.
Workaround
- Case 1:
- Set GPIO wakeup edge to both falling and rising edges
- OR Ensure GPIO wakeup pulse is longer than one LFCLK cycle
- Case 2:
- Set GPIO wakeup edge to both falling and rising edges
- OR Ensure GPIO wakeup pulse is not active before entering STANDBY1