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.

[参考译文] AM3359:PRU 双 EMAC 同一数据包随机重复多次

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1021715/am3359-pru-dual-emac-same-packet-repeated-several-times-randomly

器件型号:AM3359
主题中讨论的其他器件: TLK110

我使用 ICE v2上的 AM3359处理器每5秒传输286字节的原始以太网数据包多播 数据包包含 VLAN 标记、因为它传输 GOOSE 消息。

该 SDK 是 ti-processor-sdk-linux-rt-am335x-evm-07.03.00.005和 AM335x-icev2-prueth.dts

电路板 ICE v2已正确配置为在两个以太网接口上使用 PRU。

如果我在物理器件上跟踪 TXEN、我会看到 PRU 多次随机发送相同的数据包、显然没有特定的原因。

(黄色:我的触发器、紫色:TXEN、青色:接收到数据包)

    

这种行为对传输延迟有相当大的影响!

如果我更改 ICE v2配置并启用普通以太网控制器(不带 PRU)、则不会发生这种情况。 我定期看到一个针对 TXEN 的方波。

之前的 SDK 不受此问题的影响、我已经过测试、看到了一个方波。 是否可能是由于新 SDK 没有 PRU 的 TX 中断?

期待您的反馈

  Andrea

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

    您好 Andrea、

    对延迟回复表示歉意。 我正在与开发团队核实他们是否有任何意见。

    您能否详细介绍一下您的测试方法?

    此致、

    Nick

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

    您好、Nick、

      实际上、我已经测试了相同的行为、即使是使用正常 ping 也是如此。
    我已将带有设备树 AM335x-icev2-prueth.dts 的 ICEv2连接到我的笔记本电脑。

    我将 eth0配置为192.168.1.2、并使用固定大小的286字节数据包 ping 我的笔记本电脑192.168.1.1。

    在示波器上、我在 phy TLK110上 TXEN 的上升沿有一个触发器。

    我看到同一个数据包重复了几次。

    我还发现、最后一次重复的时间更长:因此我假设 PRU 固件出于某种未知原因停止传输、有时会到达数据包的末尾。

    如果您可以复制/粘贴 PRU 固件源代码链接进行检查、我将不胜感激。

    展望未来。

      Andrea

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

    您好、Nick、

      是否有更新?

    展望未来

      Andrea

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

    您好 Andrea、

    1) 1)为什么开始运行这些测试? 是 因为传输延迟、还是其他原因? 请提供您期望的延迟和您观察到的延迟的详细信息。

    2) 2)我不太熟悉 TXEN 与数据包的关系。 当您执行以太网数据包捕获(例如、使用 Wireshark)时、您是否实际看到重复的数据包被发送?

    3) 3)对于 PRU 以太网、您的 devicetree 节点是什么样的? 从 Linux SDK 6.3 -> Linux SDK 7.3: https://software-dl.ti.com/processor-sdk-linux/esd/docs/07_03_00_005/devices/AM335X/linux/Release_Specific_Migration_Guide.html 中看,TX IRQ 默认已被删除 。 您可以尝试将 TX 中断的 devicetree 条目添加回 devicetree 节点。

    此致、

    Nick

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

    您好、Nick、

      我们希望测量 PRU 固件传输延迟、因为这是我们应用程序总延迟时间的一部分:我们的目标是在应用软件检测到的触发器和数据包通知传输之间的最大持续时间为1ms

    我确认 devicetree 不包含 TX IRQ:无论如何、我也尝试添加它、但结果不变。

    <<<我们发现最后一次重复的时间稍长:因此我们假设 PRU 固件由于某种未知原因停止传输、有时会到达数据包的末尾。 >>

    如果您可以复制/粘贴 PRU 固件源代码链接进行检查、我将不胜感激。 以前的 SDK (以前的 PRU FW)不受此问题的影响。

    展望未来

      Andrea

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

    您好 Andrea、

    SDK 6.3的 AM335x PRU 双 EMAC 源代码位于 RTOS SDK 6.3  中,详情请访问:e2e.ti.com/.../am3356-pru-icss-dual-emac-source-code-prueth-fw-availibility。 我不确定固件源代码是否发布在 Linux SDK 7.3的任何位置。 请注意、TI 不支持对固件进行修改。 欢迎您进行编辑、但我们无法帮助您进行调试、也无法回答有关修改后的代码的问题。

    我将您的主题重新分配给另一位团队成员进行评论
    1) 1) SDK 7.3 PRU 以太网的源代码
    2) 2) TXEN 函数(如果他们对该信号有任何了解)

    同时、请执行以太网数据包捕获以验证 PHY 实际发出的信号。

    此致、

    Nick

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

    感谢 Nick 的帮助。

    当然,我使用 Wireshark 捕获了以太网,我没有看到来自 PHY 的重复数据包,但是... 这可能是因为线路上有无效帧(应该使用具有以太网协议解码器的示波器来检查这个问题)。

    TXEN 是 MAC 接口用来让 PHY 从 TXD0获取数据的引脚... TXD3。

    展望未来

      Andrea

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

    尊敬的 Andrea:

    很抱歉耽误你的回答。

    最后、我们将尝试重现此问题、以便进一步调试。 调试由于我们一侧的设置相关问题而延迟。

    我将尽快向您提供更多信息。

    同时、您能否检查天气此问题是否特定于端口? 意味着仅在端口1或端口2或两个端口中观察到此行为?  

    此致、
    Mohan。

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

    非常感谢 Mohan 负责这个问题。
    我将在明天检查问题是否仅影响特定端口。
    展望未来

      Andrea