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.

[参考译文] TMS320F28377S:CAN 错误中断源

Guru**** 2482225 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/684870/tms320f28377s-can-error-interrupt-source

器件型号:TMS320F28377S

大家好、

我在调试 CAN-Connection 时遇到问题。 在传输过程中的某个点发生了错误。 我尝试通过错误中断了解情况。 根据文档、错误中断通过事件 PER、Boff 和 EWarn 触发。

这里是第一个问题:当接收到错误中断(CAN_INT.BIT.INT0ID = 0x7FFF 或0x8000)时、我想检查中断来自这3个中断中的哪个。 但是、通常在读取 CAN_ES 后、这些错误的状态位都不会被置位(从我检查的时间开始、CAN_ES 为0x0000)。 中断也不应来自状态更改中断、因为 CAN_CTL.bit.SIE = 0;如何判断中断来自何处?

我的第二个问题是关于错误计数器寄存器。 我在28377的技术参考手册中几乎找不到任何内容。 有时计数器会不断地递增、跳跃、下降并保持不变。 是否可以判断哪些事件触发错误计数器的行为? 我找到了其他 TI-MCU 的 CAN 模块的一些文档、但似乎有很大差异、因此我不知道要查看哪个模块。

非常感谢、

Dominik

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

    请您澄清一下"出错了"这一说法是什么意思吗? 您是否在总线上看到错误帧? 如果是、有什么(如电磁噪声)会触发这些误差帧?

     

    错误计数器根据 CAN 协议定义的一组复杂规则递增/递减。 对于任何 MCU (TI 或其他半导体公司芯片)中的任何 CAN 实施、这些规则都是相同的。 您需要参考 ISO 发布的 CAN 协议规范、以了解完整的规则集。 这些规则的概要也可在 CAN 的一些书籍中找到。

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

    很抱歉我迟到了。 非常感谢、我不知道这些规则是由 CAN 协议定义的、您的回答帮助我进一步。
    我通过 CAN 行驶的电机有时会停止、总线上有交通和错误、我无法解释。 经过更多研究、我发现这是电机软件中的一个错误、我现在将其发回。

    感谢您的帮助、很抱歉给您带来不便、
    Dominik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dominik、

                  很高兴您找到了问题的根本原因、并感谢您迅速关闭该帖子。 不存在“不便”。 我们很乐意为客户提供任何可能的帮助。