裕太微YT8511的RGMII链路千兆网不通,百兆网通的解决方法

前言

        YT8511是裕太微旗下的一款支持千兆以太网PHY芯片

特性

        1、支持RGMII接口到MAC设备,具有宽I/O电压水平选项2.5V,兼容3.3V I/O。

        2、兼容10BASE-Te/100BASE-Tx/1000 BASE-T IEEE 802.3标准

        3、支持RGMII定时模式支持Rx路径上的内部延迟和外部延迟。

        4、支持WoL (wake -on- lan)功能,检测魔包并通知休眠系统唤醒。

        5、软件可编程LED模式。

一:调试现象

        由于此前利用verilog代码编写过mdio配置和udp通信协议,RGMII通信正常,验证过开发板硬件是正确的,唯一的不同就是本次实验使用的是block design设计,通过软核配置实现千兆以太网通信。

       1-1:千兆网通信异常      

        通过MDIO接口配置寄存器(0x00)为自协商模式后,与MAC端协商完成,速率为1Gbps。此时利用Xilinx自带的lwip echo server例程进行数据收发回环验证,发现DHCP协议配置超时,IP地址被设置成默认,无法ping通该地址,且网口调试助手也无法连接。

     

        此时仍不知道是哪里出现问题,反复调试。按照控制变量法,此前verilog代码设计时,配置完自协商后就能够正常通信,而YT8511的驱动又成功配置了自协商模式1Gbps,说明驱动没有问题;且lwip的tcp echo server例程在ZYNQ板子上验证过是能跑通的,说明例程也没有问题。只有bd设计和底层YT8511驱动是自己添加调试的,那剩下就是bd设计的问题了。


        1-2:百兆网通信正常

        按照这个思路调试,反复修改bd设计,几天过去仍没有进展。就在一筹莫展时,突然脑子里有个想法:如果不设置自协商呢,通过寄存器自行配置成100Mbps的速率会怎么样。按着这个思路对YT8511驱动进行修改。

        结果意想不到的现象出现了,100Mbps速率下,DHCP配置成功了,网口调试助手也连接上,并且数据收发回环验证成功。虽然数据通道打通,但是这下让我更加疑惑:为什么100Mbps速率下链路是通的,而1000Mbps速率下链路不通。

        这里开始怀疑是不是bd模块里的DMA配置有问题,导致了网络速率上不去,后面验证这一想法也是错的。后续又看到一些帖子和我有类似问题,比如硬件阻抗不匹配、磁珠振荡影响千兆网络等。尝试更换电阻,结果更糟了,连YT8511芯片都识别不到,MDIO配置都不成功了。


二、解决办法

        2-1:定位及解决问题

        这时点开AXI 1G/2.5G Ethernet Subsystem,想看看配置里还有什么能修改调试的,突然看到提示。想起之前好像没有注意是RGMII2.0版本还是RGMII1.3版本。

        搜索RGMII1.3和RGMII2.0对比发现:RGMII时钟线和数据线需做延时处理以确保在高速率下采样的准确性,尤其是在1000Mb/s速率下,延时要求更严格。RGMII1.3协议可能依赖PCB走线延时,而RGMII2.0协议允许芯片内部配置 。

        这里是因为在1000Mb/s速率下,RGMII时钟速率为125M,而在100Mb/s速率下,RGMII时钟速率为25M。在125M的高速时钟速率下,每个时钟周期8ns,对延时的误差容错率就低;而在25M时钟下,每个时钟周期为40ns,对延时误差的容错性就高。这就能够解释为什么1000Mbps速率下通信异常,而100Mbps速率下却没有这个问题。既然又找到一个疑似问题,那就开始修改。

        根据YT8511数据手册,找到芯片内部延时寄存器,关闭Rx_clk延时使能

        在lwip库下的YT8511驱动中添加这两行代码

        重新编译完成后,烧写代码,再回去看串口打印的信息,此时自协商速率1000Mbps,DHCP协议配置通过,网口调试助手也成功连接上并且收发数据正常。

至此YT8511的RGMII链路千兆网异常,百兆网正常的问题解决。 

        2-2:问题总结 

        个人认为因为之前是用编写的verilog代码跑udp协议,只需要MDIO配置YT8511完成自协商后,就能实现RGMII通信,而本次采用Xilinx的IP核进行调试,对RGMII版本和rx端的延迟时序可能有要求,因此造成千兆网通信异常,百兆网通信正常的现象,需要在芯片内部关Rx_clk_delay_en信号,就能够解决该问题。

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值