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.

[参考译文] TMS320F28388D:EtherCAT "无效帧计数器"在向器件发送 EtherCAT 数据包时递增

Guru**** 2524550 points
Other Parts Discussed in Thread: TMDSCNCD28388D, C2000WARE, TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1051829/tms320f28388d-ethercat-invalid-frame-counter-increments-when-sending-ethercat-packets-to-device

器件型号:TMS320F28388D
主题中讨论的其他器件:TMDSCNCD28388DC2000WARE

我连接了一个逻辑分析仪、如果我在 ESC 启动并运行之前发送一个 EtherCAT 帧、我可以看到以太网帧全部显示在微控制器和 PHY 之间的 MII 总线上。 这是来自逻辑分析仪的数据:

55 55  55 55  55 55  55 d5  ff ff  ff ff  ff ff  e4 b9  
7a 3c  f1 55  88 a4  0c 10  00 7f  00 00  00 00  00 00  
00 00  00 00  00 00  00 00  00 00  00 00  00 00  00 00  
00 00  00 00  00 00  00 00  00 00  00 00  00 00  00 00  
00 00  00 00  c8 ee  1e 8f  

这是 EtherCAT 主站发送的数据、如 Wireshark 所见、与上述数据匹配。 它匹配、除了上面看到的大量零(不清楚为什么 MII 上的帧比 Wireshark 显示的大)

但是、当我在初始化 ESC 后发送类似的数据包时、帧会被截断、并且当我从 PC/主控软件发送 EtherCAT 数据时、ESC 寄存器0x300中的"无效帧计数器"字段会递增。 我能够在调试会话中看到该寄存器。

截断的帧如下所示:

# frame stops mid-receive(?)
55 55  55 55  55 55  55 d5  // preamble + SFD
ff ff  ff ff  ff ff         // destination MAC
e4 1f  1f 1f  1f            // partial unknown source MAC

# next frame:
55 55  55 55  55 55  55 d5  // preamble + SFD
ff ff  ff ff  ff ff         // destination MAC
e4 1f  1f 1f  1f            // partial unknown source MAC

# next frame (same)
55 55  55 55  55 55  55 d5  // preamble + SFD
ff ff  ff ff  ff ff         // destination MAC
e4 1f  1f 1f  1f            // partial unknown source MAC

以供参考

PHY (KSZ8061MNXI)

GPIO 接口(与控制卡 TMDSCNCD28388D 相同

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

    您好 Jairo、

    您是否在 C2000WARE 中运行我们的 F2838x EtherCAT 示例之一? 您是否正在使用 TwinCAT 主站?

    我建议参考 Beckhoff 和 ETG 的一些文档以进一步诊断问题。

    最棒的

    Kevin

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

    大家好、Kevin、是的、我们将嵌入式软件基于 C2000WARE 中的 F2838x EtherCAT 示例、尽管我们添加了自己的 PDO、添加了将 EtherCAT 数据通信到 CPU1的逻辑以及一些其他更改、因此略有不同。 但是、我们在 TMS320F28388D 控制卡上运行相同的软件没有问题。 如上所述、我们的电路板具有与 controlCARD 相同的 EtherCAT GPIO 分配、此处硬件的显著差异是 PHY。

    我将仔细阅读这些文档、并返回任何发现结果。 谢谢你。

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

    Kevin、在哪里可以找到 f28388D 器件中的 ESC IP 版本? 我查看了应该具有 IP 修订版号但返回0的寄存器。 这与 Beckhoff IP 文档中的某些文档区分不同 IP 版本的特性/寄存器值有关。

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

    您好 Jairo、

    您确切查看的是哪些寄存器? 如果您尝试在 CCS 中读取 ESC 寄存器 Beckhoff 文档、请确保 ESCSS_ACCESS_CTRL.ENABLE_DEBUG_ACCE
    SS 寄存器位设置为1、以便通过 PDI 接口启用访问。

    最棒的

    Kevin

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

    我在代码中将 ESCSS_acces_CTRL.ENABLE_DEBUG_ACCESS 设置为1、这样我就可以使用 Code Composer 中的表达式观察列表来查看 ESC 错误计数器。 不过、即使如此、ESCSS_IPREVNUM 寄存器也为零。 当我查看 ESC 寄存器0x0001、0x0002:0x0003时、我也会得到零、该寄存器应包含 IP 修订版号:

    编辑:实际上、ESC 地址0x0000 (来自 CM 的地址0x400A0000)处的字节为0x91、但这与寄存器文档中的任何预期值不匹配:

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

    您好 Jairo、

    我看到的是你也是一样的东西。 让我检查一下为什么会出现这种情况、然后返回给您。

    最棒的

    Kevin

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

    您好 Jairo、

    Beckhoff 为 C2000-TI 产品分配了0x91。 F2838x ESC (设置为0x00)未使用修订和编译寄存器、我相信它们通常用于 FPGA IP 内核版本/实现。

    最棒的

    Kevin

    编辑:F2838x ESC 符合 IP 核心版本2.04a