DM9000 调试经历 发现曾经有不少用户自己做核心板的扩展板的时候常遇到问题,在这里转载了一片调试DM9000部分的心得与经历。大神的经验总是很重要的,本着资源共享共同学习的精神拿来一起拜读一翻。
DM9000AEP调试经历:操作系统Wince6.0 ,硬件平台S3C6410,网卡芯片DM9000AEP....... 调试DM9000AEP调试了近两个礼拜了,今天终于好了。郁闷死了。最开始调试的时候,把主要的经历放在了驱动程序上了。其实不是这样的。经过两个礼拜的调试,发现最重要的就是接收和发送端得那四个电阻了。先说说我的调试现象,然后在给出解决方法。 1.第一次调试的时候,板子上电之后,发现PC端得本地连接连接上了。高兴死了,以为好了。然后呢,在传输完成标志后面,添加了一句打印语句。运行驱动 后,发现语句都打印了。可是PC端用抓包工具,什么都没有抓到。气死了。当时的思考逻辑时,既然PC端得本地连接显示连接上了。那就说明硬件电路没问题 了。其实不是这样的。我估计是,因为发送和接收端的网络变压器的中间抽头,要接2.5V。我做了个实验,把四个线其中之一都不连接。PC端的本地连接就不 会显示连接上了。所有PC端得本地连接上了,只能说明,你线路通了,但是不一定能正确传输数据。这一点很重要。 2。就是关于网络变压器的中间抽头了。我做了很多实验,无论把网络变压器的发送和接收端的抽头怎么换,都只能让发送和接收端的抽头都接2.5V,只有这 样,PC端才能显示本地连接成功连上了。关于网络变压器和RJ45的连接方法。DM9000AEP手册中的方法,是正确的。有什么发现我很笨,数据手册上 的,一般都是经过证实的。我还怀疑什么啊。让自己走了很多冤枉路。很是郁闷。 3。发送和接收端的50欧姆电阻。这个电阻很重要。为什么呢?我当时接收端的电阻坏了,估计是我乱接电压,造成的。但是我不知道。自己在那里调啊调,一直 以为是寄存器配置出了问题。其实不是的。怎么判断到底电阻有什么问题么?如果想判断电阻是不是好的。你可以测量一下,我当时没有把电阻拆下来,就用万用表 量了量,四个线上的电阻都显示是25欧姆。还有一种办法就是,先让你的板子跑在10M的条件下,如果10M能跑通,说明你的网络变压器电路时没有一点问题 的。这呢,就会把问题都归结在晶振和发送和接收端的电阻线路上了。我当时就是因为发送端的电阻断了。10M条件下可以ping通,但是100M下都能通。 在驱动中加上打印信息。也显示接收到数据了。一定要注意,这点很重要,否则估计一辈子都调不出来。当时把我气得,我还以为是布线没有补好,用镊子到处乱 戳。结果发现如果碰到接收端电阻,PC端的本地连接就断了,然后就用万用表测了侧。发现时电阻断了。事后,我想,差分电路么,没有了下拉,数据差分电压就 不够,10M下可以,100M下就不行了 4.接收端电阻。但是换了发送端电阻后,ping通了,高兴死了。然后就一直ping.ping了1000多个包,一直老会丢3到4个。心里老是感觉不怎 么对。可以又说不上原因。今天下午才发现,是接收端电阻的事情。按照数据手册上的接法,我测量了一下,电阻值是50,而接收端是25.心里就一直不对。后 来,给传输状态加了打印信息,老打印提示硬件错误。心里想不会是接收端的电阻热的麻烦吧。结果换了。后来ping了2000多个包,没有一个丢包,心里踏 实许多。 从上面可以看出,对DM9000来说最重要的就是发送和接收端的电阻,和这些电阻的布线了。再者就是晶振的精确性了。其他的没有什么要求了。当然要感谢一下DM9000的技术支持了,这些技术支持真的不错。
转自:http://blog.csdn.net/nianhua44101/article/details/4285608
|