嵌入式开发者社区

标题: mcasp多路串行器 [打印本页]

作者: zhangzhang    时间: 2017-1-5 18:44
标题: mcasp多路串行器
我用的是mcasp:c6748demo里面那个纯发数据的工程,配置一个串行器有数据出来,但是配置三个串行器就没有数据了。没有用创龙的开发板,我们自己做了一块板子。配置如下:[attach]1798[/attach][attach]1799[/attach]
+ p+ c" D7 q) L- [1 g" \& r. _因为一个串行器能出数据,并且AHCLKX,ACLKX,AFSX几个时钟都是正确的,但是一旦配置多个串行器工作,就不正常了,一直在下面这个while里面,xbuf一直在等待数据:[attach]1800[/attach]( L% F+ X7 s3 u! }
请大神解决一下非常感谢!!
* B3 E( f1 L1 U4 G  A
作者: zhangzhang    时间: 2017-1-5 18:47
RX0,RX1,RX2分别为13,14,15
4 I: B/ B0 }% g$ p$ BTX0,TX1,TX2分别为10,11,12,
# m0 U2 [$ O! \; m  I+ |! _0 A可以不用管接收串行器,只看发送串行器。
作者: human    时间: 2017-1-6 09:55
是不是DMA的配置有问题,单步看看
作者: zhangzhang    时间: 2017-1-6 10:49
human 发表于 2017-1-6 09:55( D( E. w! S' w0 _  V- @
是不是DMA的配置有问题,单步看看

6 i4 ?, o4 i& O, x0 A* p0 V7 K, ?DMA用的是demo里面的配置啊,
2 G5 I( v/ {! o( [' D我就只配置了 McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,3,1);这个后读 McASPWriteFifoSts(SOC_MCASP_0_FIFO_REGS);这个时候fifo里面只有一个字。) J( J6 |1 w" Z! f% I% ~- s3 N
而配置串口为一个时McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,1,1),fifo里面有64个字。
作者: Lewis    时间: 2017-1-6 21:14
zhangzhang 发表于 2017-1-6 10:490 S6 t$ o! a- ~9 a; ]6 d
DMA用的是demo里面的配置啊,) N! Y8 N' |/ r5 T9 n
我就只配置了 McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,3,1);这个后读  ...
, r# R% p4 i7 G
可以先不用DMA,直接使用CPU读写FIFO,调通之后再添加DMA
作者: zhangzhang    时间: 2017-1-9 09:30
Lewis 发表于 2017-1-6 21:14* R* O8 b# j8 \0 {
可以先不用DMA,直接使用CPU读写FIFO,调通之后再添加DMA

8 I& k4 A* v/ F; l7 r& G* C) u; c我配置一个串行器就能出数据,但是配置三个串行器就没数据出来了,不知道这是怎么回事
% \$ m3 z; a  l
作者: Lewis    时间: 2017-1-9 16:20
建议从最简单的开始调试,可以先考虑不使用DMA和FIFO,直接读写数据缓冲寄存器




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4