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