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.

[参考译文] DP83867CS:Zynq 超气量+ PS 集成问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1368681/dp83867cs-zynq-ultracale-ps-integration-problem

器件型号:DP83867CS

工具与软件:

您好、TI 团队。

我有一个使用 Zynq UltraScale +的定制电路板。

它由一个 SGMII PS 端口连接到两个 DP83867CS。

我正在使用 petalinux 操作系统。

在 eth1端口上、一切正常、它自动获取 IP。

但是、在 eth0上、它不会自动获取 IP、即使我设置了静态 IP、也不会发送或接收任何消息。

你能帮我解决吗?

故障排除的详细信息:

以下是我为 ifconfig 获得的信息:

ETH0:flags=4099 MTU 1500
乙醚00:0A:35:16:C7:dd txqueuelen 1000 (以太网)
RX 数据包0字节0 (0.0B)
RX 错误0丢弃0溢出0帧0
TX 数据包0字节0 (0.0B)
TX 错误0丢弃0溢出0载波0冲突0
器件中断45

ETH1:flags=4163 MTU 1500
iNet 172.16.26.119网络掩码255.255.255.0 broadcast 172.16.26.255
inet6 fe80::2c1:beff:fe33:1 prefixlen 64 scopeid 0x20
乙醚00:C1:Be:33:00:01 txqueuelen 1000 (以太网)
RX 数据包28758字节1791349 (1.7 MIB)
RX 错误0丢弃10599溢出0帧0
TX 数据包2929字节634923 (620.0 KiB)
TX 错误0丢弃0溢出0载波0冲突0
器件中断46

当 我读取 每个的 DP83867CS 寄存器时,我得到了以下数据:

eth0 (工作不正常):  

寄存器0x00 = 0x1140

寄存器0x01 = 0x7949

寄存器0x02 = 0x2000

寄存器0x03 = 0xa231

寄存器0x04 = 0x09e1

寄存器0x05 = 0000

寄存器0x06 = 0x0064

寄存器0x07 = 0x2001

寄存器0x08 = 0000

寄存器0x09 = 0x0300

寄存器0x0A = 0000

寄存器0x0B = 0000

寄存器0x0C = 0000

寄存器0x0D = 0x401f

寄存器0x0E = 0000

寄存器0x0F = 0x3000

寄存器0x10 = 0x5848

寄存器0x11 = 0x0002

寄存器0x12 = 0000

寄存器0x13 = 0x0040

寄存器0x14 = 0x2bc7

寄存器0x15 = 0000

寄存器0x16 = 0000

寄存器0x17 = 0x0040

寄存器0x18 = 0x6150

寄存器0x19 = 0x4444

寄存器0x1A = 0x0002

寄存器0x1B = 0000

寄存器0x1C = 0000

寄存器0x1D = 0000

寄存器0x1E = 0x0202

寄存器0x1F = 0000

ETH1 (工作良好)

寄存器0x00 = 0x1140

寄存器0x01 = 0x796d

寄存器0x02 = 0x2000

寄存器0x03 = 0xa231

寄存器0x04 = 0x09e1

寄存器0x05 = 0xc5e1

寄存器0x06 = 0x006F

寄存器0x07 = 0x2001

寄存器0x08 = 0x5806

寄存器0x09 = 0x0300

寄存器0x0A = 0x3800

寄存器0x0B = 0000

寄存器0x0C = 0000

寄存器0x0D = 0x401f

寄存器0x0E = 0000

寄存器0x0F = 0x3000

寄存器0x10 = 0x5840

寄存器0x11 = 0xac02

寄存器0x12 = 0000

寄存器0x13 = 0x1c40

寄存器0x14 = 0x2bc7

寄存器0x15 = 0000

寄存器0x16 = 0000

寄存器0x17 = 0x0040

寄存器0x18 = 0x6150

寄存器0x19 = 0x4444

寄存器0x1A = 0x0002

寄存器0x1B = 0000

寄存器0x1C = 0000

寄存器0x1D = 0000

寄存器0x1E = 0x0202

寄存器0x1F = 0000

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

    您好,Elimelich:

    该问题是否出现在多个电路板上? 我们是否确定两个 PHY 的原理图相同? 在您提供的寄存器日志中、我注意到 eth0被向下链接(寄存器0x1 = 0x7949)、eth1被链接(寄存器0x1 = 0x794D)。 这是故意的吗? eth0有任何链路问题吗?

    此致、

    阿尔瓦罗

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

    嗨、Elimelech:

    读取寄存器0x6E 是出色的调试步骤。

    1. 工作端口和非工作端口之间的值0x6E 是否改变?
    2. 在 PHY 启动期间对引导进行采样、您是否可以在启动阶段再次尝试测量电压?
      1. 可能是某个东西在驱动 LED 线路、导致启动期间的自举电压不正确
    3. 只需确认一下、禁用端口镜像即可完全解决问题。  
      1. 现在、我们需要避免在一开始就在控制器中

    此致、

    阿尔瓦罗

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

    我在 PHY 进行硬件复位时测量自举电压。

    两个 PHY 上的电压均为300mV、这与预期相符(对于模式2)。

    该导线连接到 驱动 LED 的 MOSFET (TI 的 CSD13381F4T)的栅极。

    我假设流入 MOSFET 的电流可以忽略不计。

    正如您在第3行所写的那样, 禁用端口镜像完全解决了问题。  

    现在、我们需要避免在一开始就在控制器中

    你怎么看?

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

    嗨、Elimelech:

    感谢您确认300mV 的自举电压、您还可以确认以下几点:

    工作端口和不工作端口之间的0x6E 值是否发生变化?

    现在、eth1按预期运行、eth0被捆绑到镜像模式。 您能否在这两个寄存器上读取寄存器0x6E 和0x6F?

    此致、

    阿尔瓦罗

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

    在 eth0上(启动时运行不正常):

    0x6E = 0x882c

    0x6F = 0x0140

    在 ETH1 (启动时效果很好)上:

    0x6E = 0x0804

    0x6f = 0x0100

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

    嗨、Elimelech:

    我认为这是问题所在。 某种因素导致 PHY 捆绑到意外模式。  本常见问题解答 介绍了我们已采取的步骤、 您必须调查系统以找出捆绑问题的根本原因。

    此致、

    阿尔瓦罗