TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8148的串口DMA模式怎么配置才能正常工作?

DM8148的串口DMA模式:

现在唯一可以触发DMA工作的配置是:UART2配成不要FIFO,loopback mode, no-auto RTS/CTS, DMA mode 1,并且每次发数都需要写SYSC寄存器reset UART,才能每次都成功触发DMA工作,如果不reset,只能触发一次DMA工作,以后DMA都不工作了。

但是只要使能了FIFO,无论怎么配置,DMA都不工作,DMA收不到UART的dma request。

请问正确的应该怎么配置? 8148的串口部分文档写得太不清楚了。

有没有8148的UART DMA的DEMO可以分享一下呢?

Chris Meng:

你好,

设置的FIFO深度和EDMA配置的搬移数据的个数是否匹配?

你现在是在Linux下驱动么?

chen wei:

回复 Chris Meng:

FCR[0]=0,FIFO是禁止了的。

DMA aCnt=1,cCnt=1,bCnt=我要发的数据字节数,相当于我设置成了DMA一次拷一个字节。

不是linux驱动,是自己写的驱动,驱动是实现在8148的DSP端。

可能是哪儿的问题呢? 有成功的UART DMA示例代码可以参考吗?

chen wei:

回复 Chris Meng:

在吗?为什么只能发一次数,后面就再也不能发了呢?我在论坛搜,看到别人也遇到过同样的问题,但是不知道怎么解决的

yiping xiao:

回复 chen wei:

问一下你的问题解决了吗?我用AM4377 uart dma现象跟你类似,但fifo是否使能现象都是一样的没有影响(trigger设置=1)。rx现在是正常的,tx时是只第一次dma成功后面bcnt就不递减了,此时手工写THR寄存器发1个字节,则后续又能使用1次dma;或者直接使用人工触发dma ESR也可以(仅测试用),说明tx fifo空并没有触发event(读txLevel是空的)

赞(0)
未经允许不得转载:TI中文支持网 » DM8148的串口DMA模式怎么配置才能正常工作?
分享到: 更多 (0)