19.5.6.1 Event Input Actions

Normal Transfer

The event input is used to trigger a beat transfer on peripherals.

The event is acknowledged as soon as it is received. When received, both the Channel Pending status bit in the Channel Status (CHSTATUS.PEND) register and the corresponding Channel n bit in the Pending Channels (PENDCH.PENDCHn) register are set. If the event is received while the channel is already pending, the event trigger is lost.

Figure 19-13 shows an example where beat transfers are enabled by internal events.

Figure 19-13. Beat Event Trigger Action

Conditional Transfer on Strobe

The event input is used to trigger a transfer on peripherals with pending transfer requests. This event action is intended to be used with peripheral triggers, such as those for timed communication protocols or periodic transfers between peripherals: the transfer is issued only when the peripheral trigger coincides with the occurrence of a (possibly cyclic) event.

The event is acknowledged as soon as it is received. The peripheral trigger request is stored internally when the previous trigger action is completed (i.e., the channel is not pending) and when an active event is received. If the peripheral trigger is active, the DMA will wait for an event before the peripheral trigger is internally registered. When both the event and the peripheral transfer trigger are active, both CHSTATUS.PEND and PENDCH.PENDCHn are set. A software trigger will now initiate a transfer.

Figure 19-14 shows an example where the peripheral beat transfer is started by a conditional strobe event action.

Figure 19-14. Periodic Event With Beat Peripheral Triggers

Conditional Transfer

The event input is used to trigger a conditional transfer on peripherals with pending transfer requests. For example, this type of event can be used for peripheral-to-peripheral transfers, where one peripheral is the source of the event and the second peripheral is the source of the trigger.

Each peripheral trigger is stored internally when the event is received. When the peripheral trigger is stored internally, the Channel Pending Status (CHSTATUS.PEND) bit is set, the respective Pending Channel n Bit in the Pending Channels (PENDCH.PENDCHn) register is set, and the event is acknowledged. A software trigger will now initiate a transfer.

Figure 19-15 shows an example where a conditional event is enabled with peripheral beat trigger requests.

Figure 19-15. Conditional Event With Beat Peripheral Triggers

Conditional Block Transfer

The event input is used to trigger a conditional block transfer on peripherals.

Before starting transfers within a block, an event must be received. The event is acknowledged when the block transfer is completed. A software trigger will initiate a transfer.

Figure 19-16 shows an example where a conditional event block transfer is started with peripheral beat trigger requests.

Figure 19-16. Conditional Block Transfer With Beat Peripheral Triggers

Channel Suspend

The event input is used to suspend an ongoing channel operation. The event is acknowledged when the current AHB access is completed. Refer to the Channel Suspend section for further details.

Channel Resume

The event input is used to resume a suspended channel operation. The event is acknowledged as soon as it is received, and the Channel Suspend Interrupt (CHINTFLAG.SUSP) flag is cleared.

Refer to the Channel Suspend section for further details.

Skip Next Block Suspend

This event can be used to skip the next block suspend action. If the channel is suspended before the event occurs, the channel operation is resumed and the event is acknowledged. If the event occurs before a suspend block action is detected, the event is held until the next block suspend detection. When the block transfer is completed, the channel continues operation (not suspended) and the event is acknowledged.