嵌入式开发者社区

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

作者: zhangzhang    时间: 2017-1-5 18:44
标题: mcasp多路串行器
我用的是mcasp:c6748demo里面那个纯发数据的工程,配置一个串行器有数据出来,但是配置三个串行器就没有数据了。没有用创龙的开发板,我们自己做了一块板子。配置如下:[attach]1798[/attach][attach]1799[/attach]+ }; l) y& B5 S- }" g& y$ f
因为一个串行器能出数据,并且AHCLKX,ACLKX,AFSX几个时钟都是正确的,但是一旦配置多个串行器工作,就不正常了,一直在下面这个while里面,xbuf一直在等待数据:[attach]1800[/attach]  k2 r6 l( f4 s( I5 F% {3 X: f3 f
请大神解决一下非常感谢!!, B+ n* k& F6 q3 z

作者: zhangzhang    时间: 2017-1-5 18:47
RX0,RX1,RX2分别为13,14,15; q( }& O$ t0 i, U. L3 b$ p1 L
TX0,TX1,TX2分别为10,11,12,
0 R, B; ]0 F) f& y4 _  k- O可以不用管接收串行器,只看发送串行器。
作者: human    时间: 2017-1-6 09:55
是不是DMA的配置有问题,单步看看
作者: zhangzhang    时间: 2017-1-6 10:49
human 发表于 2017-1-6 09:55  S* I- }: P$ r& W8 \1 J- \
是不是DMA的配置有问题,单步看看

9 C0 Z6 v4 U* e% G+ PDMA用的是demo里面的配置啊,
0 c: T& N" z6 W我就只配置了 McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,3,1);这个后读 McASPWriteFifoSts(SOC_MCASP_0_FIFO_REGS);这个时候fifo里面只有一个字。
6 f% m8 J3 Y4 X4 M% t$ h' b而配置串口为一个时McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,1,1),fifo里面有64个字。
作者: Lewis    时间: 2017-1-6 21:14
zhangzhang 发表于 2017-1-6 10:492 R. i# h& M( i" c4 J; f
DMA用的是demo里面的配置啊,
1 N9 q, l4 D7 k/ y我就只配置了 McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,3,1);这个后读  ...
1 @$ l+ k: ^$ |4 q0 _1 N
可以先不用DMA,直接使用CPU读写FIFO,调通之后再添加DMA
作者: zhangzhang    时间: 2017-1-9 09:30
Lewis 发表于 2017-1-6 21:14
% k; J5 R* O5 u, A可以先不用DMA,直接使用CPU读写FIFO,调通之后再添加DMA

8 X, U4 @$ D9 `3 a+ H. i! U我配置一个串行器就能出数据,但是配置三个串行器就没数据出来了,不知道这是怎么回事! G2 T5 {' [* S6 @$ I- q% ?

作者: Lewis    时间: 2017-1-9 16:20
建议从最简单的开始调试,可以先考虑不使用DMA和FIFO,直接读写数据缓冲寄存器




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