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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 掌握这些常用Linux命令,一起提升工作效率

    万字长文分享Linux常用命令,一起提升工作效率。开始上班了,新一年的奋斗的之路启程了,要继续【奔赴山海,奔赴热爱】。

    2022年3月1日
    36
  • AE常用表达式汇总「建议收藏」

    很多朋友面对AE表达式望而生畏,不过再难的东西都会有它最本质的规则,如果你理解了基本的原理和常用的表达式命令,这也许会提高你的工作效率。我通过自己对AE表达式的理解,尝试用最简单的语言解释一些看似复杂的操作,如果此篇文章能给你带来一些启发,不胜荣幸~首先什么是表达式呢?表达式就是AE内部基于JS编程语言开发的编辑工具,可以理解为简单的编程,不过没有编程那么复杂。其次表达式只能添加在可以编辑的关建帧的属性上,不可以添加在其他地方;表达式的使用根据实际情况来决定,如果关键帧可以更好的实现你想要的效果,使

    2022年4月6日
    352
  • “国产Linux“的终结

    “国产Linux“的终结

        现今,“国产Linux”不见了,也不再有人提起了,人们的思想获得了大解放。此话根据何在?
     
         6月29日,《2010‘开源中国,开源世界》高峰论坛在北京举行。高峰论坛的议事议程及其特意安排充分显示出,在我国开源发展历史上,这次会议是一个具有特殊意义的发展里程碑。近半年来,我国

    2022年5月13日
    37
  • 十大排序算法简单讲解

    十大排序算法简单讲解

    2021年9月28日
    45
  • 2020版Java视频教程|java零基础到就业全套视频教程线上免费观看,java免费教程直接看

    2020版Java视频教程|java零基础到就业全套视频教程线上免费观看,java免费教程直接看第一阶段:Java基础学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。第二阶段:数据库互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java

    2022年7月7日
    25
  • windows定时关机命令 取消定时关机命令 查看DNS缓存命令 清除DNS缓存命令「建议收藏」

    windows定时关机命令 取消定时关机命令 查看DNS缓存命令 清除DNS缓存命令「建议收藏」shutdown-s-t以秒为单位的时间值注意这里的时间是以秒为单位哦例如:shutdown-s-t3600这是一个钟之后自动关机如果要取消自动关机,则输入:shutdown-a即可。另外再记个我觉得的常用命令吧ipconfig/displaydns这个显示是电脑上的dns缓存的全部信息ipconfig/flushdns这个是清除dns缓存的命令。…

    2022年5月14日
    57

发表回复

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

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