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.

[参考译文] TMS320F2800157:MCAN 未进入总线关闭状态

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1300965/tms320f2800157-mcan-not-going-into-bus-off-state

器件型号:TMS320F2800157

我正在尝试通过发送帧并短接 CANH 和 CANL 来强制 MCAN 进入总线关闭状态。 它很快进入错误被动模式、但在达到128后、发送错误计数器(TEC)停止递增。  

正如我在阅读中所做的那样、通过自动帧传输、MCAN 应该会继续尝试传输该帧、而 TEC 应该以255的速率继续执行、然后进入总线关闭状态。 但在 CAN 的设计提示(pdf、来自 TI - https://www.ti.com/lit/an/spracu9/spracu9.pdf?MCAN=1701944094163、第4.1节)中指出 ts 确实会递增到128然后停止、同时 MCAN 仍在重新传输、等待获取和 ACK 且不进入总线关闭状态。  

我的问题是为什么 TEC 不能增加到255并进入总线关闭状态? 我必须引入一些其他类型的错误才能进入总线关闭状态吗?  

我还想知道为什么在我的 TMS320参考手册的 MCAN 部分下没有提到脱离总线恢复?

顺祝商祺、M

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

    尊敬的 Matic:

    您是否监控了 MCAN_PSR.BO 位以查看总线是否真正关闭?  与 DCAN 不同、MCAN 上没有自动脱离总线恢复。  恢复必须由用户管理。  下面的 MCAN_PSR.LEC 说明中提到了在 MCAN 中执行离线恢复的间接方法。  用户必须轮询 MCAN_PSR.BO 或通过启用 MCAN_IE.BOE (总线关闭启用)并使用寄存器 MCAN_ILS 和 MCAN_Ile 为总线关闭分配中断线路、然后在该 ISR 例程中将 CCCR.init 清除为0、以允许总线关闭恢复。  以下是恢复说明的 MCAN_PSR.LEC 代码片段:

    此致、

    约瑟夫

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

    感谢您的帮助、我使其正常工作。 然后、我设法通过将 MCU CAN TX 和 Rx 引脚短接在一起(而不是在收发器之后短接线路)将其置于总线关闭状态。

    此致、M