phy芯片测试寄存器_MII的PHY芯片上100M调试总结

phy芯片测试寄存器_MII的PHY芯片上100M调试总结严重声明 本人以无野心搞其他 此篇是作为一名业余网络爱好者所学所遇所想 学习交流之用 与工作无关 亦没有他心 实为学习进程之步骤 无论学习还是工作都要认真对待 工作就是工作 爱好永远是爱好 泾渭分明了 首先要致谢 TreyParker 是他推荐的一篇帖子 解开了 3 个日夜来的困惑 最近在焊接 MII 的 PHY 芯片的时候总是满心欢喜的希望自己焊接完毕一 ping 就可以通了 但是万万没想到的是盼来了 time

严重声明:本人以无野心搞其他,此篇是作为一名业余网络爱好者所学所遇所想!学习交流之用,与工作无关。亦没有他心。实为学习进程之步骤。无论学习还是工作都要认真对待。工作就是工作。爱好永远是爱好。泾渭分明了。

首先要致谢Trey Parker ,是他推荐的一篇帖子,解开了3个日夜来的困惑。

最近在焊接MII的PHY芯片的时候总是满心欢喜的希望自己焊接完毕一ping就可以通了。但是万万没想到的是盼来了time out 让我甚为懊恼。一个小小的PHY芯片怎么会这么难搞?而且以前我都是写好了程序,调试好了的怎么做了板子回来焊上就不工作了?难道我硬件挫成狗了么?

程序是早已经写好了,有一个单独的UDP发送线程点了一个灯100MS闪烁一次,可是连这个灯也不闪烁。难不成单片机都不跑?可是程序已然是烧写了,应该没有问题,于是傻乎乎的查找BOOT引脚。一看是MAIN FLASH,放心了。由于没有打印信息所以直接上万能的debug.

各种怀疑阶段:

1、是不是原理图搞错了?

2、难道是没法和PHY通信?

3、CPU程序跑着呢?

4、是不是还有其他原因?

纠结阶段。。。。。。。

debug发现程序在这里等待

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

哦原来是这样。这是操作系统启动之前的网卡PHY初始化配置里面。卡在这里,操作系统没有机会加载。所以线程没有运行起来。

于是乎打开PHY的手册找到BSR的寄存器

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

一切了然,于是果断插好网线,link status 果断置1.

操作系统跑起来了LED闪起来了。UDP发起来了。就是PING 没起来。在MAC 的中断里始终没有接受到任何数据包。

于是乎找出原来的板子,烧写程序,测试,一切正常,TCP链接正常,UDP正常。

为毛一样的程序他能用他不能用呢?开始怀疑硬件!!!!!

怀疑硬件首先从原理图开始,

我对照原理图反复核对,在找芯片的引脚反复核对,4遍之后,实在是没有不妥的地方。原理图和芯片引脚没有错误。

这是哪里的问题呢?

于是乎看手册,这里有一段话

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

然后就是各种枚举。0-31挨着试。现在看来以前的就是对的。因为板子没做任何上啦措施。所以地址就是0X01最后我也意识到了这个问题。也就没有再试,因为要是地址不正确的话你是不可能读取寄存器的值的。

排除了地址问题又上电开始测试。想抓下包看下。于是打开wirshark 抓包。我看到了UDP发送出来。也看到了ARP发送出来,令我大喜,于是我果断开启TCP等待链接。始终没等到。打开抓包一看我我去,全部是PC的询问和板子的询问。还夹杂PC的回复,就是没有板子的回复。

也就是说板子可以TX但是无RX。再次debug

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

这次有收获,就是自适应成功,为100 M

这证明PHY可以进行自动协商。至少这两对差分没问题。

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

但是问题是不能接受导数据,却可以发出去。这证明PHY配置正常TXD正常。

开始反复比对TXD部分的电路。万用表校核了又校。前前后折腾了2个晚上。最后被打败。没有解决。MAC依然不进中断。

第二天…….

各大论坛、群、朋友的记录中多了…….你遇到过什么什么问题没有

phy芯片测试寄存器_MII的PHY芯片上100M调试总结我的不好使…..

得到的回复是:检查PCB走线、检查程序、检查原理、检查晶振、检查供电、检查引脚虚焊、各种检查各种找。

于是乎开始了艰难的检查。没哟示波器,看不到波形。就用万用表比对电平。挨着测量RXD所以的信号线

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

显然就是这几根线,找来找去没见有什么不对的地方。绝望来袭。。。。

想起以前的好用现在的不好用?是不是芯片的问题呢?于是乎着手更换芯片。更换了之后

更绝望的是都不好用了,换完了之后原来好用的也不好了!!也就是说好眼也治瞎了,本来是看见的,瞎了,完全瞎了。。。。。。

但是希望还在,因为刚换上的还是好老的一样的毛病能发不能收,也就是说这个问题发生在PHY的RXD和MAC之间的走线上。

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

又开始检查了。查来查去没问题啊!!

持续到稍早的时候。Trey Parker  出现,果断推荐好贴。

原来已经有人和我一样碰到此种问题。对付此种问题的方法也是各有千秋,但是有一点都是一样。那就是选择10M。

因为10M的MII的速率为10MPCB走线不会影响。

我抱着试试看的态度买了一个疗程,吃了之后 果然

1、修改PC的网卡为10M全双工

2、上的运行

phy芯片测试寄存器_MII的PHY芯片上100M调试总结

也就是说我也是这个问题:

第一:PCB在100M高速信号。

第二:25MHZ的OUT信号对地加一只5-20P的电容整形

第三:25M晶振电容不能少啊!!

又看了下人家的接口,奇异的发现他们多是RMII接口的,其实他们是对的RMII的100M时PHY和MAC才50M的,对PCB的走线要求低很多的。但是MII直接上100M对PCB走线就要求高很多很多料!

什么事都是这样,不做不知道。不做你根本不知道这里面有这么多的问题,硬件没有那么简单,尤其是高速电路。远远比想的要多!多学多看。多实践。多讨论。共同进步。

画好一个PCB不是以前我想的那么简单,不就是几根线么?要知道有人画得能用,有人花的就不能用。这就是道理。虚心的听从别人的意见去其糟粕。取其精华。

老王

2015/9/1

后记:

1、最终问题解决是25M晶振负载电容没有焊接。此种问题是晶振输出正玄畸变导致的。 最终还是上了100M.

2、RXD 时钟毛刺有。但是没有影响接收,这说明PCB走线还是有点刺毛。但是绝对能用

phy芯片测试寄存器_MII的PHY芯片上100M调试总结 ,走线水平有待提高。

3、即使使用MCU提供的25M时钟也应该在PCB预留电容焊盘有备无患。

老王

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233528.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C 异步调用

    C 异步调用C异步调用

    2022年7月27日
    6
  • java 获取_java中的html如何获取

    java 获取_java中的html如何获取packagecn.wideth.util;importjava.util.UUID;publicclassMain{/***UUID,通用唯一识别码,是由一组32位数的16进制数字所构成,*可以产生一个号称全球唯一的ID,可以用来命名文件、*变量以及数据库的ID主键等属于唯一的元素。*Java来获取UUID*@paramargs*/publicstaticvoidmain(St

    2022年8月9日
    5
  • 手机怎样识别图片中的文字?「建议收藏」

    手机怎样识别图片中的文字?「建议收藏」有手机的人都会安装微信,需要识别文字怎么办,手机怎样识别图片中的文字?这个可以说难倒很多人,经常识别文字的人或许会知道,这里分享一个方法。1、打开手机里的微信,如果没有可以下载,接着在微信发现中找到小程序或者在搜索中搜索小程序。2、点开之后,这里就是…

    2022年6月11日
    38
  • mysql日志文件位置_linux怎么导出日志文件

    mysql日志文件位置_linux怎么导出日志文件登录mysql终端mysql-uroot-p输入密码:进入mysql>1.日志文件路径mysql>showvariableslike‘general_log_file’;±—————–±———————————–+|Variable_name|Value|±—————–±———————————–+|general_log_f

    2022年8月31日
    4
  • JDK11安装包(win版)「建议收藏」

    链接:https://pan.baidu.com/s/1S10D5sA8WkYcyOjnE1M5IA提取码:pl26

    2022年4月11日
    45
  • 使用()命令来启用FTP服务_windows播放ftp

    使用()命令来启用FTP服务_windows播放ftp首先是win10控制面板–》程序–》启用或关闭windows功能找到Internetinformationservice(信息服务),并选中“FTP服务”、“FTP扩展性”和“IIS管理控制台”前的复选框,点击“确定”在C盘创建一个FTP共享文件夹,名字自定义接下来是控制面板–》系统和安全–》管理工具–》InternetInformationServices(IIS)管理器如下图所示,鼠标右键红框地方添加FTP站点站点名称自定义,路径选择先前创建的文件夹,

    2022年9月15日
    1

发表回复

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

关注全栈程序员社区公众号