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.

[参考译文] TMS320F28069:CAN 掩码管理

Guru**** 2530350 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/601750/tms320f28069-management-of-can-mask

器件型号:TMS320F28069

你(们)好。

我发布这篇文章是因为我无法解决我的问题、我现在有点迷路了。

我希望能够过滤邮箱6-9的接收中的邮件。

我在 CAN SCC 中工作。

然后我发现我应该使用 CANGAM、在这里、我的帧是标准的、只有28:18位被使用。

我的节点 ID 是59 (0x3B)。

我将 CANGAM 设置如下:

ECANaRegs.CANGAM.ALL = 0x80C40000; //  1XX0 0000 1100 01XX XXXX XXXX XXXX XXXX XXXX XXXX,其中1=无关

我可以接收 CAN 消息0x73B、但不能接收0x63B  

设置 CANGAM 的正确方法是什么?

我不知道它的工作原理。

提前感谢您的反馈。

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

    Celine、

      我不明白是如何接收到0x73B 的。 设置掩码的方式是、只有位23、22和18 (32位 MSGID 字段)或位5、4和0 (11位 MSGID)是"无关"的。 请参阅随附的电子表格。

    您是否使用 CCS 验证了写入 MSGID 寄存器和 CANGAM 寄存器中的值? 目前、禁用代码中的所有 EDIS 指令、并确保 EALLOW 始终有效。 此外、还应确保32位 R/W.e2e.ti.com/.../eCAN_5F00_mask.xlsx

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

    感谢您的反馈。 我从以前在那里工作的那个人那里得到了代码、确实是错误的。 CANGAM 未在 EALLOW 下设置(第一个问题)。 事实上、正如您说过的、我的结果与 CANGAM 设置不一致、我理解了原因。 我查看的结果(接收到的帧)是针对0到9的邮箱、而不仅仅是6-9 (应用了滤波器的地方)、因此我接收到了帧、但在正确的邮箱中没有。
    总之、感谢您现在正确设置了遮罩。

    Celine
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴您能正常工作。 请关闭帖子吗?