案例分享–以太网网口不协商问题案例分析

      今天分享一个前端时间项目上遇到的问题,网口不协商问题,今天主要分享我自己的一个问题定位的思路,以及帮助大家避坑,希望读到这篇文章的朋友不会犯同样的错误。

首先介绍下产品背景,如下为产品方框示意图:

1,问题发现及现象

      收到 EVT1样机,最开始发现单板可正常启动,串口打印正常,无线模块已正常启动,但是发现有线口不link,考虑到该方案使用一款新方案的千兆PHY,可能是硬件设计问题,或者软件驱动没有适配好。

2.问题分析定位过程

a.首先我们检查硬件电路设计是否正常?

–通过对比参考设计,未发现异常部分。

b.测量PHY 芯片的各组工作电压是否正常,晶体是否起振?

–整个芯片就两组电压,3.3V和1.0V(内置DC_DC转换),测量发现3.3V电压正常,1.0V无输出,同时25M 晶体也没有起振。由此我们判断此PHY芯片还没有正常工作,应该是软件驱动没有适配好,于是让软件同事检查软件配置及设置相关。

c.软件同事发现软件配置确有异常,最初版本没有适配到这个PHY芯片,于是我们重新烧录软件,再次验证,发现网口仍然不link.

–继续测试检查硬件,首先复验之前的问题,发现1.0V电压正常,25M晶体已经起振,同时我们测量RGMII接口,MDC/MDIO 控制线接口,发现MDC有时钟波形,并且数据线上也能测试到波形。此时基本可以判断PHY芯片已经正常工作了,从MAC到PHY这段也基本上没有什么问题,但是网口仍然不link,问题大概率就在PHY到RJ45这段了,这一段只有MDI走线+电容耦合+RJ45.前面已经检查连线没有问题,而中间的耦合电路是其它项目的成熟应用,问题就在RJ45.

d.通过前面的测试和分析,我们已经锁定问题点在RJ45,最大怀疑就是RJ45的封装是否正确。于是找出RJ45的规格核对封装。–不知道大家看到下面下面两个图是否发现了异常?

      通过对比发现:两个封装的PIN脚定义,虽然第2PIN都是相同的,但是推荐的已经标示到9了,于是我们找厂商核对,确认这个网口的PIN脚定义。

e.通过与厂商确认,为什么他们标识的PIN脚都到9了,他们的回复是他们这个规格书是做的10PIN接口的。由于我们使用的8PIN针脚,所以去掉了第1PIN和10PIN。同时给出了8PIN的pin脚定义。他们标识的2PIN对应8针就是1PIN。到此我们确定我们所建封装第1.2PIN顺序反了,导致网口不协商。其实1和2,7和8反了是不影响功能,但是3和4,5和6反了,网口接线顺序就错位了,就会导致功能问题。–不知道大家是否遇到过10PIN RJ45的规格书。我反正是第一次。

3.解决措施

       措施分为临时措施及长期措施,临时措施就是要解决眼前的问题,完成单板硬件的测试与调试工作,长期措施就是要永久彻底解决这个问题。

临时措施:

      a.可以通过PCB飞线,通过前面的分析,只需交叉3和4,以及5和6即可。考虑板子空间小,可操作性不强。

      b.修改正常网线一端的线序,及交叉3和4,5和6。

EIA/TIA568B 标准网线线序:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

    一端 交叉3和4,5和6之后:白橙、橙、蓝、白绿、绿、白蓝、白棕、棕

4.总结

     1.这次问题主要原因在于对厂商提供的规格书,解读有误导致,对规格书的描述有误解,其它最开始也是有疑惑的,一般RJ45常规做法都是标示第1PIN的,也有一定的疏忽大意,虽然有疑惑,但是没有找供应商double check ,还是按照自己的理解执行下去了。后续在解读厂商规格书的时候,有任何疑问都要及时与厂商确认。

     2.为了避免类似错误再次发生,我们也可以对RJ45的PIN脚定义做一个总结,因为RJ45也是属于标准器件,其实它的第一PIN也是标注,就算我们不看规格书,只要理解了它的标准定义,也是可以知道它的第一PIN。

      我们常见的网口有两种,如果我们水平放置RJ45,RJ45有一个缺口,缺口要么在上,要么在下。有一句口诀就是,缺口向下,左边第一。

      我们回顾一下这个问题,算是一个低级错误,我们知道如果PCB 封装错误,对硬件来说是严重的,基本上就意味着要改版。只要我们多想一点,平时多思考一些,很多问题都是可以避免的,希望本文可以帮助到你,在硬件设计路上不要踩我踩过的坑。

作者:极客石头

在搞事情的路上越走越远。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注