Restoring Pad Initial Configuration in Sleep Mode

According to the RSL10 Hardware Reference “The initial pad configuration (the one used before going into Sleep Mode) needs to be restored by the software before resetting the PADS_RETENTION_EN bit, to avoid toggling the pads.”

If a pad is configured as a DIO interrupt (i.e. configured using Sys_DIO_IntConfig), does this config need to be restored by the software?

Hi @darrew
Yes, you need to restore this configuration too.
You need to restore state of both DIO registers and also re-enable interrupts in NVIC.
Only registers of ACS peripheral (the power management block) are retained after a deep sleep wake-up.

Note that the DIO Interrupt and Wake-on-GPIO are two separate blocks with different purposes:

  • DIO Interrupt - Configured in DIO block to detect events when CPU is active.
  • GPIO Wake-up - Configured in ACS block to wake-up CPU on transition when in deep sleep.

Best regards,
Lukas

1 Like

Hi @lukas.mandak
For unknown reasons, restoring the DIO interrupt configuration (e,g, using Sys_DIO_IntConfig) on waking up from sleep mode seems to malfunction (i.e. a BLE connection is disrupted).

Our DC Waveform Analyzer shows current pulses of growing width during a BLE connection until disruption.