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.

[参考译文] MSPM0G3507:无法设置特定数量的滤波器

Guru**** 2463330 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/1474720/mspm0g3507-failure-to-set-certain-amount-of-filters

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

工具与软件:

您好!

在为 CAN 消息设置过滤器时、我可以为 FIFO 和 RX 缓冲区的特定消息设置过滤器。 但扩展消息过滤器的数量似乎 远远少于该数量。  我想知道可能会出什么问题。

鉴于规范规定"在消息 RAM 中可以配置多达64个 Rx 缓冲器和两个 Rx FIFO"、我的理解是、对于标准和扩展消息的 RX 缓冲区、应该有多达64个滤波器。

为 RX 缓冲区设置滤波器 的方法如表20-13所示。 标准消息 ID 过滤器元素字段说明和 表20-14。 扩展消息 ID 过滤器元素字段说明。

过滤器数量定义为标准消息10、扩展消息30。 相应地配置 RAM 地址。

还有其他可能缺失的内容?

这是为滤波器元素设置的值。  虽然7号扩展33333333333可以接收,但8号111111111不能接收。

谢谢!

起重机

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

    尊敬的 Crane:

    由于规格显示"消息 RAM 中可以配置多达64个 Rx 缓冲区和两个 Rx FIFO"、我的理解是标准消息和扩展消息的 RX 缓冲区总共应该有多达64个过滤器。

    对于标准 ID 过滤器、它支持高达128;对于扩展 ID 过滤器、它支持高达64。

    需要注意的一点是地址映射中的地址范围。 我们需要 确保所有地址不会重叠。 支持的最大 RAM 为1KB。

    同时、SysConfig 中存在一个问题、那就是只有1个滤波器生效。 所以、您需要在主循环中设置额外的滤波器。 请尝试一下。

    B.R.

    SAL

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

    尊敬的 Sal:

    这是 RAM 配置:

    RAM 地址中没有覆盖。

    我不确定应该从 RX 缓冲区起始地址(最后一个)中保留的大小。 剩余空间与 RX 缓冲器的滤波器数量相关吗?

    是的、我知道只能在 SysConfig 中设置一个滤波器、其余滤波器需要在主循环中设置。 已成功设置16个过滤器。

    谢谢!

    起重机

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

    尊敬的 Crane:

    SysConfig 中可能有一个错误、我们将再次与工具团队确认并在稍后更新:

    如果我们检查 TRM 中的 Tx 事件 FIFO 大小:

    我们可以看到它包含2个字= 8个字节。 因此8x TX 事件元素将使用8*8=64字节的消息 RAM。

    而 SysConfig 仅分配2*8=16字节。

    也许您可以尝试修改它、看看它是否正常工作。 在当前配置中、Rx 缓冲器与 Tx 事件 FIFO 重叠。

    B.R.

    SAL

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

    尊敬的 Sal:

    不,这似乎不是原因。

    我按如下所示更改配置:

    结果与之前相同。

    谢谢!

    起重机

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

    尊敬的 Crane:

    好的。 另外、对于滤波器设置:

    1.您是否在软件代码中正确配置了 ID 过滤器?

    2.您为每种类型设置的 ID 过滤器类型是什么?

    另外、如果禁用  No.7扩展3333333 、设置为 No.8 111111111、那么它是否适用于 N0.7 333333? 我认为应用方面可能会有一些问题。

    B.R.

    SAL

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

    尊敬的 Sal:

    我能够接收由前7个过滤器针对扩展消息筛选的消息。 其余部分对不同的滤波器执行相同的操作。  

    写入所有滤波器元素的 EFID1和 EFID2的值包含在第一个帖子的屏幕截图中。 它们在调用 DL_MCAN_addExtMsgIDFilter ()之前打印出来。 对于 RXBUF 信号、EFEC 全部设置为7。

    我尝试对第7号、第8号和其他编号设置相同的消息 ID、这证明从消息模拟器发送的消息运行正常。 (这些消息并不是从任何应用发送的、而是从 CAN 消息分析工具发送的。)

    您是否能够在设置中验证这一点、以查看它在设置中如何为扩展消息配置7个以上的过滤器、或者配置10个以上的过滤器?

    谢谢!

    起重机

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

    尊敬的 Crane:

    好的、我明白了。

    我可以在您询问的场景前尝试进行验证。 当我忙于执行某个优先任务时、我可能会在下周更新一些进度。

    B.R.

    SAL