TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] CCS:28337D 的 McBSP 被扩展至 SPI、但是一直接收到的数据为0xFF

Guru**** 2048030 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/831452/ccs-the-mcbsp-of-28337d-is-extended-to-spi-but-the-data-received-is-0xff-all-the-time

工具/软件: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 的最后一篇文章中有一个相当综合的代码部分。

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/753705?tisearch=e2e-quicksearch&keymatch=McBSP%20in%20SPI%20mode 

    最棒的
    Matthew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    想要查看您是否已解决与上述问题相关的问题、或仍有其他问题。  我将标记为 TI 认为已解决、但请随意回复或创建新帖子。

    最棒的
    Matthew