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.

[参考译文] DP83TD510E:PHY 从设备 ping 问题

Guru**** 2544110 points
Other Parts Discussed in Thread: DP83TD510E, DP83TD510E-EVM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue

器件型号:DP83TD510E

您好!

我们正在开发一个将 DP83TD510E 用作 PHY 的定制板。
我们有介质转换器和定制板、它们都配置为自动协商的"首选主器件"、因此定制板会随机产生主器件或从器件。
当我们的自定义主板产生主板时、我们始终可以毫无问题地执行 Ping 操作、但当它产生从板时、我们有时会丢失 ping 操作。
当我们丢失 ping 时,我们可以在 UC MAC 上看到“DRIBBLE ERROR–DATA ALLIGNAMENT ERROR”(DRIBBLE 错误–数据 ALLIGNAMENT 错误)。
PHY-MAC 通信是 RMII、其中 PHY 作为从器件(PHY 和 MAC 共享相同的50MHz - 50ppm 时钟)。
您能帮我们解决这个问题吗?
作为权变措施(不是很好...) 我们是否可以强制我们的器件进入"强制主器件"? 我们如何配置寄存器来强制主设备、管理自动协商?
如果新的数据表修订版将包含所有寄存器详细信息、将会有所帮助。

谢谢你

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

    您好 Fabio、

    查看上面的信息、我们仅在 PHY 是铜侧的从器件时遇到问题、而在 PHY 是铜侧的主器件时没有问题。 在这种情况下、RMII 主/从没有任何轴承。 我的假设是否正确?

    链路伙伴仍然是 DP83TD510E PHY、对吧?

    --
    此致、
    Gokul。

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

    你好、Gokul、

    我确认、只有当 PHY 在铜侧为从器件时、我们才会遇到问题;我在 PHY-MAC 接口上的数据提示仅用于完成信息。

    我们将商业媒体转换器用作链路合作伙伴、但我们将 DP83TD510E-EVM 用作媒体转换器时遇到的问题完全相同。

    此致、

    Fabio

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

    您好 Fabio、

    我和团队一起外出去迪瓦里。 我将在星期四结束前回复您。

    --
    此致、
    Gokul。

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

    您好 Fabio、

    很抱歉耽误你的答复。

    我有一个与您的系统相关的问题。 根据我的理解、您的系统[MAC-DP83TD510E]已连接到另一组[MAC-DP83TD510E]。

    当您说510E 配置为从设备而不是主设备时出现 ping 问题时、我不明白为什么其中一个正常工作、另一个不工作。 当其中一个510E 被解析为主设备时、另一个是从设备。 这意味着、当您尝试从一个 MAC ping 其他 MAC 时、您应该无法执行此操作。

    除此之外、我建议再次检查器件是否正确配置为主器件或首选主器件。

    要将器件配置为主器件、将其他器件配置为从器件、请执行以下操作

    在主设备上、请进行配置

    1. 0x000D = 0x0007
    2. 0x000E = 0x0202
    3. 0x000D = 0x4007
    4. 0x000E = 0x1001
    5. 0x000D = 0x0001
    6. 0x000E = 0x0834
    7. 0x000D = 0x4001
    8. 0x000E = 0x4002

    请进行配置

    1. 0x000D = 0x0007
    2. 0x000E = 0x0202
    3. 0x000D = 0x4007
    4. 0x000E = 0x0001
    5. 0x000D = 0x0001
    6. 0x000E = 0x0834
    7. 0x000D = 0x4001
    8. 0x000E = 0x0002

    --
    此致、
    Gokul。

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

    你好、Gokul、

    感谢你的答复。

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4383947 #4383947">我有一个与您的系统相关的问题。 根据我的理解、您的系统[MAC-DP83TD510E]已连接到另一组[MAC-DP83TD510E]。[/QUERP]

    不可以、我们的器件 MAC-DP83TD510E 连接到商业媒体转换器、以便与 PC 以太网通信、只有当我们的器件是铜侧的从器件时、我们才会有问题。

    问题是:为什么只有在 PHY 是铜端上的从设备时、MAC 报告为驱动器字节错误、才会遇到 ping 问题?

    感谢您的寄存器配置。

    此致

    Fabio

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

    您好 Fabio、

    我不知道"卵石错误"在这种情况下意味着什么。 您能不能告诉我驱动错误意味着什么 MAC?

    您能否共享 DP83TD510和 MAC 的时钟方案? 您是否为 MAC 和 PHY 使用相同的时钟源?
    这不是一项要求、但我想了解应用程序对问题产生原因的猜测。

    --
    此致、
    Gokul。

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

    你好、Gokul、

    从 MAC 参考手册:"驱动码位错误:当该位置位时、表示接收到的数据包具有非整数的字节(奇数半字节)。"

    在我们的应用中 、PHY 和 MAC 共享来自 LVCMOS 振荡器的50MHz/50ppm 时钟;PHY 配置为 RMII 从器件、MAC 配置为 RMII 主器件。

    我们还尝试了不同的配置:从   LVCMOS 振荡器到 PHY 的25MHz/50ppm 时钟、从 PHY 到 MAC 的 RX_CLK;在此测试中、PHY 配置为 RMII 主器件、MAC 配置为 RMII 从器件。 我们遇到了与先前配置中相同的问题。

    此致、

    Fabio

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

    您好 Fabio、

    我现在了解了时钟方案。 当 MAC 被用作 RMII 主器件时、从 MAC 发送的数据需要遵循特定的时序 w.r.t 至50MHz 时钟、该时钟被馈送至以太网 PHY。

    您能否根据 数据表第8.6节中的100M RMII 时序子部分检查是否满足来自 MAC 和数据采样的 RMII 传输时序?

    --
    此致、
    Gokul。

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

    你好、Gokul、

    是的、RMII 时序正常并且符合数据表规格(否则、当我们在铜侧作为主器件工作时、我们应该会遇到相同的问题、但它工作正常)。

    此致、

    Fabio

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

    您好 Fabio、

    您能否检查连接伙伴时钟是否在+/-100ppm 之内?

    我正在尝试收集可被读取的寄存器列表、以找出导致问题的原因。

    --
    此致、
    Gokul。

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

    你好、Gokul、

    是的、我们可以确认连接伙伴时钟处于+/-100ppm 之内。 供参考、我可以看到使用 DP83TD510E-EVM 作为链路合作伙伴时出现的完全相同的问题。

    此致、

    Fabio

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

    您好 Fabio、

    很抱歉耽误你的答复。 我想后退一步、详细了解设置。

    1. 您拥有具有 MAC 和 DP83TD510E 的定制板。 当您尝试 ping 时,您正在连接您的定制板,您的定制板具有一个相同类型的定制板。 是这样吗?
    2. 在上述情况下、当您从其中一个板 ping 时、当 DUT 板为主板时、您可以对另一个板执行 ping 操作。 是这样吗?
    3. 当您尝试使用510E-EVM 执行 Ping 操作时、您是如何执行 Ping 操作以及执行 Ping 操作的? 您是否将 EVM 的标准以太网端口连接到 PC 并执行 Ping 操作?

    --
    此致、
    Gokul。

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

    你好、Gokul、

    感谢你的答复。

    随附的内容、您可以在我们的设置中找到一个逻辑电路原理图;希望这能澄清。

    此致、

    Fabio

    e2e.ti.com/.../Logic_5F00_Sch.pdf

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

    您好 Fabio、

    我今天在休假。 我将尝试在明天结束时作出回应。

    --
    此致、
    Gokul。

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

    您好 Fabio、

    感谢您分享。 现在已经很清楚了。

    我们可以尝试在定制板和定制板之间执行 ping 操作吗?  

    --
    此致、
    Gokul。

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

    你好、Gokul、

    抱歉、我们的定制板只是一个简单的传感器、我们无法尝试您建议的设置。

    此致、

    Fabio

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

    您好 Fabio、

    您能否进行以下实验:

    实验1:
    设置:PC ->商业标准 SPE 连接器-> 510E 定制板

    请在发出 ping 后读取寄存器0x1 (读取两次)、0xA80、0x17、0x467、0x468。

    当510E 既是主设备又是从设备时、建议获取寄存器值。

    实验2:
    设置:PC->510EVM-MC ->510E 定制板

    在两个510E 器件上发出 ping 命令后、请读取寄存器0x1 (读取两次)、0xA80、0x17、0x467、0x468。

    当510E 既是主设备又是从设备时、建议获取寄存器值。

    实验3:
    设置:PC ->商业标准 SPE 连接器-> 510EVM-MC

    发出 ping 命令后、请读取510E 上的寄存器0x1 (读取两次)、0xA80、0x17、0x467、0x468。

    当510E 既是主设备又是从设备时、建议获取寄存器值。

    --
    此致、
    Gokul。

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

    你好、Gokul、

    您可以在下面找到所需实验的答案。

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4405285 #4405285"]

    实验1:
    设置:PC ->商业标准 SPE 连接器-> 510E 定制板

    请在发出 ping 后读取寄存器0x1 (读取两次)、0xA80、0x17、0x467、0x468。

    当510E 既是主设备又是从设备时、建议获取寄存器值。

    [/报价]

    510E 定制主板:0x1=>0x016D、0x1=>0x016D、0xA80=>0x0000、0x17=>0x40A1、0x467=>0x0134、 0x468=>0x0000

    510E 定制板从设备:0x1=>0x016D、0x1=>0x016D、0xA80=>0x182C、0x17=>0x40A1、0x467=>0x0134、 0x468=>0x0000

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4405285 #4405285"]

    实验2:
    设置:PC->510EVM-MC ->510E 定制板

    在两个510E 器件上发出 ping 命令后、请读取寄存器0x1 (读取两次)、0xA80、0x17、0x467、0x468。

    当510E 既是主设备又是从设备时、建议获取寄存器值。

    [/报价]

    510E 定制主板:0x1=>0x016D、0x1=>0x016D、0xA80=>0x0000、0x17=>0x40A1、0x467=>0x0134、 0x468=>0x0000

    510E 定制板 从设备:0x1=>0x016D、0x1=>0x016D、0xA80=>0xFC81、0x17=>0x40A1、0x467=>0x0134、 0x468=>0x0000

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4405285 #4405285"]

    实验3:
    设置:PC ->商业标准 SPE 连接器-> 510EVM-MC

    发出 ping 命令后、请读取510E 上的寄存器0x1 (读取两次)、0xA80、0x17、0x467、0x468。

    当510E 既是主设备又是从设备时、建议获取寄存器值。

    [/报价]

    抱歉、我不知道如何执行此操作:510EVC-MC 不是以太网设备、无法 响应 ping 请求。

     

    [引用 userid="171949" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue "]如果新的数据表修订版将包含所有寄存器详细信息、这将有所帮助。

    您要求我们读取数据表中未记录的寄存器... 请分享该寄存器说明吗?

    谢谢!

    此致

    Fabio

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

    您好 Fabio、

    510EVM-MC 也是介质转换器。 您可以将 EVM 上的标准以太网端口连接到 PC 并 ping PC-PC。  您可以在 https://www.ti.com/tool/DP83TD510E-EVM 上查看用户指南

    如果无法启动并运行 EVM 的标准以太网侧、则可以忽略它并在不执行 ping 操作的情况下收集寄存器。

    对于实验3、您不需要发出 ping。 只需将510EVM 与商业标准 SPE 连接器连接即可读取寄存器。

    数据表中仅包含寄存器0xA80。 这是一个内部寄存器、通常不在数据表中。 该寄存器可以为我们提供有关连接方和 DUT 之间 ppm 偏移的信息。

    --
    此致、
    Gokul。

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

    你好、Gokul、

    下面您可以找到实验3结果(不带 ping、仅链接):

    510E-EVM 主站:0x1=>0x016D、0x1=>0x016D、0xA80=>0x0000、0x17=>0x4021、0x467=>0x0006、 0x468=>0x0000

    510E-EVM 从站:0x1=>0x016D、0x1=>0x016D、0xA80=>0x1C35、0x17=>0x4021、0x467=>0x0006、 0x468=>0x0000

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4409498 #4409498"]数据表中仅0xA80不是数据表的一部分

    寄存器0x1不属于数据表、寄存器0x468被报告为保留...

    此致、

    Fabio

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

    您好 Fabio、

    通过上述寄存器、我尝试捕获时钟频率偏移和 RMII 缓冲区溢出状态、看起来好像没有引线。

    在我提出下一个实验之前、我有几个问题

    1. 您正在从 uC-MAC ping PC、对吗? 能否从 PC ping uC-MAC? 您也会看到错误吗?
    2. 对于上面的实验2、您是否能够将510EVM-MC 用作介质转换器并将其用作 PC 和定制510板之间的桥接器?

    我想将 PC->510EVM-MC->510定制板用于所有下一组实验,因为您已经看到此配置的问题。

    实验4:使用510EVM-MC 作为桥接器从两侧发出 Ping 命令

    1. 您能不能同时从两侧 ping 通、并告诉我以下4个 ping 案例中是否有任何一个问题。
      • 从 PC 和自定义510主板 Ping
      • 从 PC 和自定义510板从设备 ping
      • 从 PC 和自定义510主板 Ping
      • 从 PC 和自定义510板从设备 ping

    实验5:增加510定制板上的 RMII 缓冲器大小

    1. 程序0x0011 = 0x006A、0x0017 = 0x40A0
    2. 在上述四种情况下尝试 ping

    如果您需要更多详细信息、请告诉我。

    --
    此致、
    Gokul。

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

    你好、Gokul、

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4414894 #4414894">您从 uC-MAC ping PC、对吗? 能否从 PC ping uC-MAC? 您是否也看到错误?

    否、我们始终从 PC ping UC-MAC (我们尚未在 UC 中实现 ping 函数)。

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4414894 #4414894"]对于上述实验2,您是否能够将510EVM-MC 用作介质转换器并将其用作 PC 与定制510板之间的桥接器?

    是的

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4414894 #4414894"]

    实验4:使用510EVM-MC 作为桥接器从两侧发出 Ping 命令

    1. 您能不能同时从两侧 ping 通、并告诉我以下4个 ping 案例中是否有任何一个问题。
      • 从 PC 和自定义510主板 Ping
      • 从 PC 和自定义510板从设备 ping
    [/报价]

    我们只能从 PC ping 自定义板;当自定义板为主板正常时、当自定义板为从板时、我们会看到上述问题。

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue/4414894 #4414894"]

    实验5:增加510定制板上的 RMII 缓冲器大小

    1. 程序0x0011 = 0x006A、0x0017 = 0x40A0
    2. 在上述四种情况下尝试 ping
    [/报价]

    我们根据您的建议更改了寄存器、结果与实验4相同(定制电路板主器件=确定、定制电路板从器件= KO)

    谢谢

    此致、

    Fabio

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

    您好 Fabio、

    感谢您的更新。 现在、我建议我们研究一下定制板的510E 是否正确接收了数据包。 我们可以通过读取数据包计数器来实现这一点。

    我建议执行以下操作。 (本实验使用单个数据包 ping、而不是连续 ping 数据包)
    电路板设置:PC->510EVM-MC ->510E 定制电路板

    1. 从 PC 发送单个 ping 数据包。
    2. 读取寄存器0x12A、0x12B、0x12C、0x12D、0x12E、 510EVM-MC 和510E 定制板上的0x12F、0x130顺序完全相同(请查看数据表以及这些寄存器是什么)。
      这些寄存器是自清零。 如果所有寄存器的读取值都为0 (仅当所有寄存器都为0时)、请再发送一个 ping 数据包并读取它们。

    最好在510E 自定义焊盘的主从用例中捕获这些焊盘。

    如果您需要更多详细信息、请告诉我。

    --
    此致、
    Gokul。

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

    你好、Gokul、

    我们已经完成了您建议的测试、结果如下:

    1) 1) ping OK

    510EVM (从属)  

    0x12A=0x000、0x12B=0x001、0x12C=0x000、0x12D=0x000、0x12E=0x001、 0x12F=0x000、0x130=0x000

    510E 定制(主设备)

    0x12A=0x000、0x12B=0x001、0x12C=0x000、0x12D=0x000、0x12E=0x001、 0x12F=0x000、0x130=0x000

    2) 2) ping OK

    510EVM (主设备)

    0x12A=0x000、0x12B=0x001、0x12C=0x000、0x12D=0x000、0x12E=0x001、 0x12F=0x000、0x130=0x000

    510E 定制(从器件)

    0x12A=0x000、0x12B=0x001、0x12C=0x000、0x12D=0x000、0x12E=0x001、 0x12F=0x000、0x130=0x000

    3) ping KO

    510EVM (主设备)

    0x12A=0x000、0x12B=0x001、0x12C=0x000、0x12D=0x000、0x12E=0x000、 0x12F=0x000、0x130=0x000

    510E 定制(从器件)

    0x12A=0x000、0x12B=0x000、0x12C=0x000、0x12D=0x000、0x12E=0x001、 0x12F=0x000、0x130=0x000

    谢谢!

    此致

    Fabio

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

    您好 Fabio、

    在510E 自定义电路板成功接收到引脚数据包之前、不会出现错误。 在 MAC 接口中看起来是一个问题。

    如果您使用的是 CRS_DV 或 RX_DV 功能、您能告诉我吗? 您是否可以转到 RX_DV 功能并检查问题是否仍然存在?

    --
    此致、
    Gokul。

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

    您好 Fabio、

    您能告诉我 CRS_DV 和 RX_DV 功能吗?

    --
    此致、
    Gokul。

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

    你好、Gokul、

    很抱歉耽误我的答复。 我们已调查了 MAC 端和第三方驱动程序的问题。

    从我的第一篇帖子中:

    [引用 userid="171949" URL"~/support/interface-group/interface/f/interface-forum/1163226/dp83td510e-phy-slave-ping-issue 我们丢失 ping 时,我们可以在 UC MAC 上看到“DRIBBLE 错误–数据 ALLIGNAMENT 错误”。
    PHY-MAC 通信是 RMII、PHY 作为从器件[/引用]

    问题是在 RMII 模式下不需要考虑驱动器错误、而只能在 MII 模式下考虑驱动器错误、因此驱动器不必丢弃驱动器数据包。

    感谢你的帮助!

    此致、

    Fabio