嵌入式开发者社区

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

作者: zhangzhang    时间: 2017-1-5 18:44
标题: mcasp多路串行器
我用的是mcasp:c6748demo里面那个纯发数据的工程,配置一个串行器有数据出来,但是配置三个串行器就没有数据了。没有用创龙的开发板,我们自己做了一块板子。配置如下:[attach]1798[/attach][attach]1799[/attach]& ^1 E0 l- p8 J4 o$ c8 l
因为一个串行器能出数据,并且AHCLKX,ACLKX,AFSX几个时钟都是正确的,但是一旦配置多个串行器工作,就不正常了,一直在下面这个while里面,xbuf一直在等待数据:[attach]1800[/attach]
, o3 a) j( R" K' c, b- Z请大神解决一下非常感谢!!
% U! T. d& q4 L/ Y* U2 j
作者: zhangzhang    时间: 2017-1-5 18:47
RX0,RX1,RX2分别为13,14,15- ?4 i! o3 ]$ M8 d
TX0,TX1,TX2分别为10,11,12,
1 S; x- Q! [" ^+ A% E( r: ?可以不用管接收串行器,只看发送串行器。
作者: human    时间: 2017-1-6 09:55
是不是DMA的配置有问题,单步看看
作者: zhangzhang    时间: 2017-1-6 10:49
human 发表于 2017-1-6 09:55& t! G% a6 ?/ ?  Z
是不是DMA的配置有问题,单步看看
" D/ H* Q/ Z, n8 y' y
DMA用的是demo里面的配置啊,
: r& j  B4 X, B  i5 {. l% \5 I我就只配置了 McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,3,1);这个后读 McASPWriteFifoSts(SOC_MCASP_0_FIFO_REGS);这个时候fifo里面只有一个字。
* F0 w4 ]4 g' C5 J6 E6 I* h& q而配置串口为一个时McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,1,1),fifo里面有64个字。
作者: Lewis    时间: 2017-1-6 21:14
zhangzhang 发表于 2017-1-6 10:49; [# p( x4 {/ p# Y( }
DMA用的是demo里面的配置啊,: S" l  u4 z! v4 h$ k+ G
我就只配置了 McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS,3,1);这个后读  ...

, y( r: Q5 z! }- U! c可以先不用DMA,直接使用CPU读写FIFO,调通之后再添加DMA
作者: zhangzhang    时间: 2017-1-9 09:30
Lewis 发表于 2017-1-6 21:14& {' b9 s# J6 o
可以先不用DMA,直接使用CPU读写FIFO,调通之后再添加DMA

& S' s8 W: K6 T" S4 E( D, q我配置一个串行器就能出数据,但是配置三个串行器就没数据出来了,不知道这是怎么回事
% [9 L* a; u$ ~8 L
作者: Lewis    时间: 2017-1-9 16:20
建议从最简单的开始调试,可以先考虑不使用DMA和FIFO,直接读写数据缓冲寄存器




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