[讨论] F28M35H52C1 M3核的uDMA channel使能不正常

MADONG   2015-6-23 11:58 楼主
我在用F28M35H52C1的uDMA channel 20 和channel 21与EPI之间传输数据时,无法同时使能channel 20 和channel 21。我使用的是controlSUITE的API函数来使能的,我的部分代码如下:

#define UDMA_CHANNEL_EPIRX     20
#define UDMA_CHANNEL_EPITX      21

.........(uDMA通道传输配置代码,在该代码部分也将channel 20、channel 21 配置为EPI通道了)

uDMAChannelAttributeEnable(UDMA_CHANNEL_EPIRX, UDMA_ATTR_USEBURST);  // step1
uDMAChannelAttributeEnable(UDMA_CHANNEL_EPITX, UDMA_ATTR_USEBURST);  //step2

uDMAChannelEnable(UDMA_CHANNEL_EPIRX);   //step3:使能channel 20

uDMAChannelEnable(UDMA_CHANNEL_EPITX);   //step4:使能channel 21


我碰到的情况如下:

当执行step1、step2后DMAUSERBUSTSET 寄存器(offset 0x18)的值为0x00300000,与程序功能符合;当执行完step3后,DAMENASET(offset 0x28)寄存器为0x00100000,也与程序功能符合;可是当执行完step4之后,DAMENASET寄存器的值仍为0x00100000,同时DMAUSERBUSTSET也由0x00300000变为0x00100000。我也尝试通过直接操作寄存器来同时使能这两个通道,仍然会是相同结果。

如果按照step1、2、4、3的顺序执行,我发现执行step4后DAMENASET寄存器无变化,同时DMAUSERBUSTSET由0x00300000变为0x00100000;执行完step3的代码后,DAMENASET变为0x00100000。这是怎么回事呢?

回复评论 (2)


没有用过uDMA,帮顶。
点赞  2015-6-24 09:20
请问你的uDMA的channel21连着EPI的TX端,uDMA通道的目的地址是怎样设定的?是否连着EPI的WFIFO?谢谢!
点赞  2015-10-8 09:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复