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.

[FAQ] [参考译文] [常见问题解答] TMS320F28P559SJ-Q1:从 CAN 总线关闭中恢复的过程

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1392807/faq-tms320f28p559sj-q1-the-procedure-to-recover-from-can-bus-off

器件型号:TMS320F28P559SJ-Q1

工具与软件:

从 CAN 总线关闭中恢复的过程

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

    CAN 总线上的每个 CAN 节点(DCAN 或 MCAN)都有两个错误计数器:发送错误计数器(TEC)和接收错误计数器(REC)。 如果 REC 或 TEC 超过127、CAN 节点进入错误被动状态、如果 TEC 超过255、则进入总线关闭状态。 在 CAN 总线关闭状态下、CAN 节点将自身与 CAN 总线断开、并且无法再传输数据或生成错误标志。

    CAN 总线错误可能由电缆故障、噪声、端接错误、CAN 节点故障等引起 在调试中、短接 CANH 和 CANL 可以快速进入 CAN 总线关闭状态。

    对于 DCAN、节点进入总线关闭状态后、CPU 可以通过复位 CCCR 来启动总线关闭恢复序列。 INIT 位、或者如果启用了自动开启总线(ABO)、DCAN 将自动启动离线恢复序列。 一个示例。 INIT 位已复位、DCAN 节点将等待129次出现总线空闲(等于129 × 11个连续隐性位)、然后再恢复正常运行。 总线关闭恢复序列结束时、错误计数器将复位。

    对于同时支持传统 CAN 和 CAN FD 的 MCAN、MCAN 控制器不会自动管理从总线关闭恢复、因此应用软件必须执行此操作。 要重新启动 MCAN 操作、用户需要清除 CCCR.INIT。 之后。 INIT 被清除、然后器件将等待总线出现129次空闲(129 * 11个连续隐性位)、然后再恢复正常运行。

    然后再复位 CCCR。 INIT 位、应用软件需要清除所有待处理的消息和 CAN TX 状态(F280039 MCAN 驱动程序 MCAL 不包含此步骤、CAN 总线关闭未恢复)

    在总线关闭恢复过程中、CAN 不接收消息并且不进行传输。 在总线关闭恢复继续的过程中请求传输时、该传输将在恢复完成后启动。

    关闭总线恢复完成后、选择 PSR。 BO、ECR。 TEC 和 ECR。 REC 被清零、PSR 也被清零。 ACT 被设置为空闲。