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.
我正在尝试了解和使用总线恢复功能。 我启用了 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 很好地捕获并根据我的设置正确恢复。