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.

[参考译文] TMS320F2800155-Q1:如何恢复 CAN 总线断开? 具体步骤是什么

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1390284/tms320f2800155-q1-how-to-restore-the-can-bus-bus-off-what-are-the-specific-steps

器件型号:TMS320F2800155-Q1

工具与软件:

尊敬的团队:

    在我的调试过程中、我发现总线总是出现异常、例如、没有报告任何报告、因此我怀疑此时总线处于关闭状态。 但是、我读了很多方法、没有得到明确的答复、所以我希望得到贵国官员的答复。 目前、I 短接 CANH 和 CANL。 在这种情况下、CAN 将报告错误、从而导致不报告任何数据。 目前、我有两种方法。 can_setAutoBusOnTime (cana_base、100)该  函数求解、从现象看来要解决、另一种方法是调用 can_enableController (uint32_t base)解决方案、使 canaRegs.can_CTL.init=0;似乎能够恢复通信。 我可以问一下正确的解决方案是什么吗?

    同时我也有个难题、当我的产品加载到总线上时、总线上会发送和接收到大量数据、此时、CAN 通信不会报告任何数据、我想问一下、这种现象 CAN_ERROR 吗? 如果发生这种情况、是否以与总线 BUSOFF 相同的方式对其进行处理?

期待您的回复。

此致

Zhang

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

    Zhan、您好!

    您能否先确认问题实际上是总线关闭问题?  为此、您可以检查 CAN_ES 状态寄存器以及错误计数器寄存器 CAN_ERRC 的内容。  正常情况下、CAN 总线中不应有任何导致总线断开的事件。  正确的解决方案是解决总线关闭情况的原因、该原因可能是一个节点上的时序容差或另一个节点上的接触点问题、或破坏总线中 CAN 帧的其他一些可能性。

    只要未禁用自动总线打开特性、DCAN 模块将自动执行总线关闭恢复。  正确的方法是使用  CAN_setAutoBusOnTime() API 设置离线恢复时间。  其余由 DCAN 模块本身完成。  

    此致、

    Joseph

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

    您好、Joseph  

     我们进行仿真和调试是不方便的。 我无法确定总线是否已关闭、因为我们在车辆测试中、出现这种情况的概率非常低、但他的过程在通信过程中始终会中断、即我的主机未收到数据报告。 在这个时候,我的操作是关机,开机,然后再次正常,但我没有在这个时候配置 Autobuson。 因此、我认为未报告此类数据的原因是错误。 因此、我想问、除了导致我的数据不被报告的错误之外、这是否是由这些原因引起的? 由于此问题只能在车辆上重复出现、

    此致、

    Zhang