找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4798|回复: 0
打印 上一主题 下一主题
收起左侧

25M晶振负载电容没有焊接。导致输出正玄畸变生产严重的问题

[复制链接]
跳转到指定楼层
楼主
ID:82781 发表于 2015-6-13 00:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
严重声明:本人以无野心搞其他,此篇是作为一名业余网络爱好者所学所遇所想!学习交流之用,与工作无关。亦没有他心。实为学习进程之步骤。无论学习还是工作都要认真对待。工作就是工作。爱好永远是爱好。泾渭分明了。

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



最近在焊接MII的PHY芯片的时候总是满心欢喜的希望自己焊接完毕一ping就可以通了。但是万万没想到的是盼来了time out 让我甚为懊恼。一个小小的PHY芯片怎么会这么难搞?而且以前我都是写好了程序,调试好了的怎么做了板子回来焊上就不工作了?难道我硬件挫成狗了么?
程序是早已经写好了,有一个单独的UDP发送线程点了一个灯100MS闪烁一次,可是连这个灯也不闪烁。难不成单片机都不跑?可是程序已然是烧写了,应该没有问题,于是傻乎乎的查找BOOT引脚。一看是MAIN FLASH,放心了。由于没有打印信息所以直接上万能的debug.

各种怀疑阶段:
1、是不是原理图搞错了?
2、难道是没法和PHY通信?
3、CPU程序跑着呢?
4、是不是还有其他原因?
纠结阶段。。。。。。。

debug发现程序在这里等待

哦原来是这样。这是操作系统启动之前的网卡PHY初始化配置里面。卡在这里,操作系统没有机会加载。所以线程没有运行起来。
于是乎打开PHY的手册找到BSR的寄存器

一切了然,于是果断插好网线,link status 果断置1.
操作系统跑起来了LED闪起来了。UDP发起来了。就是PING 没起来。在MAC 的中断里始终没有接受到任何数据包。
于是乎找出原来的板子,烧写程序,测试,一切正常,TCP链接正常,UDP正常。
为毛一样的程序他能用他不能用呢?开始怀疑硬件!!!!!
怀疑硬件首先从原理图开始,
我对照原理图反复核对,在找芯片的引脚反复核对,4遍之后,实在是没有不妥的地方。原理图和芯片引脚没有错误。
这是哪里的问题呢?
于是乎看手册,这里有一段话


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

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

这次有收获,就是自适应成功,为100 M
这证明PHY可以进行自动协商。至少这两对差分没问题。



但是问题是不能接受导数据,却可以发出去。这证明PHY配置正常TXD正常。
开始反复比对TXD部分的电路。万用表校核了又校。前前后折腾了2个晚上。最后被打败。没有解决。MAC依然不进中断。

第二天.......

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

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

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



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

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

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

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



又开始检查了。查来查去没问题啊!!
持续到稍早的时候。
Trey Parker  出现,果断推荐好贴。

原来已经有人和我一样碰到此种问题。对付此种问题的方法也是各有千秋,但是有一点都是一样。那就是选择10M。
因为10M的MII的速率为10MPCB走线不会影响。
我抱着试试看的态度买了一个疗程,吃了之后 果然

1、修改PC的网卡为10M全双工
2、上的运行


也就是说我也是这个问题:
第一:PCB在100M高速信号。
第二:25MHZ的OUT信号对地加一只5-20P的电容整形
第三:25M晶振电容不能少啊!!

又看了下人家的接口,奇异的发现他们多是RMII接口的,其实他们是对的RMII的100M时PHY和MAC才50M的,对PCB的走线要求低很多的。但是MII直接上100M对PCB走线就要求高很多很多料!
什么事都是这样,不做不知道。不做你根本不知道这里面有这么多的问题,硬件没有那么简单,尤其是高速电路。远远比想的要多!多学多看。多实践。多讨论。共同进步。
画好一个PCB不是以前我想的那么简单,不就是几根线么?要知道有人画得能用,有人花的就不能用。这就是道理。虚心的听从别人的意见去其糟粕。取其精华。


老王
2015/4/1
后记:
1、最终问题解决是25M晶振负载电容没有焊接。此种问题是晶振输出正玄畸变导致的。 最终还是上了100M.
2、RXD 时钟毛刺有。但是没有影响接收,这说明PCB走线还是有点刺毛。但是绝对能用 ,走线水平有待提高。
3、即使使用MCU提供的25M时钟也应该在PCB预留电容焊盘有备无患。
老王
2015/4/3









分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表