25.7.3.8 Start Trigger Source

The DMA provides three types of start triggers which can initiate a cell transfer, a software trigger, an event system trigger, and a peripheral DMA request.

The CHCTRLAk.SWFRC bit provides the software trigger. When software or the linked-list descriptor sets CHCTRLAk.SWFRC, the DMA issues a start trigger to the channel.

The device event system provides an event trigger for each DMA channel k where k < 24 (24 start event triggers). Setting CHCTRLBk.TRIG=1 configures the channel to use the rising edge of the event trigger as the start trigger.

A channel is also capable of using a peripheral DMA request as the start trigger. Setting CHCTRLBk.TRIG to a value greater than one will select one of the connected peripheral’s DMA request as the start trigger.

For a channel to take action on a start trigger, the CHCTRLAk.ENABLE bit must be set to one, otherwise all trigger events are ignored as shown in Block Transfer.

If a peripheral DMA request is pending when the channel is enabled, the channel will honor the request and initiate a cell transfer. This is shown in the following figure.

Figure 25-7. Peripheral DMA Request at Channel Enable

Start trigger events that occur during a cell transfer, CHSTATk.CELLBUSY=1, are ignored as shown by the second ignored trigger in Block Transfer.

Conditional Trigger

The DMA can use the auxiliary event system trigger to qualify either the start event system trigger or a peripheral DMA request. When enabled as a conditional trigger, start trigger configured with CHCTRLBk.TRIG and the auxiliary event system trigger are logically AND’ed to produce the start trigger on the rising edge of the AND’ed signal. The conditional trigger function is enabled by setting the CHEVCTRLk.EVAUXIE=1 and CHEVCTRLk.EVAUXACT=2.