25.5.6 Sleep Mode Operation
The DMAC will continue to operate in IDLE 0 sleep mode. It does not perform transfers in IDLE 1 and IDLE 2 sleep modes, since the AHB clocks are stopped. In Standby mode, the DMAC will be internally disabled, but maintains its current configuration.
Each DMA channel can be configured to operate in any sleep mode. To be able to run in standby, the RUNSTDBY bit in Channel Control A register (CHCTRLA.RUNSTDBY) must be written to '1'. The DMAC can wake up the device using interrupts from any sleep mode or perform actions through the Event System.
For channels with CHCTRLA.RUNSTDBY = 0, it is up to software to stop DMA transfers on these channels and wait for completion before going to Standby mode using the following sequence:
- Suspend the DMAC channels for which CHCTRLA.RUNSTDBY = 0.
- Check the SYNCBUSY bits of registers accessed by the DMAC channels being suspended.
- Go to sleep.
- When the device wakes up, resume the suspended channels.