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.

[参考译文] AM3357:在 EtherCAT 状态从 INIT 更改为 PRE-OP 期间检查产品代码失败

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1634272/am3357-check-of-product-code-during-switch-of-ethercat-state-change-from-init-to-pre-op-fails

器件型号: AM3357

EtherCAT 主站报告说、在 EtherCAT 状态从 INIT 更改为 PRE-OP 期间、对产品代码的检查失败。 例外值为 0x00016472、但主器件接收到 值 0x0800005A。 这一问题偶尔出现(即不是每次都出现)。 EEPROM 中的产品代码和供应商 ID(我们使用 EEPROM 仿真模式)ESI 文件已检查并正确。

由于这个问题偶尔出现,我们让 AI (GitHub copilot) 分析状态变化开关 init=>pre-OP 的 Wireshark 跟踪。 Copilot 已经给了我们一些提示 — 但即使有这些提示,我们也不可能找到此问题的根本原因。  

来自 copilot 的分析结果:
从器件的迹线中发现的数据
1.正在读取期间 SiI 数据翻转:

帧 356-362:SiI DATA 寄存器正确发送 0x00016472 3 次
帧 366:突然 0x0800005A
从那时起:对于所有后续 22 个读数、值保持在 0x0800005A
这意味着:当主器件仍在读取时、从器件中的某个器件会更改 SII 数据寄存器 (0x0508) 的内容。

2. PDI 看门狗触发器(帧 404):

DL 状态寄存器显示从器件 0x03EC 处的 pdiwatchdog=1
→从应用程序不及时为 ESC(EtherCAT 从站控制器)提供服务

3.错误模式指示 EEPROM 访问冲突:

值 0x0800005A 不是随机垃圾–它是一个一致、可重现的值
→可能是来自另一个 EEPROM 地址或通过冲突访问写入 SII 数据缓冲区的内部寄存器的数据  

 

Init2PreOpFailed.zip 

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

    您好、Peter:

    感谢您与我们联系。

    根据问题说明、我知道  0x00016472 是默认 ESI 标头的值、0x0800005A 是来自您刷写的自定义 ESI 标头的值、特定于您的应用。 我的理解是否正确?

    我将查看日志、然后返回给您。

    此致、
    Aaron

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

    您好 Aaron、

    在本例中、随附了产品代码和供应商 ID 的数据:

    VendorID    = 0x0800005A
    产品代码= 0x00016472

    ESI 文件和 EEPROM 映像中的供应商 ID 和产品代码是相同的。  

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

    好的。 很抱歉、我之前感到困惑。

    因此、问题是  VendorID 值是否覆盖了 产品代码值?

    您是否能够读取 DUT 中的 EEPROM 值并查看这些值是否正确存储? 例如 、当主器件读取相同内容时记录产品代码偏移量。

    由于正在进行的高优先级发布工作、预计您共享的日志分析会出现延迟。

    此致、
    Aaron

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

    您好、Peter:  

    我应该先问这个问题。 您能否说明所使用的 EtherCAT 固件版本? 如果您使用的是较旧的固件、您是否可以尝试迁移到 PRU-ICSS-ETHERCAT-SLAVE 驱动程序或库| TI.com 中提供的最新固件

    此致、
    Aaron