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 — 使用 RJ45 SFP 的 SGMII 转铜缆以太网模式下的链路状态检测问题

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1563371/dp83869hm-dp83869hm---link-status-detection-issue-in-sgmii-to-copper-ethernet-mode-with-rj45-sfp

器件型号:DP83869HM
主题: DP83869 中讨论的其他器件

工具/软件:

您好 TI 社区、  

我将在“SGMII 转铜缆以太网模式“下使用 DP83869HM 和千兆位 RJ45 SFP 模块。 端口在数据传输时工作正常、但我遇到了链路状态检测问题。  

FX_STS 寄存器 (0xC01) 中的 STTS_LINK_STATUS 位始终读取为“0",“,即使、即使数据已成功发送且实际建立了链路 (FX_STS = 0x6179) 也是如此。

在此模式下、是否有其他寄存器或方法来读取铜缆 SFP 的实际链路状态?
在 SGMII 转铜缆模式下、正确检测链路状态是否需要执行特定的配置步骤?
我是否应该使用与 FX_STS 不同的寄存器来指示铜缆 SFP 链路状态?

请提供任何指导。  

谢谢您、

Pascal

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

    尊敬的 Pascal:  

    对于铜缆以太网模式、请尝试读取寄存器 01h。 该寄存器是否表明链路也断开?

    此致、
    j

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

    尊敬的 J:

    感谢您的回复、

    寄存器 00h 和 01h 的值不会随着链路接通或断开而变化、I 始终读取 00h = 0x1140、01h = 0x7949

    此致、

    Pascal

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

    尊敬的 Pascal:  

    您愿意向我们发送原理图吗? 我发送了一个友谊请求,所以请接受,并随时通过消息发送.  
    我想问一个、因为 SFP 模块通常路由到 DP83869 的光纤引脚上。 但是、对于 DP83869、光纤和 SGMII 引脚是共享的、因此无法路由到相同的引脚上。  在这种情况下、您将 SFP 模块路由到铜缆 MDI 引脚、PHY 可能无法正确检测链路状态、从而导致链路状态显示为断开、但能够发送/接收数据。  

    此致、
    j

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

    尊敬的 J:

    以下是 SFP 模块的路由方式、我们将其用于光纤 SFP 模块或 RJ45 SFP 模块、只需在“1000M 介质转换器模式“和 “SGMII-to-Copper 以太网模式“之间切换配置即可:

    此致、

    Pascal

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

    尊敬的 Pascal:  

    有意思。 链路状态是否在 1000M 介质转换器模式中正确反映?
    此外、SGMII 和光纤引脚是共享的。 在此原理图中、SGMII 引脚看起来仅路由到 SFP 模块。 SGMII 信号是否单独布线、或者您是否打算也将 SGMII 信号发送到 SFP 模块上?
    端口 0 是否为常规 RJ45 端口?

    此外、在这种情况下、C00h 和 C01h 可能能够指示链路状态、因为这些寄存器应用于在光纤或介质转换器模式下告知您的链路状态。  

    请告诉我。  


    此致、
    j

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

    尊敬的 J:

    是的、当我们使用光学 SFP 模块处于“1000M 介质转换器模式“时、寄存器 0xC01 中的链路状态检测可以正常工作、但当我们使用 RJ45 SFP 模块处于“SGMII 转铜缆以太网模式“时则不能正常工作。
    P0 是从 SGMII/光纤到 SFP(光纤或铜缆 SFP 类型)的端口、P1 是铜缆以太网端口:

    此致、

    Pascal

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

    尊敬的 Pascal:  

    在 SGMII 转铜缆模式下、 链路状态将通过 P1 而不是 P0 确定。 即使将 RJ45 SFP 模块插入 P0、在 SGMII 转铜缆模式下、如果在 P1 上完成了自动协商、也会确定链路状态。  

    我仍然很难理解 SGMII 转铜缆和介质转换器是如何进行连接的。 您是否可以为我们提供系统的方框图?

    此外、我知道链路状态 LED 为低电平、但在连接电缆后、P1 上的链路 LED 是否会变为高电平?

    此致、
    j

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

    尊敬的 J:

    下面是我的系统的方框图:

    LED 的行为确实很奇怪。 当我仅在铜缆 SFP 端口 p0 上有链路时、端口 P1 的链路 LED 不会变为高电平、但 P1 的活动 LED 会闪烁。

    此致、

    Pascal

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

    尊敬的 Pascal:  

    感谢您提供方框图。 这对我的理解有很大帮助。  

    在 SGMII 转铜缆模式下、链路状态由 P1 确定。 因此、如果 P1 上没有连接、则链路状态不会变为高电平、P1 的链路 LED 也不会变为高电平。  

    但是、如果我正确理解您的问题、您是否同时连接了 P0 和 P1?

    什么是链路伙伴? 介质转换器模式的链路伙伴是否相同?
    此外、我知道您使用同一电路板来实现两种不同的模式。 如果是、是更改 strap 配置以更改 PHY 的运行模式、还是在电路板初始化时更改寄存器配置? 如果您使用寄存器配置、您能向我们展示您的寄存器配置吗?

    最后、这是唯一发生的电路板、还是有多个电路板展示这种行为? 这个问题在每个电路板上的可重复性如何?

    请告诉我。


    此致、
    j

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

    尊敬的 J:

    我的问题是、当我处于 SGMII 转铜缆模式、连接或断开 P1 时、我需要知道端口 P0 的链路状态。

    要更改 PHY 的 P0 运行模式、我在板初始化时更改配置寄存器:
    =>模式 1000M 介质转换器:
    写入@0x1DF = 0x0044 //将 Operation Mode 设置为 1000Base-T 至 1000Base-X
    写入@0x00 = 0x1140 //复位 BMCR  
    写入@0x14 = 0xFFFF // GEN_CFG2
    写入@0x10 = 0x5048 //复位 PHY_CONTROL
    写入@0x1F = 0x4000 //软件复位
    =>铜缆以太网模式 SGMII:
    写入@0x1DF = 0x0046 //将操作模式设置为 SGMII 至铜缆
    写入@0x00 = 0x1140 //复位 BMCR
    写入@0x14 = 0xFFFF // GEN_CFG2
    写入@0x10 = 0x5048 //复位 PHY_CONTROL
    写入@0x09 = 0x0B00 //广播 1000Base-T 能力
    写入@0x1F = 0x4000 //软件复位

    以下是我在链路伙伴能力寄存器中读取的值、P0 处于 SGMII 转铜缆模式:
    =>未连接 P0 和 P1 时:       @0x05 = 0x0     /@0x08 = 0x0    /@0xC05 = 0x4001 /@0xC08 = 0x0
    =>连接 P0 且未连接 P1 时:@0x05 = 0x0     /@0x08 = 0x0    /@0xC05 = 0xD801 /@0xC08 = 0x0
    =>未连接 P0 且连接 P1 时:@0x05 = 0x5E1/@0x08 = 0x4006 /@0xC05 = 0x4001 /@0xC08 = 0x0
    连接 P0 和 P1 时:             @0x05 = 0xC5E1 /@0x08 = 0x4006 /@0xC05 = 0xD801 /@0xC08 = 0x0
    以下是我在链路伙伴能力寄存器中使用 P0 在 1000M 介质转换器模式下读取的值:
    =>未连接 P0 和 P1 时:       @0x05 = 0x0     /@0x08 = 0x0    /@0xC05 = 0x0     /@0xC08 = 0x0
    =>连接 P0 且未连接 P1 时:@0x05 = 0x0     /@0x08 = 0x0    /@0xC05 = 0x4060 /@0xC08 = 0x0
    =>未连接 P0 且连接 P1 时:@0x05 = 0xC5E1/@0x08 = 0x4006/@0xC05 = 0x0    /@0xC08 = 0x0
    连接 P0 和 P1 时:              @0x05 = 0xC5E1 /@0x08 = 0x4006 /@0xC05 = 0x4060 /@0xC08 = 0x0

    我在其他类似的卡片上也有同样的行为,这是完全可重复的。

    此致、

    Pascal

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

    尊敬的 Pascal:  

    在 SGMII 转铜缆模式下、无法直接了解 P1 的链路状态、因为它旨在连接到 MAC、而不是用作显示链路状态的单独端口。  
    一种权变措施可读取寄存器 37h 的位 0。 如果该位为 1、则该位显示 SGMII 自动协商是否完成。 如果启用了 SGMII 自动协商、则该位可以显示链路是否可用。 默认情况下启用 SGMII 自动协商。  

    此致、
    j

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

    尊敬的 J:

    遗憾的是、只要我的卡上存在铜缆 SFP、即使没有连接端口、SGMII_AUTO_NEG_STATUS 寄存器 (37h) 也始终会返回 1。 如果我移除 SFP、它只会变为 0、因此我无法使用它来确定是否已与远程产品建立链路。

    此致、

    Pascal

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

    尊敬的 Pascal:  

    遗憾的是、此端口不用于确定链路状态。 除非使用介质转换器模式、否则我看不到 PHY 能够显示链路状态的方式。  

    此致、
    j