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.

[参考译文] TMS320F28P550SJ:MCAN 过滤器元件不工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1620081/tms320f28p550sj-mcan-filter-element-not-working

器件型号: TMS320F28P550SJ
主题中讨论的其他器件: test2.

尊敬的专家:

客户正在使用 syscfg 开发 mcan 函数。 它们使用自己的板、CAN H/L 连接到连接 PC 的 CAN 调试器。 我们使用 CAN 调试器向 F28P55 发送和接收帧。

我们使用传统 CAN、并已正确设置 CAN TX 功能。 我们能够将帧发送到调试器、这样就可以排除任何硬件/波特率问题。

我们在使用过滤器元件测试接收函数时遇到问题。  

我们设置了三个过滤器元素、如下所示、它们应该涵盖任何 ID、所有帧都进入 FIFO0。

image.png但是、C2000 不会接收这些帧。 从不进入中断、我们正在从调试器看到错误帧、这可能是由于 C2000 未发送 ACK 导致的。

接下来、我们开启了对 FIFO0 不匹配帧的接受、如下所示:

image.png

然后可以正确接收帧、使用正确的 ID 和数据测试标准 ID 和扩展 ID。 此结果应该可以排除中断配置中的问题。 问题将是过滤器元素未能匹配后续帧的原因  

我想象一下下面的屏幕截图中的问题。  

左侧是 ISR 中的代码、我使用 IF 语句来判断过滤器元素是否与传入帧匹配。 如果任何元素匹配、变量 test2 将添加一个元素。 如果非过滤器元素匹配、则 test3 加一。

在表达式窗口中、您可以看到 rxMsg 结构正确显示了接收的数据和 ID、但是它来自“不匹配“路由、因为只有 test3 不为零、test2 为零。

image.png

过滤器元素为什么不匹配?

我也会在这里添加一些相关的配置。 所有配置均通过 syscfg 完成。

image.png

 

image.png