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:CAN controlSUITE ECANA_TO_ECANB

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/599770/tms320f28335-can-controlsuite-ecana_to_ecanb

器件型号:TMS320F28335
Thread 中讨论的其他器件: controlSUITE

我开始使用 DSP TMS320F28335进行 CAN 工作。 我在 controlSUITE 中看到了 CAN 的示例程序。

我已经根据我的电路更改了 GPIO 引脚、除了它之外、我还没有更改程序中的任何内容。

当我运行这个程序时、我不会在 CAN 引脚(CANH、CANL)上获得任何数据或信号。 我正在使用收发器。

下面的示例程序是"eCAN_A_TO_ECANB"、我不理解程序中的几个方面。

1) 1)根据我的理解、如果没有其他节点、则可以进入循环并持续发送数据。 然后、我们在 CANH 和 CANL 引脚上观察到一些波形(信号)、我对吗?

2) 2)通过连接 DSP 的 CANA (CANH、CANL)和 CANB (CANA、CANL)引脚、我们可以测试该程序吗? 如果可以、我们需要修改程序、即我们需要启用 CANB 并在 GID、MD、ME 中写入值。 我是对还是不对?

3) 3)程序的名称是"ECANA to ECANB"、那么为什么我们不为 ECANB 的 MD、ME、GID 等指定值? 是否不需要它们?

/*写入 MSGID 字段*/

ECANaMboxs.MBOX25.MSGID.ALL = 0x95555555;//扩展标识符

/*将被测邮箱配置为发送邮箱*/

ECanaShady.CANMD.all = ECanaRegs.CANMD.all;
ECanaShady.CANMD.bit.MD25 = 0;
ECANaRegs.CANMD.ALL = ECANaShady.CANMD.ALL;

/*启用受测邮箱*/

ECanaShady.CANME.ALL = ECanaRegs.CANME.ALL;
ECanaShading.CANME.bit.ME25 = 1;
ECanaRegs.CANME.ALL = ECanaShadure.CANME.ALL;

/*写入主控寄存器中的 DLC 字段*/

ECANaMboxs.MBOX25.MSGCTRL.bit.DLC = 8;

/*写入邮箱 RAM 字段*/

ECANaMboxs.MBOX25.MDL.ALL = 0x55555555;
ECANaMboxs.MBOX25.MDH.ALL = 0x55555555;

/*开始传输*/

对于(i=0;i < TXCOUNT;i++)

ECanaShady.CANTRS.ALL = 0;
ECanaShady.CANTRS.bit.TRS25 = 1;//为待测试的邮箱设置 TRS
ECANaRegs.CANTRS.ALL = ECANaShady.CANTRS.ALL;

操作

ECanaShady.Canta.all = ECanaRegs.Canta.all;
} while (ECanaShading.Canta.bit.TA25 =0);//等待 TA5位被置位。


ECanaShading.Canta.all = 0;
ECanaShady.Canta.bit.TA25 = 1;//清除 TA5
ECanaRegs.Canta.all = ECanaShady.Canta.all;

循环计数++;

_asm (" ESTOP0");//在此处停止

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

    对于上述查询、如代码中所示、将进入循环并持续发送数据、直到接收到确认。

    是的、通过连接 CANA 和 CANB 的引脚、您应该能够运行该示例。 您可以修改程序、只需将引脚配置设置为用于 CANA 和 CANB 的引脚。

    CANB 的值分配在不同的文件中完成、如示例说明中所示。

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

    问题得到解决。 在硬件中终止电阻器连接不好、在连接它们之后、controlsuit 中的示例程序正在工作。

    谢谢、此致、
    Sumanth