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


相关推荐

  • 用bootstrap模态框的时候,点击多少次按钮(确定、关闭),后台提交多少次Ajax,重复提交…

    用bootstrap模态框的时候,点击多少次按钮(确定、关闭),后台提交多少次Ajax,重复提交…

    2021年7月7日
    95
  • Python 递归函数

    Python 递归函数递归函数在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。递归函数特性:必须有一个明确的结束条件; 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实…

    2022年6月29日
    24
  • 实现关联条件的casewhen效果

    实现关联条件的casewhen效果 selectp.pcmxid,    j.csjtf*p.jsrs+j.dpf*p.jsrs+j.zsf*p.jsrs*p.sjts+    j.clbzf*p.jsrs*p.sjts+j.bxf*p.jsrs*p.sjtsasjsxj frompcmxp   leftjoin(—-关联一个过渡表 sele…

    2025年9月19日
    6
  • mysql 错误10038_如何解决MySql10038错误

    第一种方法:第一步:先看报错窗口2003can’tconnecttoMySQLserveron’127.0.0.1′(10038).第二步:原因是:远程3306端口未对外开放操作。第三步:首先远程连接服务器,点击”开始”–>”管理工具”–>”高级安全Windows防火墙”。第四步:在打开的窗口中,左边选中”入站规则”,右边点击”新建规则”来建立一个入站规则。第五步:…

    2022年4月18日
    60
  • 直播界的新玩法:你又套路用户!只要钱到位,榜单全干碎

    直播界的新玩法:你又套路用户!只要钱到位,榜单全干碎今天早上好心市民王先生(公众号:hxsmwxs)在翻看AppStore榜单的时候,发现今天凌晨(25号0:00分)榜单更新后有三款应用刷榜,乍一看是两款游戏,一款应用,但好心市民王先生(公众号:hxsmwxs)在下载之后发现了其中一款的秘密,就是下面这款【战舰世界】看看它的排名变化,真是舍得花钱啊下面我们一步步的分析这款应用所有用户点开从名称到截图乍一看就是一款游戏,但从描述中不难发现,他就是一…

    2022年6月5日
    60
  • docker搭建kafka集群[通俗易懂]

    docker搭建kafka集群[通俗易懂]docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

    2022年4月25日
    33

发表回复

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

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