There are two low power modes. Technically either should be able to let the PIO continue to run. I'll explain all three power modes.
NORMAL: You get to select what is clocked here, except for the CPU. CPU will turn off clocking of some of its components if you are running a sleep instruction like WFE/WFI.
SLEEP: If both processors are in a sleep state, and no active DMA requests are running it automatically switches to this mode. You can once again configure what components are clocked here. So you could leave say just RTC and PIO powered up. This is less of a true low power mode, and more of just a way to automatically switch to a different set of clocked components if the bus is idle, so as to further reduce power consumption.
DORMANT: Ring and crystal oscillators stopped, zero dynamic power used in default configurations. Only a pin or RTC interrupt can wake the system from this state. Note that any externally supplied clocks will continue to be routed, and PLLs will run if not powered down. Thus technically this mode can be used to fully stop the CPUs while letting other accessories run from an external clock. The nominal intended usage is to continue to let the real time clock run, but the PIO could be run too/instead.
Comments
There are two low power modes. Technically either should be able to let the PIO continue to run. I'll explain all three power modes.
NORMAL: You get to select what is clocked here, except for the CPU. CPU will turn off clocking of some of its components if you are running a sleep instruction like WFE/WFI.
SLEEP: If both processors are in a sleep state, and no active DMA requests are running it automatically switches to this mode. You can once again configure what components are clocked here. So you could leave say just RTC and PIO powered up. This is less of a true low power mode, and more of just a way to automatically switch to a different set of clocked components if the bus is idle, so as to further reduce power consumption.
DORMANT: Ring and crystal oscillators stopped, zero dynamic power used in default configurations. Only a pin or RTC interrupt can wake the system from this state. Note that any externally supplied clocks will continue to be routed, and PLLs will run if not powered down. Thus technically this mode can be used to fully stop the CPUs while letting other accessories run from an external clock. The nominal intended usage is to continue to let the real time clock run, but the PIO could be run too/instead.
Thank you for the clear and concise explanation!