用2812同步串口MCBSP跟AD链接出现问题,帮忙

[复制链接]
3523|2
 楼主| hyh0lh 发表于 2009-5-15 11:59 | 显示全部楼层 |阅读模式
请问谁用过2812的多通道同步串口MCBSP,我跟外部AD链接的时候,AD芯片提供的帧同步信号示波器可以测量出来,但是DSP却检测不到,不知道是怎么回事。谁能帮我想想怎么解决?
yidong1981 发表于 2009-5-15 14:51 | 显示全部楼层

说的太简单了

你要把你的McBSP配置好才行啊,McBSP工作在什么模式下,如果配置不对,那么自然检测不到
 楼主| hyh0lh 发表于 2009-5-15 15:19 | 显示全部楼层

同步口设置

void&nbsp;InitMcbsp(void)<br />{&nbsp;//禁用FIFO功能<br />&nbsp;&nbsp;McbspRegs.MFFTX.all&nbsp;=&nbsp;0x0000;<br />&nbsp;&nbsp;McbspRegs.MFFRX.all&nbsp;=&nbsp;0x001f;<br />&nbsp;&nbsp;McbspRegs.MFFCT.all&nbsp;=&nbsp;0x0000;<br />&nbsp;&nbsp;McbspRegs.MFFINT.all&nbsp;=&nbsp;0x0005;<br />&nbsp;&nbsp;McbspRegs.MFFST.all&nbsp;=&nbsp;0x0000;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;McbspRegs.MFFTX.bit.MFFENA&nbsp;=&nbsp;0;//禁止FIFO<br />&nbsp;&nbsp;McbspRegs.MFFTX.bit.XRESET&nbsp;=&nbsp;0;//发送器退出复位<br />&nbsp;&nbsp;McbspRegs.MFFRX.bit.RRESET&nbsp;=&nbsp;0;//接收器退出复位<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;McbspRegs.SPCR2.all&nbsp;=&nbsp;0x0000;//帧同步产生器复位,采样速率生成器复位,发送器复位<br />&nbsp;&nbsp;McbspRegs.SPCR1.all&nbsp;=&nbsp;0x0000;//发送器关闭,接收器复位<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;McbspRegs.RCR2.all&nbsp;=&nbsp;0x0041;//单相位帧,每帧一字,无压缩,MSB,1位数据延迟<br />&nbsp;&nbsp;McbspRegs.RCR1.all&nbsp;=&nbsp;0x0040;//每帧1字,字长16位<br />&nbsp;&nbsp;McbspRegs.XCR2.all&nbsp;=&nbsp;0x0041;//单相位帧,每帧一字,无压缩,MSB,1位数据延迟<br />&nbsp;&nbsp;McbspRegs.XCR1.all&nbsp;=&nbsp;0x0040;//每帧1字,字长16位<br />&nbsp;&nbsp;McbspRegs.SRGR2.all&nbsp;=&nbsp;0x8000;//外部时钟输入<br />&nbsp;&nbsp;McbspRegs.SRGR1.all&nbsp;=&nbsp;0x0101;//帧同步有效宽度1个周期,采样速度分频系数为1<br />&nbsp;&nbsp;McbspRegs.MCR2.all&nbsp;=&nbsp;0x0000;<br />&nbsp;&nbsp;McbspRegs.MCR1.all&nbsp;=&nbsp;0x0000;<br />&nbsp;&nbsp;McbspRegs.PCR1.all&nbsp;=&nbsp;0x0081;//外部帧同步输入<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;McbspRegs.SPCR2.bit.XINTM&nbsp;=&nbsp;2;//帧同步产生中断<br />&nbsp;&nbsp;//McbspRegs.SRGR2.bit.FSGM&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;//McbspRegs.SPCR2.bit.XRDY&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;McbspRegs.SPCR2.all&nbsp;|=&nbsp;0x0040;//采样速率生成器退出复位<br />&nbsp;&nbsp;McbspRegs.SPCR2.bit.FRST&nbsp;=&nbsp;1;//帧同步产生器退出复位<br />&nbsp;&nbsp;McbspRegs.SPCR2.bit.XRST&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;McbspRegs.SPCR1.bit.RRST&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;McbspRegs.SPCR1.bit.DXENA&nbsp;=1;<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />void&nbsp;AD_enable(void)<br />{<br />&nbsp;&nbsp;Uint16&nbsp;i;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;AD_MSE=1;<br />&nbsp;&nbsp;for(i=0;i&lt5;i++);<br />}<br /><br />void&nbsp;AD_disable(void)<br />{<br />&nbsp;&nbsp;Uint16&nbsp;i;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;AD_MSE=0;<br />&nbsp;&nbsp;for(i=0;i&lt5;i++);<br />}<br /><br />void&nbsp;AD73360_write_word(unsigned&nbsp;int&nbsp;cmd)<br />{<br />&nbsp;&nbsp;McbspRegs.DXR1.all=cmd;<br />&nbsp;&nbsp;while(McbspRegs.SPCR2.bit.XRDY==0){};<br />}<br /><br />Uint16&nbsp;AD73360_read_word(void)<br />{<br />&nbsp;&nbsp;while(!MRINT_flag);<br />&nbsp;&nbsp;MRINT_flag=0;<br />&nbsp;&nbsp;return&nbsp;AD73360_R_DATA;<br />}<br /><br />void&nbsp;AD_start()<br />{<br />&nbsp;&nbsp;unsigned&nbsp;int&nbsp;data;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;while(MRINT_flag){data=AD73360_read_word()^data;}<br />&nbsp;&nbsp;InitMcbsp();<br />&nbsp;&nbsp;AD_enable();<br /><br />&nbsp;&nbsp;AD73360_write_word(W73360REGB);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGC);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGD);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGE);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGF);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGG);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGH);<br />&nbsp;&nbsp;AD73360_write_word(W73360REGA);<br />&nbsp;&nbsp;AD73360_write_word(R73360DATA);<br />}<br />麻烦各位帮我看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

55

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部