TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] Starterware/TMS320F28335:CAN 通信问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/604897/starterware-tms320f28335-can-communication-issue

器件型号:TMS320F28335

工具/软件:Starterware

尊敬的、

我使用 F28335控制卡进行 CAN 通信。 编程通过 F28335的 MATLAB Simulink (从闪存模式引导)完成。 程序工作正常,但只要 CAN 总线出现故障(如 CANH 和 CANL 短路),控制器就会停止工作。 这是公平的、但当系统恢复时、控制器不会开始工作、但仍保持故障模式并停止工作。 它仅在重新启动控制器后才开始工作。  

我不明白导致这种情况的原因是硬件或软件造成的。 请帮助解决这一问题。

此致、

Vishal  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vishal、
    可以想象、节点进入了脱离总线(BO)。 请说明“系统还原时”的含义。 您是否意味着 CANH 和 CANL 不再短接? 如果是、那么现在发生的情况由 CANMC.ABO 位决定。 如果 ABO 位为1、则在128 x 11隐性位时间后自动从 BO 恢复。 否则、必须清除 CANMC.CCR 位才能从 BO 退出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哈雷什先生,
    感谢您的回复
    还有一些要点
    1、当它被恢复时、CANH 和 CANL 不再短路
    什么是128 x 11隐性位时间以及如何将其重新调整为实时。
    我正在使用 MATLAB Simulink 进行编码、因此可以清除 Simulink 代码中的 CANMC.CCR 位

    此致、
    Vishal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vishal、
    BO 条件后必须经过128 x 11隐性位时间、然后才能将节点重新接入网络(有关更多信息、请参阅 CAN 协议规范)。 如果 ABO=1、这会自动发生。 如果 ABO = 0、则必须清除 CCR 位。 我对 Simulink 代码不太熟悉。 您可能需要尝试 Mathworks 论坛。