由于28335硬件外设上只有一个SPI接口,所以当SPI接口不够用时,可以将McBSP配置为SPI接口。
参考28335的数据手册,当DSP为主机时,配置McBSP为SPI所用到的接线如下图所示。
另外总结一些调试过程中的经验。
1.传输数据位数的确定
由RCR1寄存器中的RWDLEN1和XCR1寄存器中的XWDLEN1决定。分别对应着接受和发送的位数,在配置成SPI模式的时候,这两个位应该保持一致。具体的配置如下所示:
2.时钟极性和时钟相位的确定
时钟极性和时钟相位是由三个寄存器位决定的,即CLKSTP、CLKXP和CLKRP。
CLKSTP对应的是时钟相位,即CPHA。
CLKSTP位同时也是使能SPI功能的一个位,控制的是时钟停止模式的使能和禁用,这个功能开启时,McBSP兼容SPI。当CLKSTP=0或CLKSTP=1时,禁用SPI功能,CLKSTP=2或CLKSTP=3时,使能McBSP的SPI功能,时钟停止模式开启。CLKSTP=2时,在数据传输时时钟立即开启,相当于数据采样从第一个时钟边沿开启。CLKSTP=3时,时钟延迟半个周期,即数据采样从第二个时钟边沿开启。
CLKXP表示数据发送的时钟极性,CLKXP=0,发送的数据在时钟的上升沿采样,CLKXP=1,发送数据在时钟下降沿采样。时钟为CLKX。同时也决定着传输空闲时间的高低电平,即时钟极性。
CLKRP表示数据接收的时钟极性,CLKRP=0,接收的数据在时钟的下降沿采样,CLKRP=1,接收数据在时钟上升沿采样。时钟为CLKR。如下表所示。
这三位相互搭配,就会产生不同的时序。
3.传输波特率的设定
CLKGDV决定,是一个CLKG的分频数值,从0到255.
4.如何配置成SPI模式
通过CLKSTP、CLKXP和CLKRP来配置时钟的极性和延时的SPI兼容模式。
5.主机从机的配置
CLKXM=1,为主机,CLKXM=0为从机。