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.

[参考译文] TMS320F28335:无法工作。 CANREC 问题

Guru**** 2546020 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1413538/tms320f28335-can-not-working-canrec-question

器件型号:TMS320F28335

工具与软件:

我正在尝试通过 CAN-A 与两个 F28335进行通信 我正在使用 Spectrum Digital eZdsp 电路板。

此时、我尝试从节点 A 向节点 B 发送一条消息。节点 B 将仅确认该消息。 我没有读出来。 我将在节点 A 上设置 TRS 位、并等待 TA 位设置。

两者都配置了相同的位时序。 我尝试使用1Mbps 和250kbps。

完全无法正常工作。 似乎总线上没有活动。  TA 从不设置、TRS 从不清除。 两种 DSP 都 指示错误 被动状态(EP) 和警告状态(EW)。

总线关闭 位(BO)从未设置。

两个控制器的 CANTEC 和 CANREC 都上升/下降、依此类推...  

发送器的 CANREC 为什么一直向上? 它永远不会充当接收器! (它的位 TM 始终为1、RM 始终为零)。

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

    您好!

    CAN 协议能够检测错误。 但如果发生这种错误、它将无法纠正该错误。 如果发生错误、检测到的节点将向 CAN 总线发送一个错误帧。

    当  TEC 等于或超过128、或当 REC 等于或超过128时、节点成为错误被动节点、并设置状态寄存器(CAN_ES)的 EP 标志。 当 TEC 或 REC 达到96时、设置 CAN_ES 寄存器的 EWarn。  

    CAN 总线协议定义了几种特定的错误类型、每种错误类型都指示系统中的特定问题。 其中包括:

    1.位错误

    2.填充错误

    3.格式错误

    4. CRC 错误

    5. ACK 错误

    请检查 CAN_ES 寄存器的 LEC 位字段。 LEC 表示 CAN 总线上的最后一个错误。

    物理中断(如接线故障、连接不良或电缆损坏) 是常见的错误来源、因为它们可能会破坏通过网络传输的数据。

    CANA 和 CANB 节点都需要 CAN 收发器。 您的设置是否包含用于两个 CAN 控制器的收发器?  

    TRS 是指 IFxCMD 寄存器的 TX 请求(TXRQST)位吗? 您的信息中的 TA 是什么? 发送消息时、您向 IFxCMD 写入了什么内容?