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.

[参考译文] DP83867IR:无法 Ping 设备的 IP 地址

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/947816/dp83867ir-cannot-ping-the-ip-address-of-the-device

器件型号:DP83867IR

大家好、

问题描述:

当 dp83867irrgz 实现100m 通信时、phy 和 PC end 自协商成功、但 PC 无法 ping 设备的 IP 地址

硬件平台是 Xilinx 的 zynq7000系列的7020。 dp83867irrgz (48引脚)与7020的 PS 终端连接。要求仅在 RGMII 模式下实现100MHz 网络通信。

原理图如下:

自举引脚仅引脚38 (Rx_ CTRL)上拉5.76k 电阻器并下拉2.49k 电阻器、以实现 mode3的自动协商使能、其他自举引脚在 mode1中处于开路状态

通过 MDC 和 MDIO、寄存器可以正常读写。 寄存器设置如下:

读取寄存器 Num[0000] PhyData[1140]
读取寄存器 Num[0001] PhyData[796D]
读取寄存器 Num[0002] PhyData[2000]
读取寄存器 Num[0003] PhyData[A231]
读取寄存器 Num[0004] PhyData[0DE1]
读取寄存器 Num[0005] PhyData[CDE1]
读取寄存器 Num[0006] PhyData[006F]
读取寄存器 Num[0007] PhyData[2001]
读取寄存器 Num[0008] PhyData[6001]
读取寄存器 Num[0009] PhyData[0300]
读取寄存器 Num[000A] PhyData[0800]
读取寄存器 Num[000b] PhyData[0000]
读取寄存器 Num[000c] PhyData[0000]
读取寄存器 Num[000d] PhyData[401F]
读取寄存器 Num[000E]物理数据[00D3]
读取寄存器 Num[000f] PhyData[3000]
读取寄存器 Num[0010] PhyData[1140]
读取寄存器 Num[0011] PhyData[6C02]
读取寄存器 Num[0012] PhyData[0000]
读取寄存器 Num[0013] PhyData[9CC0]
读取寄存器 Num[0014] PhyData[29C7]
读取寄存器 Num[0015] PhyData[0000]
读取寄存器 Num[0016] PhyData[0000]
读取寄存器 Num[0017] PhyData[0040]
读取寄存器 Num[0018] PhyData[6150]
读取寄存器 Num[0019] PhyData[444]
读取寄存器 Num[001A] PhyData[0002]
读取寄存器 Num[001B] PhyData[0000]
读取寄存器 Num[001C]物理数据[0000]
读取寄存器 Num[001D] PhyData[0000]
读取寄存器 Num[001E]物理数据[0002]
读取寄存器 Num[001F] PhyData[0000]
读取扩展寄存器 Num[0031] PhyData[10B0]
读取扩展寄存器 Num[0032] PhyData[00D0]
读取扩展寄存器 Num[0033] PhyData[0000]
读取扩展寄存器 Num[0043] PhyData[07A0]
读取扩展寄存器 Num[0055] PhyData[0000]
读取扩展寄存器 Num[006E]物理数据[000E]
读取扩展寄存器 Num[006F] PhyData[0100]
读取扩展寄存器 Num[0071] PhyData[0000]
读取扩展寄存器 Num[0072] PhyData[0000]
读取扩展寄存器 Num[0086] PhyData[00A8]
读取扩展寄存器 Num[00E9] PhyData[9F22]
读取扩展寄存器 Num[00FE] PhyData[E721]

调试结果:

1:LED0亮起、表示链路已建立;LED2间歇性闪烁、表示已接收或发送数据

2.从已连接 PC 上的任务管理器的"网络"中可以看出、PC 可以发现与100MHz 网络设备的连接、这表示 phy 和链接伙伴可以成功协商

3、RX_CLK 输出25MHz 时钟信号、RX_CTRL 将间歇性产生8321ns 高电平、而其他时间为低电平、RD0 ~ RD3也可测量波形

但是 GTX_CLK 没有信号生成、TX_CTRL 和 TX0 ~ TX3也保持特定的电平状态。 手册中有此类说明、如下面带下划线的部分所示。 但现在 GTX_CLK 没有时钟信号。

这是否意味着 MAC 与 PHY 的速率不同? 为什么没有相同的速率? 我们如何实现相同的速率?

