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.

[参考译文] DP83869HM:DP83869HM:CAN#39;t SEND DATA IN RGMII-SGMII 模式、但根据0x1建立链路

Guru**** 2451970 points
Other Parts Discussed in Thread: DP83869HM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1128865/dp83869hm-dp83869hm-can-t-send-data-in-rgmii-sgmii-mode-but-link-gets-established-according-to-0x1

器件型号:DP83869HM

您好!

在我们的定制设计中、我们使用 DP83869HM 将 FPGA (采用 ARM Cortex-A 的 Intel Cyclone V SoC)连接到 SFP 模块。

DP83869HM 连接到 ARM、其中包括 RGMII 接口(MAC)和 SFP 模块(SGMII)(OS Linux)

根据寄存器0x1、phy 可识别活动链路(链路位也会被清除、当从 SFP 模块断开光纤连接时、我们的光纤盒还会检测到活动链路)

我注意到自动协商会失败、因此我使用固定的链接速度0x0c00 = 0x0140进行设置、我还设置了0x01df = 0x3 (我也尝试了0x43、因为我在某些论坛帖子中看到该手册不正确)

此外、我尝试使用0x14 = 0x2907禁用 SGMII 自动协商。

遗憾的是、没有这项工作。

到目前为止、我发现有两种奇怪的想法:

1)我尝试使用 clk_out 引脚来查看我们的时钟、默认情况下、它显示25MHz 时钟(我认为应该是正确的)、但当我更改其寄存器0x170 (初始值= 0x5448、 这在我看来也是关闭的、因为位12已设置、并且根据手册12-8 CLK_O_SEL 范围0x0-0xc、所以它是否超出范围?) Anzway 当我更改输出时钟、或者即使我禁用它、我也无法观察到 clk_out 上的任何更改
2) 2)在启动寄存器0x01df = 0x0后、这是可能的状态吗?

我现在可以想到的可能原因是我们的 XI 时钟、因为我们的 DH 部门 不知怎么忘记连接时钟、所以现在我们连接到 FPGA、这将生成25MHz 时钟、但也将在 DP83869HM 之后进行设置。 这意味着在上电期间、DP83869HM 不会有任何时钟、此外、映射到 ARM 的所有 Rx 引脚都处于未知状态(可能也是一个问题、因为它们也是自举引脚?)
他们还忘记了现在连接到我们的复位引脚(3.3V VDD 时为2.5V)的 pwd_down 引脚

