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.

[参考译文] DP83TG720S-Q1:从模式下丢失数据包

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1285429/dp83tg720s-q1-packet-loss-in-slave-mode

器件型号:DP83TG720S-Q1
主题中讨论的其他器件:DP83TC812S-Q1DP83867CS

大家好、

我正在电路板中使用 DP83TG720-Q1、但遇到了问题。
在从机模式下使用它时、在 Rx 端很少发生数据包丢失。 如果使用  DP83TC812S-Q1  (100BASE-T1 PHY)或  DP83867CS (1000BASE-T)、则不存在问题。

您知道为什么会发生数据包丢失吗?

[MAC 配置]
Mac:Intel I210IS / SGMII

如果您需要我们提供的任何信息、请告知我们。

此致、
宇藤町

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

    尊敬的 Yuto:

    您能否分享一下原理图和布局? 我将查看一下。  

    我们可以进行环回测试、以确定数据包错误的来源。 请在 DP83TG720中启用模拟环回、如果有任何错误、请告诉我。 这将告诉我们 SGMII 接口是否有问题或者它是否是 MDI 端。

    谢谢。

    大卫

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

    尊敬的 David:

    1.请查看随附的文件、了解布局和原理图。 请向我们提供您的评论。

    2.您能告诉我如何做"回送"吗?

    关于环回、我们按照 D/S 7.3.1.3.3所述的方法尝试了"1.Analog loopback"。 但是所有接收到的数据在 MAC 数据包和 PRBS 流方法中均为"0"。
    我已查看多个 e2e 主题、它们有相同的问题、但不知道如何解决此问题。

    此致、
    宇藤町

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

    尊敬的 Yuto:

    我先看一下原理图和布局、明天就给您回复。  

    同时、您能否共享0x0 - 0x1F、0x608、0x60A、0x45D 的寄存器转储。

    环回指的是数据表中提到的模拟环回。 数据包应由 MAC 而不是 PHY 生成和检查。  

    您能否同时分享您收到了多少个错误数据包? 什么是误码率(BER)?

    谢谢。

    大卫

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

    尊敬的 David:

    请查找客户的反馈。 您的问题有多个问题和答案。

    ****
    让我把寄存器转储分享给:
    寄存器0x0 = 0x0140
    寄存器0x1 = 0x0145
    寄存器0x2 = 0x2000
    寄存器0x3 = 0xa284
    寄存器0x4 = 0x0000
    寄存器0x5 = 0x0000
    寄存器0x6 = 0x0000
    寄存器0x7 = 0x0000
    寄存器0x8 = 0x0000
    寄存器0x9 = 0x0000
    寄存器0xA = 0x0000
    寄存器0xb = 0x0000
    寄存器0xc = 0x0000
    寄存器0xd = 0x4001
    寄存器0xe = 0x8001
    寄存器0xF = 0x0000
    寄存器0x10 = 0x0085
    寄存器0x11 = 0x000b
    寄存器0x12 = 0xe400
    寄存器0x13 = 0x0200
    寄存器0x14 = 0x0000
    寄存器0x15 = 0x0000
    寄存器0x16 = 0x0100
    寄存器0x17 = 0x0000
    寄存器0x18 = 0x3008
    寄存器0x19 = 0x0400
    寄存器0x1a = 0x0000
    寄存器0x1b = 0x0000
    寄存器0x1c = 0x0000
    寄存器0x1d = 0x0000
    寄存器0x1E = 0x0000
    寄存器0x1f = 0x0000
    寄存器0x608 = 0x027b
    寄存器0x60a = 0x0d26
    寄存器0x45d = 0x2000

    写入寄存器0x16 = 0x0108以进入模拟环回模式、并写入寄存器0x619 = 0x1555以从数据生成器发送数据包? 内置数据生成器是如何工作的?
    作为测试、我在不进入环回模式的情况下从 PC 发送了一条 ping 命令、并且我可以确认寄存器0x63C 正在向上计数。

    Iperf 发送数据包、并检测出3/53500错误。
    Iperf -c 192.168.10.2 -u -i 1 -t 600

    [ 3 ] 0.0–600.0 sec 75.0 MB 1.05 Mbits/秒
    [3]发送的53501数据报
    [3]服务器报告:
    [ 3 ] 0.0-600.0 sec 75.0 MB 每秒0.011 ms 3/5350 (0.0056%)
    [3] 0.0-600.0秒1收到的数据报无序

    ****

    此致、
    宇藤町

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

    尊敬的 Yuto:

    我们可以通过启用模拟环回并再次运行 iperf 命令来确定错误来源。 如果错误数量相同、则可以确定问题出在 SGMII 路径上。 如果在启用模拟环回并运行 iperf 后没有错误、则错误位于 PHY 的电缆侧。 请启用模拟环回(不写入0x619)、然后再次运行 iperf 命令。

    我在原理图上看不到多个组件的值。 您是否可以使这些值可见并重新共享、例如 C4、C15、R41、R42、 R43。 您还能否共享完整 SGMII 布线的布局图像?

    谢谢。

    大卫

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

    尊敬的 David:

    是否重新发布图像、它是否可见? 仅供参考、C4=0.1uF/25V、C15 = 4700pF/50V、R41=1k、R42=1k、 R43= 100k.
    此外还附加了布局图像。

    对于环回、我们发现、即使写入寄存器0x16=0x108、它似乎也不处于环回模式、因为我们可以在写入后读取寄存器0x16=0x100。
    您能告诉我如何进入环回模式吗?

    到目前为止、我们已完成以下过程、但不确定是否可以实现。
    [流程/代码]
    写入寄存器0x1f = 0x8000 <-硬件复位
    写入寄存器0x16 = 0x108
    写入寄存器0x405 = 0x2800
    Iperf -c 192.168.10.1 -u -i 1 -t 600 <-执行 iperf

    [结果]
     [3] 0.0–600.0秒 75.0 MB 1.05 Mbit/s
     [3]发送了53500个数据报
     [3]服务器报告:
     [3] 0.0-598.9秒 75.0 MB 每秒 0.033 ms  1/53500 (0.0019%)

    和  

    读取寄存器0x63C = 0xD133 (53,555)
    读取寄存器0x63d = 0x0000
    读取寄存器0x63E = 0x0000

    我不知道为什么,但它不仅仅是 iperf 发送包#。

    此致、
    宇藤町

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

    尊敬的 Yuto:

    对于环回、我们发现、即使写入寄存器0x16=0x108、它似乎也不处于环回模式、因为我们可以在写入后读取寄存器0x16=0x100。
    您能告诉我如何进入环回模式吗?

    这是异常的、当模拟环回被启用时、寄存器0x16应该保持在0x0108。 您是否能够顺利写入其他寄存器? 您能尝试使用数字环回吗?

    此外、您能否确认您正在编写 SNLA371中给出的初始化脚本

    谢谢。

    大卫

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

    尊敬的 David:

    请找到您的评论,并告诉我们您的建议。

    我们可以写入其他寄存器、而不会出现任何问题。 我们也尝试了数字环回、但没有效果。

    接下来、我们尝试  在 SNLA371中尝试初始化脚本、然后我们可以确认数据包已发送。 我们通过读取0x639-0x63A 确认了这一点、它们会递增计数。 但0x63C-0x63D 仍然是0x0000。

    下面的过程如表3-2所示。 (在受控模式中执行)

    写入寄存器0x1f = 0x8000
    写入寄存器0x573 = 0x101
    四、.
    四、.
    写入寄存器0x8be = 0x201
    写入寄存器0x56a = 0x5f40
    写入寄存器0x16 = 0x108
    写入寄存器0x405 = 0x2800
    写入寄存器0x619 = 0x1555
    写入寄存器0x624 = 0x55bf
    写入寄存器0x573 = 0x1
    写入寄存器0x56a = 0x5f41  

    我们可以确认数据包已发送到该点。

    读取寄存器0x639 = 0x01b5
    读取寄存器0x63a = 0x0015
    读取寄存器0x63b = 0x0000
    读取寄存器0x63c = 0x0000

    此致、
    宇藤町

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

    尊敬的 David:

    请查找客户的评论。 如果您需要更多信息、请告诉我您需要解决的问题。

    此致、
    宇藤町

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

    尊敬的 Yuto:

    您共享的寄存器转储表明 SGMII 链路已建立、MDI 链路已建立。 在这种情况下、数据应该能够传输。 我的理解是否正确、即 发送的数据包中有0.0056%有错误、还有99.44%无错误?

    我发现您的 SGMII 线路非常长、具有多个过孔并具有一个内联连接器。 这可能导致 数据包丢失。 请注意、环回测试应在未连接链路伙伴的情况下进行。 您能否尝试一下、并告诉我 MAC 是否出现了数据包错误?

    谢谢。

    大卫