SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
The SIMCOP DMA supports up to eight ((SIMCOP_DMA_HWINFO[2] CHAN+1) × 4) logical channels. Each logical channel can be configured and triggered separately.
Idle logical channels must be configured and enabled (SIMCOP_DMA_CHAN_CTRL_i[0] ENABLE = 1) to be used.
Figure 9-189 shows the different states of a logical channel. Software can poll the current state from the SIMCOP_DMA_CHAN_CTRL_i[4:3] STATUS bit field.
When a trigger event is received by a channel in the ACTIVE state, it moves to the PENDING state. Trigger events received when the channel is in the IDLE, PENDING, or RUNNING state are discarded.
A logical channel is automatically disabled by hardware when a complete frame (all 2D blocks) is transferred. It can be disabled earlier by software by writing the SIMCOP_DMA_CHAN_CTRL_i[1] DISABLE bit. When a disable request occurs in the RUNNING state, it is memorized and executed when the channel leaves the RUNNING state. Pending disable requests have higher priority than channel trigger events.
When multiple logical channels are pending simultaneously, the following rules apply:
This situation can, for example, occur when software triggers a channel while a transfer is ongoing for another one. Two types of interrupts can be generated: