hard_01

支持2.5G带宽的 phy 器件调试分享(88e2110)

0
阅读(1978)

        支持2.5G带宽的phy 市面上比较少,而且基本上只有博通、marvell生产。但是随着2.5G 网卡的出现,下行端口2.5G也随之涌现。ok,话虽饶舌,言归正传。

        我用的这颗phy是Marvell的,支持2.5G带宽,BGA封装,它适用于将SGMII转copper,即连接MAC侧的是SGMII接口,媒体侧即RJ45接口。看起来功能比较简单吧,我这就是将该器件通过SGMII与一个内嵌2.5G MAC 的交换机芯片连接,卖个关子,我这暂时不提交换机型号。

        电路原理其实比较简单,SGMII 互联时候需要使用AC耦合模式,参考芯片手册对phy做一些外部配置,如地址配置,时钟选择配置,器件2.5G带宽模式配置,还有一个重要的是固件下载方式设置。

        在调试中,我就很不幸的遇到了一些麻烦,还好原理上没有致命bug,还是可以修复好的。稍安勿躁,带我娓娓道来。

        板卡上电,直接测功能,如果phy工作正常,那么用网线接到电脑上,电脑网络图标那至少会显示连接上,而不是一个大红×。而我看到的是大红×,欲哭无泪啊。。。工程师就要有颗不服输的心,打破砂锅问到底的执著,撸起袖子开干!

        首先检查时钟,这个phy需要一个50M晶振,我选的是插装晶体,就俩大长腿的那种。我用示波器一侧,中看不中用啊,读到的频率仅仅才16.6MHz,所以这个肯定是第一个原因。反复查阅资料后,才知道,这种插装的晶体叫做泛音晶体,存在基频和三倍、五倍泛音区别。通常,25M以内的晶体就是按照其基本频率起振的,如果是50M,需要配置为三倍泛音模式,即16.6×3大约为50M。但是,配置电路似乎有点复杂,不但是俩负载电容就可以搞定。没辙,那就选择SMD贴片的无源晶体,更换后,该无源晶体起振后就是50M 频率。为啥不用有源,芯片手册不允许啊!

        时钟可以了,还是不能工作。幸好我将MDC、MDIO接口留了出来,方便读写其内部寄存器。Marvell 提供了配套的GUI软件和usb转mdio板子,可以读写到其内部寄存器。接上后我可以读取到不同地址的寄存器,比如phy id和状态等。这就说明,器件还是工作了,只是没有按照相应模式工作。这基本可以判断,时钟、复位、电源等没什么问题。

        最后看了下芯片手册,它提到如何把固件写进外部flash或者内部ram,虽然设计之初没挂flash,但是写进ram似乎可行。于是乎,反复看手册如何操作,又去官网下固件程序,终于,把它给灌进去了。

        奇迹....就随之发生,RJ45网口处的指示灯闪亮了,电脑网络连接也显示正常了,将主机网卡换成2.5G网卡,测试带宽也符合实际。当时连通的那瞬间,好比球场上上演帽子戏法,梅开二度一般,奥利给的狠。兴奋感延续了一分钟后,你懂得,继续搬砖前进吧,但是那份自信确实永久的留在工程师心里了。


PS:需要phy的我可以给你带货,价格美丽