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/TMS320F28035:2个 TMS320F28035之间的 CAN 通信

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/788878/ccs-tms320f28035-can-communication-between-2-tms320f28035

器件型号:TMS320F28035

工具/软件:Code Composer Studio

你(们)好  

我正在尝试使用 CAN 将数据从一个 MCU0传输到 MCU1。MCU0-能够传输数据、但 MCU1无法接收相同的数据。 请帮帮我。 我将随附发送器和接收器代码。

此致、

Silpae2e.ti.com/.../transmitter.txte2e.ti.com/.../receiver.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否看过 SPRA876中的示例? 还有同一文档中的调试提示?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、Hareesh、我已根据 我的要求修改了 SPRA876中的示例(CAN_TXLOOP、CAN_RXLOOP)、但接收 MCU 仍然无法获取任何数据。 我尝试 使用示波器在发送和接收 MCU 上的收发器的 CANL 和 CANH 引脚上查看数据、当我单独运行发送器代码时、我能够在两端看到一些数据。  一旦我开始运行接收器端代码、数据就会在两个 MCU 收发器端消失。 我要附上修改 后的代码。 您能否检查它在您的终端是否起作用?

    此致、

    Silpa

    e2e.ti.com/.../TXloop.ce2e.ti.com/.../RXLOOP.c

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

    Silpa、

                  您在发送器和接收器上使用不同的 MSGID。 由于您不使用过滤、MSGID 必须完全匹配。  

    在发送器侧、您将使用:

    ECANaMboxs.MBOX25.MSGID.ALL = 0x95555555;  

    在接收器侧、您将使用:

    ECANaMboxs.MBOX0.MSGID.ALL = 0x9555AA0;  

    这不奏效。 将其更改为:

    ECANaMboxs.MBOX0.MSGID.ALL = 0x95555555;   

    这是我的 app.note SPRA876中的调试检查清单的一部分:开始时不要使用接受屏蔽过滤。 发送相同的 MSGID。 一旦确认总线没有硬件问题、可以在稍后添加滤波。  

    此外、您将轮询 CANRMP 中的所有位、但仅配置 MBX0。 您的代码将一直等待 CANRMP 成为 FFFFFFFF、这种情况永远不会发生。 修改如下:

    /*开始接收*/
    
    while (1)
    {
    
    while (ECANaRegs.CANRMP.all!= 0x00000001){}//等待 RMP0被置位。
    ECanaRegs.CANRMP.ALL = 0x00000001; //清除 RMP0位
    RXCOUNT++;
    }
    

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

    Hareesh、

    我已根据您的建议更改了代码、但仍在接收终端邮箱 MBOX0、对于除 MSGID (我们正在分配)之外的所有字段、显示为0x00000000。 我随附了修改后的代码以及 this.e2e.ti.com/.../8311.transmitter.txt

    e2e.ti.com/.../4657.receiver.txt

    此致、

    Silpa

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

    请在接收器侧的 TX 和 RX 引脚上提供波形。  波形必须与随附的图相似、清楚地显示了 TX 和 RX 引脚上的活动。 具体而言、我正在寻找 ACK 信号。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有听到您的意见、假设您已经解决了您的问题。