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.

[参考译文] MSPM0G3107:每次都无法恢复总线关闭错误

Guru**** 2394305 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1506669/mspm0g3107-cannot-recover-bus-off-error-each-time

器件型号:MSPM0G3107

工具/软件:

监测总线关闭状态后、我尝试复位 MCAN 模块 (通过 DL_MCAN_INIT)、我理解感谢论坛(TMS320F28P650DK:MCAN 如何从 CAN 总线关闭状态中恢复- C2000微控制器论坛- C2000Tm︎ 微控制器- TI E2E 支持论坛)我应 使用 DL_MCAN_txBufCancellationREQ 清除 Tx 缓冲区状态、请提供一些使用示例吗? 这似乎我可以恢复,但不在每次巴士关闭发生

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

    请参阅此处的 MCAN 演示:

    e2e.ti.com/.../mcan_5F00_application_5F00_LP_5F00_MSPM0G3507_5F00_nortos_5F00_ticlang.zip

    测试结果:

    此测试结果不是本次演示的结果、但您可以参考以下测试结果:

    演示启用 CAN 总线关闭状态更改中断:BO

    并将检测 CAN BO 中断中的总线关闭状态寄存器:

                   DL_MCAN_getProtocolStatus (MCAN0_INST、&gProtStatus);

     

    然后在主循环中、CPU 将在时重新启动 CAN

                   IF (CANBusOff ==1)

    并在 MCAN 重新启动期间将调试引脚设置为高电平。

     

    测试结果:

                   从0x00到0x06的 ID 成功发送、总共8帧。

                   由于 CANH 和 CANL 短路、从0x07到0x0C 的 ID 发送失败。

                                   总共发送5帧失败、CPU 尝试重新启动 CAN 6次。

                                                   您可以看到 BUSOFF 引脚切换6次、最后一次重新启动可以成功。

                                                   Void MCAN0_Restart ( Void )

                   然后、在释放 CANH 和 CANL 短接后、CPU 可以成功重新启动。

                   CAN 分析仪成功接收到0x0D 至0x11的 ID、总共5帧。