25.6.7 Sleep Mode Operation
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.
Note: In
Stand-by Sleep mode, the DMAC can only access RAM when it is not back biased
(PM.STDBYCFG.BBIASxx = 0x0)
Note: In
Stand-by Sleep mode, the DMAC can access the SRAM
only when the power domain PD1 is not in retention and PM.STDBYCFG.BBIASLP=0x0. The DMAC
can access the SRAM in Stand-by Sleep mode only when the power domain PD2 is not in
retention and PM.STDBYCFG.BBIASHS = 0x0.