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.

[参考译文] TMS320F28388S:断开 EtherCAT 电缆连接时未报告错误

Guru**** 2534260 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1021272/tms320f28388s-did-not-report-error-when-ethercat-cable-disconnection

器件型号:TMS320F28388S

您好、专家、

我的客户将 F28388S 用于具有 EtherCAT 的伺服应用、他们遇到了一个在 EtherCAT 电缆断开连接时未报告错误的问题。

测试条件:

一个 EtherCAT PLC 主站、一个基于 F28388S 的伺服产品、一个基于竞争对手器件的伺服产品。

这三款产品均通过电缆连接在一起、并与 EtherCAT 正常配合使用、然后手动断开主器件与 F28388S 产品之间的电缆、然后竞争对手器件将报告错误、寄存器0x440将从1更改为0、 但 F28388S 没有报告错误、且寄存器仍然为1。

您是否会帮助建议如何解决此问题?

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

    你好、很强、

    如何检查 F2838x 器件上的0x440寄存器?

    0x440表示看门狗状态、如下所述。 当看门狗处理数据被禁用时、它可以保持为1。

    我将在断开 SW 示例中的电缆时检查该位是否设置为零、或者是否设置了其他错误位。

    最棒的

    Kevin

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

    尊敬的 Kevin:

     断开电缆连接时 、0x440应像其他竞争对手的器件那样变为0、并非所有主器件都可以在 F28388中重现此问题、但某些特定主器件会这样做。

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

    你好、很强、

    如果它适用于某些主机、但不适用于其他主机、则可能是主机对 ESC 的配置有所不同。

    他们是否检查了以下寄存器以确保 PD 看门狗已启用正常? 这些其他 PD WD 寄存器在工作/非工作情况之间是否不同?

    最棒的

    Kevin

    编辑:也请检查 WD_DIV 值。

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

    强、

    对于不工作的情况、他们能否验证 F2838x ESC 是否在物理电缆断开之前进入工作状态? 根据以下内容、我认为它必须进入 OP 状态才能发生 WD 超时事件:

    最棒的

    Kevin

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

    尊敬的 Kevin:

    0x400、0x420、0x442和0x0804寄存器正常。

    以下是这些寄存器的值:

    寄存器:值

    0x400: 2498

    0x420:  1000

    0x440:断开电缆连接时始终为1

    0x442:257

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

    你好、很强、

    它们看起来正常、但是0x442:257表示看门狗在某个点确实过期一次。

    [引用 userid="180630" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1021272/tms320f28388s-did-not-report-error-when-ethercat-cable-disconnection/3777568 #3777568"]0x0804寄存器正常。

    您的列表中缺少0x804。 但是、主要需要检查看门狗触发使能位是否设置为1。

    如果所有这些都正确、我们仍然需要确认 F2838x 从器件之前已达到运行状态。 如果从未达到运行状态、那么我不相信看门狗超时会正确发生。

    要检查器件状态、请参阅寄存器0x120、0x121 (AL 控制)和0x130、0x131 (AL 状态)。

    下面的错误计数器是用于检查与物理链路丢失相关的另一组寄存器:

    请检查这些信息并提供数据。

    最棒的

    Kevin

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

    你好、很强、

    对我的设置执行一些测试后、当电缆断开连接时、下面寄存器的链路状态位应该会发生变化。

    寄存器 PHY 端口 y (端口号 y=0至3)状态(0x0518+y)

    最棒的

    Kevin

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

    尊敬的 Kevin:

    是否有任何关于客户需要配置什么的建议?

    客户反馈0x804应该没有问题,  

    寄存器0x120 和0x130的值都是8。

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

    客户认为 0x0518不 应用于 报告错误。

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

    你好、很强、

    [引用 userid="180630" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1021272/tms320f28388s-did-not-report-error-when-ethercat-cable-disconnection/3780702 #3780702"]寄存器0x120 和0x130值均为8。

    好的、因此达到运行状态。

    根据这些信息、我尚不清楚电缆断开后寄存器0x440为什么保持等于1。 看门狗超时必须发生在0x442 = 0x0101之后。 可能由于某种原因正在清除寄存器0x440。

    [引用 userid="180630" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1021272/tms320f28388s-did-not-report-error-when-ethercat-cable-disconnection/3775665 #377566"]并非所有主控方都可以在 F28388中重现此问题,但某些特定主控方会这样做。

    这种行为只在某些主器件中被看到这一事实很重要。 初始化/配置必须有一些差异、器件的行为才能不同。

    最棒的

    Kevin

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

    Kevin、

    如果使用其他竞争对手的从控制器、则不存在此问题。

    您对这种差异意味着什么? 这是主问题吗?  

    初始化/配置必须有一些差异、器件的行为才能不同。

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

    强、

    Kevin 是 OOO、接下来的几天、我会让其他人看看并回复、但最好的情况可能是周一/周二、他们才能回复。  在此感谢您的理解。

    最棒的

    Matthew

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

    你好、很强、

    [引用 userid=""]

    如果使用其他竞争对手的从控制器、则不存在此问题。

    您对这种差异意味着什么? 这是主问题吗?  

    [/报价]

    特定主器件和 F2838x 从器件/ESC 从器件堆栈的组合导致了该问题。 F2838x ESC 寄存器可由 EtherCAT 主站更改、因此特定有问题的主站可能会将 F2838x ESC 置于一种状态、其中0x440不会变为0、而其他主站不会导致这种相同状态。

    在工作主器件与非工作主器件的情况下追溯 ESC 寄存器访问和 EtherCAT 通信量差异似乎是要采取的正确步骤。

    最棒的

    Kevin

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

    Kevin、

    客户反馈、ESC 寄存器太多、可能无法检查所有这些寄存器以了解不同主从之间的差异、您是否建议需要检查任何特定的 ESC 寄存器?

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

    你好、很强、

    离线电子邮件中提供了检查寄存器的建议。 还建议使用 Wireshark 分析主机的帧和跟踪寄存器访问。 下面 ETG 提供了有关使用 Wireshark 的详细信息:

    https://www.ethercat.org/memberarea/en/knowledge_base_E3DFFB9A73A146DC8C10F7B8896D72F7.htm

    关于 SSC 用法的一个问题是、在'ecat_def.h'文件中、ESC_SM_WD_SUPPORTED 是否设置为0或1? 这将在一定程度上改变 PD 看门狗在软件中的实现方式。

    最棒的

    Kevin