What would cause a EDMA3TC read error when the source address is the McBSP1 FIFO data address?
I am attempting to set up the EDMA controller to read the McBSP1 Data FIFO but am getting a EDMA3TC ERRDET STAT field error of "0x00002601".
McBSP1 is set up with the FIFO enabled, and with RNUMEVT set to 32 words (32-bit).
The EDMA CC receives the event and transfers to TC0.
The first PaRAM set configuration is shown below. I have also included the TC register contents.
paramSet.OPT = 0;
paramSet.OPT = /* 0x........ */
(0x0 << 31 | /* PRIV = 0 R */
0x0 << 24 | /* PRIVID = 0 R */
0x0 << 23 | /* ITCCHE = 0 R/W Intermediate transfer chaining is disabled */
0x0 << 22 | /* TCCHE = 0 R/W Transfer complete chaining is disabled */
0x0 << 21 | /* ITCINTE = 0 R/W Intermediate transfer complete Int is disabled */
0x1 << 20 | /* TCINTE = 1 R/W Transfer complete interrupt is enabled */
0x26 << 12 | /* TCC = 38 R/W Transfer complete code = MCBSP1_REVT = 38 */
0x0 << 11 | /* TCCMODE = 0 Normal completion */
0x2 << 8 | /* FWID = 2 FIFO width 32-bit */
0x0 << 3 | /* STATIC = 0 R/W The param set will be modified after completion */
0x0 << 2 | /* SYNCDIM = 0 R/W A-synchronized transfer */
0x0 << 1 | /* DAM = 0 R/W Destination address increments */
0x0 << 0); /* SAM = 0 R/W Source address increments */
paramSet.SRC = MCBSP1_FIFO_DATA_ADDR; /* 0x22400000u */
paramSet.DST = (uint32_t)ddcPing;
paramSet.LINK = (uint16_t) (MCBSP1_RX_PONG_PARAMSET * SIZE_PARAMSET);
paramSet.ACNT = 8*4; /* 8 words (32-bit) */
paramSet.BCNT = 4; /* 32 words (32-bit) */
paramSet.CCNT = 1; /* not used */
paramSet.BCNTRLD = 0; /* BCNT reload upon CCNT zeroing (not used) */
paramSet.SRCBIDX = 0; /* FIFO - src addr does not incr upon ACNT zeroing */
paramSet.DSTBIDX = 8*4; /* dest addr incr by 32 */
paramSet.SRCCIDX = 0; /* not used */
paramSet.DSTCIDX = 0; /* not used */
EDMA_setPaRAM(EDMA3CC_BASE_ADDR, EDMA_MCBSP1_REVT, ¶mSet);