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.

[参考译文] TMS320F28335:双 DSP 通过 McBSP 接口进行通信、使 DSP 处于领先地位

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/732195/tms320f28335-double-dsp-communicating-through-mcbsp-interface-leading-dsp-down

器件型号:TMS320F28335

我正在参与一个 UPS 开发项目、其中使用双28335 DSP 作为控制器。这两个 DSP 通过 McBSP 进行通信。

我正在计算一个 DSP 无法从另一个 DSP 接收消息的问题。我尝试重新建立 McBSP 外设、它可以正常工作;但有时  

DSP 可以关闭。下面是我使用的 McBSP 初始子 rootine、

EALLOW;
GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 2;// GPIO20是 MDXA 引脚
GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 2;// GPIO21是 MDRA 引脚
GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 2;// GPIO22是 MCLKXA 引脚
GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 1;// GPIO58是 MCLKRA 引脚(根据需要注释)
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 2;// GPIO23是 MFSXA 引脚
GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 1;// GPIO59是 MFSRA 引脚(根据需要注释)


GpioCtrlRegs.GPAPUD.bit.GPIO20 = 0;//启用 GPIO20 (MDXA)上的上拉
GpioCtrlRegs.GPAPUD.bit.GPIO21 = 0;//启用 GPIO21上的上拉(MDRA)
GpioCtrlRegs.GPAPUD.bit.GPIO22 = 0;//启用 GPIO22上的上拉电阻(MCLKXA)
GpioCtrlRegs.GPBPUD.bit.GPIO58 = 0;//启用 GPIO58上的上拉电阻(MCLKRA)(需要注释)
GpioCtrlRegs.GPAPUD.bit.GPIO23 = 0;//启用 GPIO23 (MFSXA)上的上拉电阻
GpioCtrlRegs.GPBPUD.bit.GPIO59 = 0;//启用 GPIO59上的上拉电阻(MFSRA)(根据需要注释)

GpioCtrlRegs.GPAQSEL2.bit.GPIO20 = 3;//异步输入 GPIO20 (MDXA)
GpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 3;//异步输入 GPIO21 (MDRA)
GpioCtrlRegs.GPAQSEL2.bit.GPIO22 = 3;//异步输入 GPIO22 (MCLKXA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3;//异步输入 GPIO58 (MCLKRA)(需要注释)
GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 3;//异步输入 GPIO23 (MFSXA)
GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3;//异步输入 GPIO59 (MFSRA)(需要注释)

EDIS;
//********* 复位 McBSP

McbspaRegs.SPCR2.bit.frst=0;//帧同步发生器复位
McbspaRegs.SPCR2.bit.GRST=0;//采样率发生器复位
McbspaRegs.SPCR2.bit.XRST=0;//发送器复位
McbspaRegs.SPCR1.bit.RRST=0;//接收器复位

McbspaRegs.SPCR1.all=0x0000;//回送禁用,右对齐,
McbspaRegs.SPCR1.bit.CLKSTP= 0;//2014.4.4

McbspaRegs.pcr.all=0x0000;
McbspaRegs.pcr.bit.CLKXM =1;//Vivian20140409
McbspaRegs.pcr.bit.CLKRM =0;



McbspaRegs.pcr.bit.SCLKME = 0;//vivian20140404
McbspaRegs.SRGR2.bit.CLKSM =1;//Vivian20140409

McbspaRegs.SRGR2.bit.GSYNC=1;//vivian20140404


McbspaRegs.pcr.bit.CLKXP = 0;// CPOL = 0、CPHA = 0上升沿无延迟
McbspaRegs.pcr.bit.CLKRP = 0;//Vivian20140409

McbspaRegs.pcr.bit.FSRM = 0;
McbspaRegs.pcr.bit.FSRP=0;//20140404高电平有效
McbspaRegs.pcr.bit.FSXP=0;//20140409 Vivian 高电平有效


McbspaRegs.SRGR2.bit.FSGM=0;
McbspaRegs.pcr.bit.FSXM=1;//////////// Vivian 20140409


McbspaRegs.SRGR1.all= 0x0F;//帧宽度= 1 CLKG 周期、CLKGDV=16 // Ethan 2014.5.5

McbspaRegs.RCR2.bit.RDATDLY=01;// FSX 设置时间1在主控模式下。 0表示从机模式(接收)
McbspaRegs.XCR2.bit.XDATDLY=01;// FSX 设置时间1在主控模式。 0表示从机模式(发送)


McbspaRegs.RCR2.bit.RFIG = 1;//Ethan 2014.4.29
McbspaRegs.XCR2.bit.XFIG = 1;

McbspaRegs.RCR2.bit.RPHASE=0;//// Vivian 20140404
McbspaRegs.RCR1.bit.RFRLEN1 =0;// 2014.24 1字
McbspaRegs.RCR1.bit.RWDLEN1=5;// 32位字//Ethan 2014.4.4.30


McbspaRegs.XCR2.bit.XPhasy=0;//// Vivian 20140409
McbspaRegs.XCR1.bit.XFRLEN1 =0;// 2014.24 1字
McbspaRegs.XCR1.bit.XWDLEN1=5;// 32位字//Ethan 2014.4.4.30

McbspaRegs.SPCR1.bit.RINTM=0;
McbspaRegs.MFFINT.bit.RINT = 1;//启用接收中断

McbspaRegs.SPCR2.bit.GRST=1;//启用采样率发生器
delay_loop ();//等待至少2个 SRG 时钟周期
McbspaRegs.SPCR2.bit.XRST=1;//从复位中释放 TX
McbspaRegs.SPCR1.bit.RRST=1;//从复位中释放 RX
// delay_loop ();
clkg_delay_loop ();
McbspaRegs.SPCR2.bit.frst=1;//帧同步发生器复位

换句话说、是否有通过 McBSP 接口实现双 DSP 通信的参考设计?

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

    Huizhao、

    我有几个问题可以帮助我们找到问题的根源

    1. 您是否已确保主设备正在传输正确的数据?
    2. 从设备上的数据是否损坏?
    3. 数据是如何损坏的? 它是否已移位? 一个词?
    4. 数据损坏发生在何时? 总是? 事件之后? 一段时间后?
    5. 确保两个设备之间的连接正确。 您需要确保主数据输出引脚连接到从数据输入引脚。 在主控和受控模式下、McBSP 的接线请参考时钟停止模式部分。

    侧注:请避免在纯文本编辑器中发布大量代码块。有一个"SyntaxHighlighter"工具可让您插入具有语法突出显示功能的格式化代码。 请选中"折叠"复选框。 这有助于使线程更易于使用。 我将编辑您的帖子、以显示使用 SyntaxHighlighter 的代码的外观。

    谢谢、
    标记

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

    自发布以来已经有几天了。 我将把这个线程标记为已关闭。 如果您仍有问题、请发布其他信息、我们可以从中获取。

    谢谢、
    标记