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.

[参考译文] TMS570LS1227:DCAN 总线关闭恢复

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1033234/tms570ls1227-dcan-buss-off-recovery

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

我正在尝试了解和使用总线恢复功能。  我启用了 CAN1的自动总线开启配置、通过拇指夹数字将其设置为100ns。

然后、我拔下一根 CAN 电缆。  我确实会得到3个中断、从警告到总线关闭错误通知位。  之后、我希望 DCAN 的自动总线恢复能够启动。

但是、在我将 CAN 电缆插回后。 不会发生任何情况。 总线未恢复、我的 TMS 一直无法发送任何内容。 此外、不会出现任何其他通知、即插入或拔出电缆。

恢复通常是如何工作的? 该手册说:

我不能完全确定它是否一直在等待这种情况、或者自动总线关闭恢复不起作用或其他问题。

有什么帮助?

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

    跟进:  

    我刚才验证了、尽管我在 HalCogen 中启用了自动总线、但 Ctrl 中的 Init 位不会为我清除。

    我的错了什么...

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

    您好!

    只有当 TEC 值超过255时、CAN 节点才会进入"BUST_OFF"状态。  

    如果您拔下 CAN 电缆、CAN 节点是 CAN 总线上的唯一节点、它将保持错误被动状态、永远不会进入总线关闭状态。  

    请查看 CAN 规格:

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

    跟进2:

    事实上、我在另一个地方更改了控制器初始化设置、但没有恢复自动总线恢复功能。  

    修复后、它将按我的预期工作-恢复连接/总线。

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

    嗯、我认为您的解释不正确。 至少在我观察到的 TI DCAN 模块自动恢复方面。

    断开连接-在这种情况下丢失电线-触发3个 DCAN 错误,其中2个通过 ISR 报告。  

    首先是警告、 然后是被动模式-被置位但不触发中断-在这之后、当错误丰富了最大阈值时、 生成总线关闭错误并触发 ISR。

    之后,如果 DCAN 中设置了“自动总线打开”,则在预设超时之后,它会尝试“重新覆盖”它(如定义)。  否则、除非软件重新设置 Init 位、否则您的模块在之后一直保持静音、直到完全 SoC 复位。

    昨天我证实了这种“容易”的感觉(对我来说...) 插入/拔出电缆时出错、DCAN 很好地捕获并根据我的设置正确恢复。