TI中文支持网
TI专业的中文技术问题搜集分享网站

有没有MCBSP实现SPI接口的例程?

我用的是C5509A。请问TI官方有没有提供MCBSP实现SPI接口的例程?

Shine:

具体碰到什么问题?参考user guide上的6.5 Procedure for Configuring a McBSP for SPI Operation配置就可以了。http://www.ti.com/lit/ug/spru592e/spru592e.pdf

Shine:

回复 Shine:

找到一篇c6000的mcbsp接SPI ROM的应用报告, 有兴趣的话可以参考一下。http://www.ti.com/lit/an/spra487c/spra487c.pdf

Fangbin Dong:

回复 Shine:

我想通过SPI协议,让5509A与AT25256这个EEPROM进行通信,我希望采用MCBSP的中断方式来接受和发送数据,我目前自己写了一个一段程序,但是通信不成功,可能是我程序写的有问题,关键是我不知道问题出在哪。我已经按照你提供的配置方法去配置了MCBSP。我想问一下,有没有例程可以让我参考一下。

Shine:

回复 Fangbin Dong:

具体怎么通信不成功?量过时序吗?看一下时序是否匹配?

Fangbin Dong:

回复 Shine:

你好,我通过设置断点发现,程序没有进入接收中断程序,我所要发送和接受的数据是8bit word,因为我所用的EEPROM是按8bit word进行储存的。MCBSP的发送接收寄存器是16bit的,接收到8bit数据后,会触发接收中断吗?前提是我在配置MCBSP的时候,已经设置了,接收帧为single frame,1frame有一个word,一个word有8bit

Shine:

回复 Fangbin Dong:

检查一下R/XPHASE=0, R/XFRLEN1=0,R/XDATDLY=01这些设置是否正确?R/XWDLEN设成8bit时,只会发8bit数据,跟DRR寄存器是16bit无关。RRDY位置1吗?时序上EEPROM是否发了8bit数据给DSP?

Fangbin Dong:

回复 Shine:

恩,设置都是正确的。我又用查询方式,分布写了一下程序:

用的读写函数是MCBSP_write()和MCBSP_right()。最后程序是卡在了查询rrdy位置上,rrdy没有置1,请帮我看下,程序的逻辑有没有错,如果没错,再找别的原因。

Slave_Select(0);  

while(MCBSP_xrdy(hMcbsp0)!=1);  

MCBSP_write(hMcbsp0,0x06);  //Enable Write  

while(MCBSP_xrdy(hMcbsp0)!=1);

MCBSP_write(hMcbsp0,0x02);  //write cmd  

while(MCBSP_xrdy(hMcbsp0)!=1);  

MCBSP_write(hMcbsp0,0x00);  //addr    

while(MCBSP_xrdy(hMcbsp0)!=1);  

MCBSP_write(hMcbsp0,0x00);  //addr  

for(i = 0; i < 64; i++){   

while(MCBSP_xrdy(hMcbsp0)!=1);   

MCBSP_write(hMcbsp0,xmtbuf[i]);  

}  

Delay(10);  

while(MCBSP_xrdy(hMcbsp0)!=1);  

MCBSP_write(hMcbsp0,0x03);  //read cmd  

while(MCBSP_xrdy(hMcbsp0)!=1);  

MCBSP_write(hMcbsp0,0x00);  //addr  

while(MCBSP_xrdy(hMcbsp0)!=1);  

MCBSP_write(hMcbsp0,0x00);  //addr  

for(i = 0; i < 64; i++){   

while(MCBSP_rrdy(hMcbsp0)!=1);   

rcvbuf[i] = MCBSP_read(hMcbsp0);

 }  

Slave_Select(1);

Shine:

回复 Fangbin Dong:

你先要检查一下你的mcbsp_configure是否设置正确了?

时序是否量过?要EEPROM发送数据过来,RRDY才会置1.

Fangbin Dong:

回复 Shine:

恩,好的。配置没错,一步一步按照说明书里配置的。

时序的话,没有量过,也不会量,请问,有指导书吗?

Shine:

回复 Fangbin Dong:

用示波器量一下DR, CLKX, FSX管脚上的信号。

赞(0)
未经允许不得转载:TI中文支持网 » 有没有MCBSP实现SPI接口的例程?
分享到: 更多 (0)