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.

[参考译文] TMS320F280039:在快恢复慢恢复的 BUSOFF 上实施 TI280039芯片

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1429208/tms320f280039-implementation-of-ti280039-chip-on-busoff-fast-and-slow-recovery

器件型号:TMS320F280039

工具与软件:

TI280039芯片如何实现 BUSOFF 的快速或慢速恢复? 是否有代码参考?

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

    您好、Liu、

    由于 CAN 协议需要固定数量的总线空闲事件、因此无法缩短总线关闭恢复时间。  请参阅以下有关从 TRM 恢复总线的代码片段:

    此致、

    Joseph

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

    您好、 Joseph、á lez

       感谢您的回答、然而,我的问题是, BUSOFF 恢复将有尝试恢复时间和尝试恢复时间。 例如、生成 BUSOFF 后、将在100ms 周期内尝试快速恢复。 10次尝试后、仍然没有恢复、因此它需要继续尝试在1秒慢恢复时间内恢复、直到 BUSOFF 恢复。 自恢复逻辑已实现、现在您需要具有快速和慢速恢复功能的逻辑。

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

    您好、Liu、

    您知道了这一点、但是 F28003x 没有该计时功能、因为它遵循 CAN IP 的自动总线开启协议。  您可能必须创建自己的软件例程并实施计数器来监控总线恢复的尝试次数、以便实现所述的快速和慢速恢复方案。

    此致、

    Joseph

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

    尊敬的  Joseph:

       是否有任何相关代码可供我参考? 谢谢!

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

    您好、Liu、

    遗憾的是、我们没有此方面的示例参考代码、但您可以做的是 启用自动总线恢复功能、继续轮询 CAN_ES 的 Boff 位、并且每当总线仍然无法从总线关闭状态恢复时、都会增加计数器。  然后、您可以使用此计数器来决定快速/慢速恢复。

    此致、

    Joseph  

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

    尊敬的  Joseph:

       如果 MCAN 发送 BUSOFF、是否可以使用 mcan 重新初始化来恢复 BUSOFF? 用户手册中有什么内容吗? 但没有任何描述。

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

    您好、Liu、  

    我想简单说明一下、因为 F280039同时具有经典 CAN 和 CAN-FD (也称为 MCAN)。  对于经典 CAN、有一个自动总线恢复功能。  在 CAN-FD (MCAN)中、必须启用总线关闭位才能触发中断、并且在该中断例程中、必须初始化 CAN-FD (MCAN)。

    此致、

    Joseph

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

    尊敬的 Joseph:  

       我没有使用中断、我使用了 BUSOFF 状态轮询、然后初始化了 MCAN、这不是测试的问题。

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

    您好、Liu、

    在 BUSOFF 轮询后手动初始化 MCAN 也将起作用。  您的 MCAN 初始化例程似乎没有问题、因此我将此帖子标记为已关闭。

    此致、

    Joseph