总之、phy 和 link partner 之间的协商是正常的、但 phy 和 MAC 之间似乎没有有效的连接。 由于我不熟悉802.3协议、MAC 和 PHY 之间应该有哪种数据帧? 如何实现两层之间的通信?

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

    您好、Amy、

    MAC 应该提供一个与 PHY 提供的 RX_CLK 相匹配的 TX_CLK。  zynq7000 MAC 是 FPGA 实现还是专用 MAC 接口?  

    您能否确认连接到 PHY MAC 接口的所有 FPGA 引脚是否具有内部上拉/下拉状态? 根据 SOR 寄存器0x006E、器件的 PHY ID 是0xE、这是正确的吗? 这是通过外部自举电阻器设置的吗?  

    此致、
    Justin  

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

    您好 Justin、  

    感谢您的答复、并针对您的请求提供以下补充说明:

    1\FPGA 和 ARM 集成在 zynq7000中。 MAC 是 ARM 端的专用 MAC 接口、连接到 PHY MAC 接口的引脚是三态接口、如下图所示

    2、PHY_ID 与理论稍有不同。 对问题的描述中有一些缺失。 实际上、RXD0 (33引脚)与 RX_Ctrl 相同、用于上拉5.76k、下拉2.49k 和 mode1、而 RXD2为开路而不上拉/下拉。 理论上、它应该是 PHYID3 = 0、PHYID2 = 0、PHYID1 = 1、PHYID0 = 0。 实际上、RXD2在开路状态下测量的电压为0.6V、PHY 芯片将其判断为 Mode4、因此实际读数为 PHYID3 = 1、PHYID2 = 1、PHYID1 = 1、PHYID0 = 0、寄存器中读取的值为0x0E。 在这里、RXD0 ~ RXD3在开路状态下的测量电压约为0.6V、这是一个问题吗?

    我不太理解的另一件事是 GTX_CLK 和 TX_CLK 之间的区别。 我选择的48引脚 dp83867irrgz 仅具有 GTX_ CLK 引脚、而64引脚 IRPAP 具有 GTX_ CLK 和 TX_ CLK。是 GTX_ CLK 为1000M 时钟、而 TX_ CLK 为10/100M 时钟吗? 我的主控制芯片仅支持 RGMII 的 MAC 接口、而 MAC 专用 接口只有一个 TX_CLK。 这是否意味着我的主控制芯片只能连接48引脚 IRRGZ、而不能连接64引脚 IRPAP (因为64引脚 IRPAP 需要 GTX_ CLK 和 TX_ CLK)? 客户当前的系统是 RGMII 接口下的100MHz 通信。 客户想知道 GTX_CLK 是否与10/100/1000MHz 兼容?

    抱歉,我不熟悉以太网 PHY。 请指出不清楚的描述。

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

    您好、Amy、

    2.是的、我会说自举引脚上的开路电压为0.6V 是有问题的。 这表明 MAC 提供了一些上拉电阻、用于将器件捆绑到中间模式。 您能否确认只有 RXD[0:3]受此影响?  

    3. GTX_CLK 是在 RGMII 模式下从 MAC 提供给 PHY 的 RGMII 时钟。 这应该与 RGMII 模式下的 RX_CLK 频率相匹配。 64引脚器件中的 TX_CLK 是 MII 时钟、它是 MII 模式下 PHY 的输出。

    此致、
    Justin

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

    您好 Justin、  

    2.当 RST 引脚为低电平时、客户测得的 TXD0~3、TXCLK、TXCTL、RXD0~3、RXCLK 和 RXCTL。 所有信号均为0.6V。 这些信号在理论上应该大约为0V 吗?

    3、它是否可以理解为:对于48引脚器件、通信速率为10M/100M/1000MHz、GTX_CLK 为2.5M/25M/125M、时钟由 MAC 终端提供;对于64引脚器件、时钟由10M/100M 的 TX_CLK 提供、而 GTX_CLK 为1000MHz?

    客户想知道物理层和 MAC 之间在100MHz 通信速率下的 TXD0~3、TXCLK、TXCTL、RXD0~3、RXCLK、RXCTL 的波形和振幅是什么?

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

    您好、Amy、

     TXD0~3、TXCLK、TXCTL、RXD0~3、RXCLK 和 RXCTL 具有内部下拉电阻器、因此、如果要使用默认设置、这些引脚上的电压应接近0V、如数据表中的"设置电阻比"表中指定。 如果自举引脚上的电压为0.6V、当 VDDIO 为1.8V 时、器件将在模式3或4中自举。  

    3.可以,48和64引脚封装的 TX_CLK 说明是正确的。  

    在100Mbps 速度下、RX_CLK 和 TX_CLK 以25MHz 频率运行、振幅接近 VDDIO 设置。  

    此致、
    Justin