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.

[参考译文] DP83867IS:启用6线制以上之后、所有 PHY 寄存器都收到无用值。

Guru**** 2466550 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1474784/dp83867is-after-enabling-6-wire-more-all-the-phy-registers-are-getting-junk-values

器件型号:DP83867IS

工具与软件:

我使用的是具有 SGMII 接口的 Xilinx VCU118板。
启用6线模式(设置扩展寄存器0xd3的位14)并确保 RX_CTRL 自举(寄存器0x31位7为0)的软件权变措施正确。 所有 phy 寄存器都收到无用值、但我能够以1G/全双工方式使用以太网(对我来说很奇怪)。 现在问题是 phy 寄存器具有错误的值、因此我在其上面运行的任何应用程序、读取错误的 phy 寄存器、我们无法看到从 MAC 到 phy 的任何数据传输。

如果我执行 SW 复位(为0x1F 设置位15)、则所有寄存器都将设置回正确的值、但现在 PHY 无法工作、因为它已切换回4线制模式。 如果我将其切换回6线模式、相同的寄存器会被更新为垃圾值循环开始。

我在论坛上(https://e2e.ti.com/support/interface-group/interface/f/interface-forum/829808/dp83867is-ti-phy-sgmii-clock-output-stops-after-20-seconds)看到了一个类似的问题。 但对我来说没有20秒 启用差分时钟后、我就能看到效果。

PHY 寄存器(地址:0x3)开头的值:

ADDR = 0x0:0x1140
ADDR=0x1:0x7949
ADDR=0x2:0x2000
ADDR=0x3:0xa231
ADDR=0x4:0x1e1
ADDR=0x5:0x0
ADDR=0x6:0x66
ADDR=0x7:0x2001
ADDR=0x8:0x0
ADDR = 0x9:0x300
ADDR = 0xA:0x0
ADDR=0xb:0x0
Addr=0xc:0x0
Addr = 0xd:0x401f
ADDR=0xe:0x1030
ADDR = 0xF:0x3000
ADDR = 0x10:0x5848
ADDR = 0x11:0x1302
ADDR=0x12:0x0
ADDR=0x13:0x1440
ADDR = 0x14:0x29c7
ADDR=0x15:0x0
ADDR=0x16:0x0
ADDR=0x17:0x40
ADDR=0x18:0x6150
ADDR = 0x19:0x4444
ADDR=0x1a:0x2
ADDR=0x1b:0x0
ADDR=0x1c:0x0
ADDR = 0x1d:0x0
ADDR=0x1E:0x2
ADDR=0x1f:0x0
ADDR = 0x25:0x400
ADDR=0x2C:0x141f
ADDR = 0x2D:0x0
Addr = 0x2e:0x221
ADDR=0x31:0x1030
ADDR=0x32:0xd3
ADDR=0x33:0x0
ADDR=0x37:0x0
ADDR=0x43:0x7a0
ADDR = 0x53:0x2055
ADDR=0x55:0x0
ADDR=0x6e:0x803
ADDR = 0x6F:0x50
ADDR = 0x71:0x0
ADDR=0x72:0x0
Addr = 0x7B:0x5dc
ADDR = 0x7c:0x7d
ADDR = 0x8a:0x0
ADDR=0x86:0xd7
Addr=0xa0:0x908
Addr=0xa1:0x607
ADDR=0xa2:0x1010
ADDR=0xa3:0x1010
Addr=0xb3:0x88
Addr = 0xc0:0x0
Addr = 0xc6:0x0
Addr = 0xd3:0x0
ADDR = 0x170:0xc10

启用6线模式后 PHY 寄存器值:
ADDR = 0x0:0x1140
ADDR=0x1:0x1f8
ADDR=0x2:0x174
ADDR=0x3:0xc00
ADDR = 0x4:0x1
ADDR = 0x5:0x4001
ADDR = 0x6:0x6
ADDR=0x7:0x0
ADDR=0x8:0x0
ADDR=0x9:0x0
ADDR = 0xA:0x0
ADDR=0xb:0x0
Addr=0xc:0x0
ADDR=0xd:0x0
Addr=0xe:0x0
ADDR=0xF:0x8000
ADDR = 0x10:0x3
ADDR=0x11:0x1
ADDR = 0x12:0x3
ADDR=0x13:0x0
ADDR=0x14:0x0
ADDR=0x15:0x0
ADDR=0x16:0x0
ADDR=0x17:0x0
ADDR=0x18:0x0
ADDR=0x19:0x0
ADDR=0x1a:0x0
ADDR=0x1b:0x0
ADDR=0x1c:0x0
ADDR = 0x1d:0x0
ADDR=0x1E:0x0
ADDR=0x1f:0x0
ADDR=0x25:0x0
ADDR=0x2C:0x0
ADDR = 0x2D:0x0
Addr = 0x2e:0x0
ADDR=0x31:0x0
ADDR=0x32:0x0
ADDR=0x33:0x0
ADDR=0x37:0x0
ADDR=0x43:0x0
ADDR=0x53:0x0
ADDR=0x55:0x0
Addr=0x6e:0x0
ADDR=0x6F:0x0
ADDR = 0x71:0x0
ADDR=0x72:0x0
ADDR=0x7B:0x0
ADDR = 0x7c:0x0
ADDR = 0x8a:0x0
ADDR=0x86:0x0
Addr=0xa0:0x0
Addr=0xa1:0x0
Addr=0xa2:0x0
Addr=0xa3:0x0
Addr=0xb3:0x0
Addr = 0xc0:0x0
Addr = 0xc6:0x0
Addr = 0xd3:0x0
ADDR=0x170:0x0

非常感谢您的任何帮助。 谢谢

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

    尊敬的 Ravindra:

    感谢您提供详细查询。 我预计4线和6线模式之间 PHY 的寄存器访问行为没有任何差异。 附加连接可能存在一些对 MAC 侧的依赖性、但需要更多信息来确认。

    请分享:

    • 原理图(CAN 发送电子邮件至 e-mayhew@ti.com 以进行私人共享)
    • 在4线和6线模式下、在单寄存器事务期间进行 MDIO/MDC 示波器捕获。 通过比较这些波形、我们可以确认 PHY 是否正在驱动相同的事务、问题是 MAC 读取信号。

    谢谢!

    Evan