24.5.6 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:

  1. Suspend the DMAC channels for which CHCTRLA.RUNSTDBY = 0.
  2. Check the SYNCBUSY bits of registers accessed by the DMAC channels being suspended.
  3. Go to sleep.
  4. When the device wakes up, resume the suspended channels.
Note:
  1. In Standby Sleep mode, the DMAC can only access RAM when it is not back biased (PM.STDBYCFG.BBIASxx = 0x0).
  2. When the device is in Standby Sleep mode, the DMAC cannot write the following peripheral registers. To write these registers with the DMAC the device must be in active or idle modes.

    ADC: SWTRIG

    RTC: COUNT

    TC: CTRLB, STATUS, COUNTH, COUNTL, PER, PERBUF, CC, CCBUF

    TCC: CTRLB, STATUS, COUNT, PATT, WAVE, PER, PERBUF, CC, CCBUF

    SDADC: SWTRIG