SPRUJ53B April 2024 – September 2024 TMS320F28P550SJ , TMS320F28P559SJ-Q1
Each DMA Channel can be configured to trigger by software and other peripheral triggers events. DMACHSRCSELx register can be used to configure DMA Trigger sources for each DMA channel. CHx.MODE.PERINTSEL register bit field can be set to channel number (CHx.MODE.PERINTSEL = x) as shown in Figure 12-2. Included in these DMA Trigger sources are five external interrupt signals that can be connected to most of the general-purpose input/output (GPIO) pins on the device. This adds significant flexibility to the event trigger capabilities. Upon receipt of a peripheral interrupt event signal, the DMA automatically sends a clear signal to the interrupt source so that subsequent interrupt events occur.
Regardless of the value of the MODE.CHx[PERINTSEL] bit field, software can always force a trigger by using the CONTROL.CHx[PERINTFRC] bit. Likewise, software can always clear a pending DMA trigger using the CONTROL.CHx[PERINTCLR] bit.
Once a particular peripheral trigger event sets a channel’s PERINTFLG bit, the bit remains pending until the priority logic of the state machine starts the burst transfer for that channel. Once the burst transfer starts, the flag is cleared. If a new peripheral trigger event is generated while a burst is in progress, the burst completes before responding to the new peripheral trigger event (after proper prioritization). If a third peripheral trigger event occurs before the pending event is serviced, an error flag is set in the CONTROL.CHx[OVRFLG] bit. If a peripheral trigger event occurs at the same time as the latched flag is being cleared, the trigger event has priority and the PERINTFLG remains set.
Figure 12-3 shows a diagram of the trigger select circuit.
Table 12-1 shows the peripheral trigger source options that are available for each channel.
DMACHSRCSEL | DMA Trigger Source |
---|---|
0 | DMA_SOFTWARE_TRIGGER |
1 | ADCAINT1_DMA |
2 | ADCAINT2_DMA |
3 | ADCAINT3_DMA |
4 | ADCAINT4_DMA |
5 | ADCAEVT |
6 | ADCBINT1_DMA |
7 | ADCBINT2_DMA |
8 | ADCBINT3_DMA |
9 | ADCBINT4_DMA |
10 | ADCBEVT |
11 | ADCCINT1_DMA |
12 | ADCCINT2_DMA |
13 | ADCCINT3_DMA |
14 | ADCCINT4_DMA |
15 | ADCCEVT |
16 | ADCDINT1_DMA |
17 | ADCDINT2_DMA |
18 | ADCDINT3_DMA |
19 | ADCDINT4_DMA |
20 | ADCDEVT |
21 | CLA1_1 |
22 | CLA1_2 |
23 | CLA1_3 |
24 | CLA1_4 |
25 | CLA1_5 |
26 | CLA1_6 |
27 | CLA1_7 |
28 | CLA1_8 |
29 | XINT1 |
30 | XINT2 |
31 | XINT3 |
32 | XINT4 |
33 | XINT5 |
34-35 | Reserved |
36 | EPWM1_SOCA |
37 | EPWM1_SOCB |
38 | EPWM2_SOCA |
39 | EPWM2_SOCB |
40 | EPWM3_SOCA |
41 | EPWM3_SOCB |
42 | EPWM4_SOCA |
43 | EPWM4_SOCB |
44 | EPWM5_SOCA |
45 | EPWM5_SOCB |
46 | EPWM6_SOCA |
47 | EPWM6_SOCB |
48 | EPWM7_SOCA |
49 | EPWM7_SOCB |
50 | EPWM8_SOCA |
51 | EPWM8_SOCB |
52 | EPWM9_SOCA |
53 | EPWM9_SOCB |
54 | EPWM10_SOCA |
55 | EPWM10_SOCB |
56 | EPWM11_SOCA |
57 | EPWM11_SOCB |
58 | EPWM12_SOCA |
59 | EPWM12_SOCB |
60-67 | Reserved |
68 | CPU_TINT0 |
69 | CPU_TINT1 |
70 | CPU_TINT2 |
71-74 | Reserved |
75 | ECAP1_DMA |
76 | ECAP2_DMA |
77-98 | Reserved |
99 | LINA_TXDMA |
100 | LINA_RXDMA |
101-108 | Reserved |
109 | SPIA_TXDMA |
110 | SPIA_RXDMA |
111 | SPIB_TXDMA |
112 | SPIB_RXDMA |
113-122 | Reserved |
123 | FSITXA_DMA |
124 | FSIRXA_DATA_TAG_MATCH |
125 | FSIRXA_DMA |
126 | FSIRXA_PING_TAG_MATCH |
127 | CLB1_INT |
128 | CLB2_INT |
129-130 | Reserved |
131 | USBA_EPX_RX1 |
132 | USBA_EPX_TX1 |
133 | USBA_EPX_RX2 |
134 | USBA_EPX_TX2 |
135 | USBA_EPX_RX3 |
136 | USBA_EPX_TX3 |
137 | ADCEINT1_DMA |
138 | ADCEINT2_DMA |
139 | ADCEINT3_DMA |
140 | ADCEINT4_DMA |
141 | ADCE_EVT_INT |
142-179 | Reserved |
180 | AESA_CONTEXT_IN |
181 | AESA_DATA_IN |
182 | AESA_CONTEXT_OUT |
183 | AESA_DATA_OUT |
184 | EPG_INT |