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.

[参考译文] CCS/TMS320F2810:tms320f2810

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/669677/ccs-tms320f2810-tms320f2810

器件型号:TMS320F2810

工具/软件:Code Composer Studio

我们将 TMS320F2810 DSP 用于电机控制应用。 在本例中、我们的驱动器将是从器件、而 PLC 是主器件。 最近、我们发现 CAN 引擎有时不响应 RTR 消息的问题。 当我查看状态寄存器时、我观察到位填充错误位处于活动状态。 此错误是否会导致 CAN 引擎停止?

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

    我假设 RTR 由主器件发送、并且 F2810 (从器件)应对其做出响应。 填充错误本身不会停止通信。 该协议旨在从错误条件中恢复正常、除非过多的错误迫使节点进入脱离总线状态。 下面我将介绍下一个问题:节点是否处于脱离总线状态? 您是否检查了在总线关闭期间设置的 CCR 位? 如果确实处于脱离总线状态、您的代码如何处理恢复?

     

    您说它没有响应 RTR。 是否可以通过设置 TRS=1来传输数据帧? 我要求这个问题区分这两种情况:1. 节点无法响应 RTR (Vs) 2. 节点无法传输任何数据。 这条思路使我们得出勘误表。 您是否已查看以下勘误表:eCAN:意外停止传输操作(SPRZ193Q 的第17页)?

     

     

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

    感谢您的回复。
    到目前为止、在总线关闭情况下不执行任何恢复处理。 我们将实施它。

    在 CAN 错误和状态寄存器中观察到以下值
    0x0010010 --这意味着只有 CCE 位和填充错误位被置位。 未设置总线关闭位。

    CAN 被配置为生成接收中断、当没有错误时、该中断工作正常。 但是、当错误条件发生时、我们观察到接收中断也停止工作、即当 RTR 被发送到从器件时、它不会进入接收 ISR。

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

    Kireeti、

    在我的上一篇文章中、您没有回答过很多问题。 请回答这些问题。

    设置 CCE 意味着设置 CCR、这意味着节点处于总线关闭状态。

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

    您好、先生、

    我已经处理 了您在回复中提到的问题。 以下是观察结果。

    1.错误情况下 CCR 位被置位。

    2.设置 TRS 位无法发送数据。 我已经在 CANAlyser 的帮助下验证了这一点。 当我尝试发送数据时、在 CANAlyser 上看不到任何数据。

    3.我已经完成了勘误表"eCAN:意外停止传输操作 (SPRZ193Q 第17页)"。 我在代码中实现了文档中提到的恢复选项。 通过验证 CCE 位、我设置了 CCR 位并清除了 CCR 位、但这不能解决问题。 这样做未能恢复总线关闭状态。

    谢谢、此致

    Kireeti  

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

    似乎这不是勘误表的情况。 您的节点似乎只是处于脱离总线状态。

     

    CANalyzer 上的 CAN 流量是否显示情况之前的错误帧?

    在代码中、您是否监控错误计数器?

    您是否监测 CANES 寄存器中的 EW 和 EP 位?

    是否在尝试将节点从 BO 中取出之前监视了128x11隐性位?

     

    在节点发生总线关闭之前、会发生许多情况。 首先需要确定节点为何会出现 BO。 您是否在 CANTX 引脚上监控了每个节点的位速率? 请查看我的 app.note SPRA876的调试提示。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kireti、
    问题是否已解决?