This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
28377D 的 McBSP 扩展为与 CPLD 进行 SPI 通信。 DSP 是主机、CPLD 是从器件(只有一个从器件)。 芯片选择、CLK 和传输没有问题、CPLD 发送到 DSP 的数据也是可见 的、数据 通过 示波器是正确的。 但 DRR1在 CCS 中始终显示0xFF。
您是否看过 C2000 Ware 中的示例、以查看您的代码中是否存在任何关键差异? 您可以在 http://dev.ti.com/tirex/explore/node?node=ACxgaSK11jg5sHpBfBi8KA__gYkahfz__LATEST 上看到它
我从示例中看到、这个模式下的 McBSP 需要32位数据、如果你只传输8位字、那么需要进行移位来获得真正的总线数据。
请告诉我您的想法。
最棒的
Matthew
我在 C2000 Ware 中看到了示例 ,下面是配置代码,您可以查看我的配置代码,我认为没有问题,但是 输入数据寄存器的值始终为0xFF。我使用示波器可以看到输入数据的电平是正确的。 但我不知道为什么读取数据寄存器显示为0xFF。(CCS 中的 McbspaRegs.DRR1.all=0xFF)
McbspaRegs.SPCR2.all = 0x0000;//重置 FS 发生器、采样率发生器和发送器
McbspaRegs.SPCR1.all = 0x0000;//复位接收器、右对齐字、数字回路断开。
McbspaRegs.pcr.all = 0x0F08;//(CLKXM=CLKRM=FSXM=FSRM=1、FSXP=1)
McbspaRegs.SPCR1.bit.DLB = 0;
McbspaRegs.SPCR1.bit.CLKSTP= 3;//与 CLKXP/CLKRP 一起 确定时钟方案
McbspaRegs.pcr.bit.CLKXP = 0;// CPOL = 0、CPHA = 0上升沿 无延迟
McbspaRegs.pcr.bit.CLKRP =1;
McbspaRegs.RCR2.bit.RDATDLY = 01;// FSX 设置时间1处于主控模式。 0表示从机模式(接收)
McbspaRegs.XCR2.bit.XDATDLY= 01;// FSX 设置时间1在主控模式中。 0表示从机模式(发送)
McbspaRegs.RCR1.bit.RWDLEN1 = 2;// 16位字
McbspaRegs.XCR1.bit.XWDLEN1 = 2;// 16位字
McbspaRegs.SRGR2.all = 0x2000;// CLKSM=1、FPER = 1个 CLKG 周期
McbspaRegs.SRGR1.ALL = 19
McbspaRegs.SPCR2.bit.GRST = 1;//启用采样率发生器
delay_loop ();//等待至少2个 SRG 时钟周期
McbspaRegs.SPCR2.bit.XRST = 1;//从复位中释放 TX
McbspaRegs.SPCR1.bit.RRST = 1;//从复位中释放 RX
McbspaRegs.SPCR2.bit.frst = 1;//帧同步发生器复位
请看一下这篇关于在 SPI 模式下使用 McBSP 的文章、TI 的最后一篇文章中有一个相当综合的代码部分。
最棒的
Matthew
想要查看您是否已解决与上述问题相关的问题、或仍有其他问题。 我将标记为 TI 认为已解决、但请随意回复或创建新帖子。
最棒的
Matthew