您好、香榭丽舍
我正在尝试使用具有 EDMA 的 McASP 写 FIFO。 当我不使用 FIFO 时、DMA 传输工作正常。
但是、当我启用 FIFO 时、传输剂量不起作用、因为在初始化过程中 McASP XSTAT.XDATA 位不会被清零。
我的以下设置是否有任何错误。
我不确定如何使用 FIFO。 我真的需要你的帮助。 如有任何意见,请提出。
o McASP 设置
XMASK = 0xFFFFFFFF
XFMT = 0x000180F0
AHCLKXCTL = 0x00180000
ACLKXCTL = 0x001800E0
AFSXCTL = 0x00000413 // 8槽
XTDM = 0x000000FF
XCLKCHK = 0x00FF0008
SRCTL13 = 0x00000011 //我使用 AXR13和 AXR14
SRCTL14 = 0x00000011
PFUNC = 0x00009F2F
Pdir = 0x9400FF2F
o 用于启用写 FIFO 的 McASP 设置
WFIFOCTL = 0x00014002
*在启用 FIFO 之前、WNUMEVT 和 WNUMDMA 被置位。
*由于使用双串行器、WNUMDMA 被设置为0x2
o 乒乓模式的 EDMA 参数设置
//参数[1]
OPT = 0x80001200
src = 0x80003000
A_B_CNT = 0x02000008
dst=0x01D02000
SRC_DST_BIDX = 0x00000008
LINK_BCNTRLD = 0x00004800
SRC_DST_CIDX = 0x00000000
CCNT = 0x00000001
//参数[64]
OPT = 0x80001200
src = 0x80004000
A_B_CNT = 0x02000008
dst=0x01D02000
SRC_DST_BIDX = 0x00000008
LINK_BCNTRLD = 0x00004820
SRC_DST_CIDX = 0x00000000
CCNT = 0x00000001
//参数[65]
OPT = 0x80001200
src = 0x80003000
A_B_CNT = 0x02000008
dst=0x01D02000
SRC_DST_BIDX = 0x00000008
LINK_BCNTRLD = 0x00004800
SRC_DST_CIDX = 0x00000000
CCNT = 0x00000001
此致、
J-Breeze