它们还连接了芯片终端上的 JTAG_clk 和 XI 引脚、因为它们将 JTAG_clk 映射到了我们的 FPGA。

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

    您好、Matthias、

    您能告诉我以下信息吗?

    1. SGMII SFP 在另一侧连接到什么位置?
    2. RGMII-SGMII 桥接模式是通过搭接还是寄存器配置启用?

    我看到的问题是 PHY 如何收敛于速度。 连接到 SFP 的 SGMII 链路伙伴应决定速度。 然后、此速度信息将传输到 SGMII 侧的 MAC。 我们应确保应用为 RGMII-SGMII 桥接模式(数据表第9.4.6节中提供了详细信息)

    除了这些详细信息、您能否检查 RGMII 时序和偏移/对齐模式是否得到了注意?  https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1096129/rgmii-timing---align-and-shift-mode

    --
    此致、
    Gokul。

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

    您好、感谢您的回复。

    1) 1)因此整个设置如下所示:

    FPGA/ARM MAC (RGMII)-(RGMII) DP83869HM (SGMII)-(SGMII) SFP 模块(光纤)-(光纤)光纤到铜线适配器盒(铜线)-(铜线)笔记本电脑

    备选方案:

    FPGA/ARM MAC (RGMII)-(RGMII) DP83869HM (SGMII)-(SGMII) SFP 模块(铜)-(铜)笔记本电脑

    在两台笔记本电脑之间、光纤适配器工作正常。

    2) 2)我在第一篇帖子中尝试阐明了这一点、但实际上并未解决。 我们的硬件团队将许多 DP83869HM 自举连接到我们的 FPGA、FPGA 将在 DP83869HM 上电后进行设置。

    因此、我被迫使用寄存器覆盖配置->我们按寄存器执行 cfg

    [引用 userid="506384" URL"~/support/interface-group/interface/f/interface-forum/1128865/dp83869hm-dp83869hm-can-t-send-data-in-rgmii-sgmii-mode-but-link-gets-established-according-to-0x1/4188166 #4188166]]除这些详细信息外、您能否检查 RGMII 时序和移位/对齐模式是否得到了注意?  https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1096129/rgmii-timing---align-and-shift-mode

    很抱歉、我直到现在都没有对此进行研究(我们的硬件团队也没有这样做、所以这可能是一件事)、这基本上是我第一次尝试像这样建立以太网连接。 我将在我回到实验室时立即对此进行研究。 谢谢!

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

    您好、Matthias、

    我建议我们首先解决 RGMII 时序问题。 解决此问题后、如果通信仍然无法进行、我可以帮助您进行调试。

    --
    此致、
    Gokul。

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

    大家好、再次感谢您的支持、

    现在、我正在尝试配置时序、我的理解是寄存器0x32控制 phy 以使用移位或对齐模式。 首先、我注意到 reg 最初设置为0x0 (根据数据表、应该为0xd0)。 因此、我将其更改为0xd0、以使用 phy 配置时序。 MAC 被设置为 RGMII-id (这应该使其进入对齐模式?)。

    但是、每当我尝试设置寄存器0x86以更改计时时、我的值都会被覆盖为0x5。 例如、如果我尝试将其设置为数据表中列出的复位(0x77)、则会立即将其改回0x5。

    您是否知道这可能是什么原因? 在我们的硬件设置中、我越来越感觉到仍然是关闭的。

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

    您好、Matthias、

    我猜在您的设置中扩展寄存器访问可能会有一些问题。 您能否检查 您是否正在使用数据表第9.4.9.1节中概述的"间接访问"?

    --
    此致、
    Gokul。

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

    这让我很尴尬、我尝试使用直接访问来访问寄存器。 好的、现在我可以尝试修复计时、谢谢!

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

    我也做过很多次了:)这就是为什么我很快就能抓住这一机会的原因。 请将这些观察结果发布在我的网站上。

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

    您好、Matthias、

    您是否能够使其正常工作?

    --
    此致、
    Gokul。

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

    遗憾的是、它仍然无法正常工作。 但我假设它与我们的 RGMII 连接有关、因为使用 phytool、我可以看到 SGMII 链路已建立、但 Linux 仍报告链路断开。 那么、我想它可能位于 Linux 还是 RGMII 端?

    即使我在 phy 中启用环回、它仍会报告为 down。 并且不会通过接口发送任何数据。

    我将 Mac 配置为 RGMII-id 并尝试补偿 PHY 上的时序。 这应该起作用吗?

    顺便说一下、感谢您的帮助。

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

    您好、Matthias、

    您可以执行以下操作来从 PHY 端对其进行调试。

    1. 确保 SGMII 侧已连接。 寄存器0x0C01应显示状态。  
    2. 确保 RX_CLK 为125MHz。 您想使用1G 速度、对吧?
    3. 确保器件配置为 RGMII 至 SGMII 模式
    4. 确保 RX_*引脚上的带内状态可用(带内状态可在以下 RX_*引脚的测量直流电压中找到
      • RX_DV = 0
      • RX_D3 = 1 (高电平=全双工)
      • RX_D[2:1]= 10 (1000M)
      • RX_D0 = 1 (高电平=链路建立)

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

    --
    此致、
    Gokul。

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

    感谢您的回复、我将在我回到实验室后立即对其进行测试!

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

    请随时向我发布。 谢谢!