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.

[参考译文] MSPM0G3519:CAN 缓冲器滤波问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1517441/mspm0g3519-can-buffer-filtering-issue

器件型号:MSPM0G3519
主题:SysConfig 中讨论的其他器件

工具/软件:

您好:

  • 我们想了解 mCAN 上的 RX 缓冲区设置、尤其是在滤波器方面。 我们已配置 FIFO、它们按预期运行。
  • 但是、当我们将接受的消息过滤器的目标更改为缓冲区时、似乎没有触发中断。 更改目标是指我分别将 RXFIFO0和 RXFIFO1的 EFEC/sfec 字段更改为0x7h、而不是0x1h 或0x2h。 使用 FIFO 时、我们将获得同一消息的正确中断和消息。
  • 我们确认已启用中断 DL_MCAN_INTERRUPT_DRX。
  • 所需的 RAM 也分配给缓冲区。 我们希望您提供有关基于缓冲器的接收正常运行所需的任何其他配置的指导。

MSG RAM 和过滤器配置如下所示:

请告诉我,是否有任何其他信息将需要从我的结束

提前感谢、

Om Dave

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

    您好、

    掩码为0x7ff、因此仅当接收到的消息 ID 与配置的消息 ID 过滤器相同时才会发生匹配。 您的发送消息 ID 应为0x1E1。  

    您是否在 SysConfig 中启用了存储到专用 Rx 缓冲区中断的消息?

    此致、

    现金好

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

    您好、

    是的、我们正在发送 id 0x1E1的消息。 正如我上面所说的,当 sfec 设置为0x1h 或0x2h 时,我可以成功地在我的任一 FIFO 中接收消息。  
    是、  如上所述启用了名为 DL_MCAN_INTERRUPT_DRX 的中断。

    谢谢你。

    Om Dave

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

    您好、

    我正在查看在 RX 缓冲器模式下使用的 SDK 中的演示工程 mcan_loopback。  DL_MCAN_MSG_INT 是 DL_MCAN_INTERRUPT_DRX 和 DL_MCAN_INTERRUPT_TC 。 因此、该演示会触发 存储到专用 Rx 缓冲区中断的消息。  

    此致、

    现金好

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

    您好:

    在测试中、我注意到掩码0x1FF为或更少时、消息会按预期存储在 RX 缓冲区中。 但当屏蔽0x2FF达到或更高时、中断会停止触发、并且不会存储消息。

    但是、0x7FF如果使用 FIFO 而不是缓冲区、则使用具有掩码的相同过滤器会正常工作。

    您能否说明 FIFO 和缓冲区之间的过滤有何不同、尤其是关于似乎影响消息接受的前3位(第9位–第11位)?

    谢谢、
    Om Dave

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

    您好、

    哦、我以前没有注意到这种行为。 我先运行一些测试、然后向您提供反馈。

    此致、

    现金好

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

    您好、

    您对此问题有任何更新吗?

    谢谢、

    Om Dave

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

    您好、

    很抱歉晚回复。  

    我检查了 TRM、标准 ID 过滤器(SFID1和 SFID2)的长度只有9位。 因此、它最多只能支持0x1FF。 它不能支持更高的 ID。  

    此致、

    现金好

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

    您好、

    参考您所附的照片、它显示11位[0–10]。 您能否澄清一下 TRM 是否可能有误、或者这里是否有其他活动?

    此外、0x7FF只要接受位置是 RX FIFO (0和1)、在用作掩码时一切都正常工作。 仅在选择缓冲区作为路径时才会出现该问题。

    谢谢、
    Om Dave

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

    您好、

    请参阅表21-13。 当在 RX 缓冲模式下设置"接收"时、与 RX FIFO 模式下相比、前3位具有不同的含义。

    此致、

    现金好