主题中讨论的其他器件: DP83869EVM、 DP83869
工具/软件:
您好:
我在介质转换器模式(光纤至铜缆)下使用 DP83869HM PHY。 连接两个侧端口时、器件工作正常。 但我们面临的问题是、当链路的任何一侧自动中断时、另一侧链路也会中断。
例如、开始时、铜缆端口链路和光纤端口链路都将接通。 每当我们只断开光纤端口(铜缆端口按原样连接)时、 铜缆端口链路也会中断。 如何避免这种情况? 我想使每个端口的链路独立。 请提供解决方案。
此致、
Balaji TS
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 PHY。 连接两个侧端口时、器件工作正常。 但我们面临的问题是、当链路的任何一侧自动中断时、另一侧链路也会中断。
例如、开始时、铜缆端口链路和光纤端口链路都将接通。 每当我们只断开光纤端口(铜缆端口按原样连接)时、 铜缆端口链路也会中断。 如何避免这种情况? 我想使每个端口的链路独立。 请提供解决方案。
此致、
Balaji TS
您好 Gerome、
我已经在0x6E 寄存器中检查了 strap 状态。 借助0x6E 寄存器数据、禁用链路中断直通。 只有此 Pin 被重新分配到我的问题或我们应该执行的任何其他硬件/软件设置来解决问题?
我在数据表中可以看到、链路损耗直通仅与100M 有关。 这与1000M 无关吗? 它是否与光端口和/或铜端口相关?
是否可以使铜缆端口完全独立于光端口? 就像电路板上电并且我们将铜缆端口连接到任何其他链路伙伴时一样、即使未连接光纤端口、也应该会连接铜缆端口链路。 这是可以实现的吗?
我在上电后执行这些寄存器操作:
将0x8000写入0x0000
将 0x8000写入0x001F
将0x4000写入0x001F
将0x8000写入0x0000
将0x0110写入0x0000
将0x6CC0写入0x0018
对于100M 转换:
将0x1140写入0x0000
将0x5048写入0x0010
将0x1140写入0x0C00
将0x1FFC 写入0x01EC
对于1000M Coneversion:
将0x1140写入0x0000
将0x5048写入0x0010
将0x0140写入0x0C00
将0x1FFC 写入0x01EC
我的寄存器设置是否正确? 任何必要的更改。
谢谢你。
此致、
Balaji TS
您好:
我能够使用我们的 DP83869EVM 并创建链路中断直通的设置。 对于此设置、我使用另一个 EVM 作为 FX 链路伙伴、并使用数据包生成器/校验器作为 CU 链路伙伴。 我在1G MC 模式下 Strap 配置 DUT 和 FX 链路伙伴。 我观察到 LED1指示 FX 链路建立、而观察到 LED0和2分别指示链路速度和1G 速度。
默认情况下、在 EVM 上未搭接链路中断跳线。 断开 SFP 上的 RX FX 电缆时、我看到 CU 链路已切断(预期)。
然后重置 PHY、但这次我设置链路中断跳线。 我断开 SFP 上的 RX FX 电缆、并且 CU 链路完好无损(预期)。
此致、
Gerome
尊敬的 Balaji:
您正在写入大量不需要的寄存器复位。 建议对寄存器0x1F[15]="1"进行单次写入就足够了。 PHY 是否配置为1G MC 模式? 这将处理大量的寄存器配置。
否则、链路损耗直通似乎是寄存器0x1EC[3]。 我可以看到该位在回读时切换、具体取决于配置(strap)。 这似乎为"0"表示禁用链路中断直通、而为"1"表示启用。
此致、
Gerome
您好 Gerome、
在哪里可以找到 x1EC 寄存器的详细信息? 数据表中未提供0x1EC 寄存器详细信息。
我还有一个疑问。 此板是否支持单向流量? 与 CU 端口一样、CU 端口连接到一个 PC1、Optiacal 端口连接到 PC2 (我们只连接一根导线、即光学端口 TX 到 PC2 RX)。 然后、我们要将数据从 PC1发送到 PC2。 这可以实现吗?
谢谢你。
此致、
Balaji TS
您好:
我们将在下一个数据表版本中了解如何取消保留此位。 对于您的应用、此位是链路中断直通功能的相关、可变字段。 您可以对该位进行读写、并观察行为差异。
此主板不支持 FX 端的单向流量、因为第一个 DP83869需要建立链接才能通过通信。 仅通过 FX 电缆插入 TX 侧后、无法实现此目标。 因此、还需要插入 RX。 您仍然可以使用此配置在应用中建立单向。
此致、
Gerome
您好 Gerome、
使用此配置、您仍然可以在应用程序中建立单向。
在这句话中,我实际上感到困惑。 它是否可以通过在器件1 TX 到器件2 RX 之间连接的单线实现单向通信?
此主板不支持 FX 端的单向流量、因为第一个 DP83869需要建立链接才能通过通信。
是否有我们可以做到的方法 强制链路接通 手动选择光端口? 以及 DP83869如何得知电缆已连接/断开、以便它可以将状态更新为 Link_up/DP83869 Link_Down。
此致、
Balaji TS
您好 Gerome、
我们的项目 要求是使用单根 光纤将流量从一台设备发送到另一台设备 。 那么、您能给我们推荐任何其他可以满足我们要求的 PHY 吗?
在 PHY_CONTROL (0x10)寄存器中、有一个名为 FORCE_LINK_GOOD 的位。 该位的用途是什么?
要更新的一点是、禁用光纤自动协商后、如果 Device_2 TX 未连接(仅连接 RX)、则链路在器件2保持连接。 但 Device_1链路 因 Device_2的 TX 已断开连接而断开。
此致、
Balaji TS
您好 Gerome、
感谢您的建议。 寄存器0xD4[15]适用于光纤链路欺骗。 即使未连接 RX 电缆、链路也能保持稳定。 但是、如果启用了链路欺骗、问题是我无法将数据从器件1 (TX)发送到器件2 (RX)。
注:在此测试期间、两个设备都显示 CU 端口和光纤端口的链路接通。
我还观察到另外一件事、即0xD4[15]会自动被清零。 在修改寄存器之前、我先读取寄存器。 我得到了0x1200作为响应。 为启用光纤链路欺骗、我将0x9200写入该寄存器、因此启用了光纤链路欺骗、即使不连接 RX、光纤链路也能保持正常运行。 如果读取0xD4、我将获得0x1200响应、则再次进行此操作。 是读取清除位还是读取/写入位?
能否获取0xD4寄存器的更多详细信息?还有一件事是、如果启用了光纤链路欺骗、这意味着即使 RX 和 TX 线路都连接在器件1和器件2上、我也无法发送数据。
可能是什么原因导致了该问题? 启用链路欺骗时、是否需要更改任何其他寄存器设置(铜缆或光纤)以发送数据?
我还观察到另外一件事、即0xD4[15]会自动被清零。 在修改寄存器之前、我先读取寄存器。 我得到了0x1200作为响应。 为启用光纤链路欺骗、我将0x9200写入该寄存器、因此启用了光纤链路欺骗、即使不连接 RX、光纤链路也能保持正常运行。 如果读取0xD4、我将获得0x1200响应、则再次进行此操作。 是读取清除位还是读取/写入位?
可以获取0xD4寄存器的更多详细信息吗?
此致、
Balaji TS
还有一个观察结果是、我们在不启用光纤链路欺骗的情况下对 DUT 进行了编程。 我们在器件之间同时连接了 TX 和 RX 线。 使用此设置、我可以将数据从器件1发送到器件2、而不会出现任何问题。 在运行期间,我通过写入0xD4[15]启用了光纤链路欺骗。 再次尝试将数据从器件1发送到器件2。 现在、数据传输停止后、只有前9或10帧从器件1发送到器件2 [与器件1处的 RX 连接无关]。 只有在禁用光纤链路欺骗后、帧才会再次到达设备2。
此致、
Balaji TS
尊敬的 Balaji:
此设置是之前的 E2E 给出的、并在 EVM 中得到了证实。
设置中必须有所不同。 如果您愿意、我建议将 Vikram 和 Jane 在我们的 EVM 上的发现与另一个 EVM 集交叉验证。
此致、
Gerome