前言
硬件配置:主芯片FMQL45T900+phy芯片32所JEM88E1111(marvel 88e1111平替产品)。
网络模式:RGMII 百兆带宽。
软件配置:裸机LWIP。
一、问题
前期采用主芯片FMQL45T900+marvel 88e1111,因国产化需求,phy芯片改为32所JEM88E1111,且FMQL45T900+marvel 88e1111模式网络已调通,重新制板后调试网络,发现link后ping板端会不规律出现以下现象:
判断网络传输有丢包。
二、问题处理
1、起初怀疑网线问题,老板子采用带变压器的RJ45口,使用双绞线,新板采用网络变压器,接出网线为平行线,通过对网线的替换(平行线改为双绞线),问题仍然存在。
2、后怀疑网络芯片问题,更换为marvel 88e1111后网络正常,但是使用复旦微提供的回环测试代码,测试接收正常,发送出现超时,测试失败,老板子测试是通过的。因为ps端跟phy芯片的RGMII接口是直连的,无法测试波形及点位,通过挖孔,测试RGMII收发时钟,发现tx_clk时钟频率为24.7MHz,实际要求25MHz,允许偏差在50ppm,此时钟由PS端外接33.3MHz晶振提供,通过测量外接晶振,发现频率为33MHz,与33.3MHz相比偏差较大,更换为33.3MHz晶振后问题解决。
三、总结
此次问题主要归结于经验不足,前前后后折腾了将近1个月,从软件到硬件排查了很久,除了主芯片,phy外围硬件基本上能换的都换了一遍,但就是没有想到主芯片时钟频率的问题,但最后还留有一个疑问就是marvel 88e1111网络芯片在时钟频率有偏差的情况下反复测试都没有丢包,个中原因就不得而知了。