本帖最后由 beyondlovelife 于 2013-9-1 00:25 编辑
McBSP配置成全双工SPI,时鐘停止模式,无延迟。 DSP:TMS320VC5502,与FPGA通过McBSP通信。将AD採集数据传入DSP,16位,然后再输出。AD输入范围±5V.
1、FPGA做主,DSP做从。McBSP按照手册配置成从模式,FPGA做时序时,按道理16个时鐘就可以,结果McBSP接收从第一个时鐘开始,而发射从第一个和第二个时鐘一样,相当於延迟了一个时鐘,所以一共用了17个时鐘。最后时序做完后,多次用CCS加载程序,不是每次加载结果都一样: (1)有时能同时收发。当AD输入波形范围<5.4Vpp时,波形正确;但是AD输入范围>5.6Vpp时,波形错误,也就是说以输入范围一半為界限(前面有滤波器,会略微地衰减); (2)有时错误。无论输出多少,都是错误的。无波形输入时,仍有杂波输出。 2、DSP做主,FPGA做从。McBSP按照手册配置成主模式,结果当多次CCS加载程序,不是每次加载结果都一样: (1)90%是正确的;输入波形幅度多大都没有关系。 (2)10%有错误,没有输入的时候,仍然有很大的杂波输出,当有输入的时候,在波形上面夹杂著之前的低噪。
因此,产生疑问: 1、是不是DSP McBSP不能配置成全双工?只能单收或单发? 2、如果可以配置成全双工的话, (1)McBSP配置SPI从模式和主模式需要注意什么吗?(已经按手册进行配置)
(2)是不是可能FPGA时序有问题?(经多次调整和验证,应该没有问题) (3)程序中怎麼实现发送和接收能同时进行? tempLEFT = temp;//每次读数复制给变量 While(!MCBSP_rrdy(hMCBSP0)); temp= MCBSP_read16(hMCBSP0); While(!MCBSP_xrdy(hMCBSP0)); MCBSP_write16(hMCBSP0,tempLEFT);
这样可以实现收和发同时进行吗? 求大神赐教! |