专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 硬件开发

DM9000AEP 在U-BOOT中能分辨ID但PING不通主机

发布时间:2010-06-13 21:23:51 文章来源:www.iduyao.cn 采编人员:星星草
DM9000AEP 在U-BOOT中能识别ID但PING不通主机
我参照utu2440开发板做的板子,网络部分是DM9000AEP+HS9016网络变压器+RJ45 LED插座,在U-BOOT中能识别DM9000AEP的ID,RJ45插座的灯也闪,但PING不通主机,用抓包工具可以抓到DM9000AEP发出到主机的ARP包,但DM9000AEP收不到主机返回的应答包,所以PING不通,也不能TFTP,我跟踪进U-BOOT源码,driver/net/dm9000x.c中的eth_rx函数中:
/* Check packet ready or not, we must check
    the ISR status first for DM9000A */
 if (!(DM9000_ior(DM9000_ISR) & 0x01)) /* Rx-ISR bit must be set. */
  return 0; 
加了打印后发现eth_rx每次都是在这里返回,ISR(接收中断寄存器)始终置不了位,路过的帮忙指点下
------解决方案--------------------
1. 电源的处理:
  芯片的23,30,42管脚为3.3V供电端,每一个管脚尽可能的要加两个退耦电容(10uF电容和0.1uF的电容),而且要靠近电源焊盘。

2.差分线对的处理:
  这是最重要的一个地方,芯片出来的RX+/TX+,RX-/TX-为差分线对(千万别走成RX+/RX-和TX+/TX-,否则你就哭去吧),应该优先布差分线,保持平行,等长,紧靠,避免交叉。避免差分线周围走其他信号线,而且差分线要包地,包地的周围隔一段距离就要打地孔。这两组差分线布线的好坏,严重的影响网卡的工作。

3.信号线的处理:
  16位数据线尽量保持等长走线,数据线要和其他信号线(如电源线)之间用地隔离,防止干扰

4. 终端电阻:
  也就是连接在收发线上的50欧电阻,要尽量靠近芯片的RX/TX脚

5.模拟地的处理:
  网络变压器的AGND(第8脚)通过一个0.1uF的电容和GND相连
  网络变压器中心抽头,AVDD和AGND之间放一个0.1uF的退耦电容,电容尽量靠近中心抽头

6. BandGap电阻
  连接在芯片第1脚的6.8k电阻,要使用1%精度的,尽量靠近芯片管脚,在此附近不要走其他高速信号线

7.网络变压器和RJ45端子
  网络变压器尽量靠近RJ45端子,我使用的集成网络变压器的RJ45端子。在网络变压器和RJ45端子下面,网络接口布线区域中避免走其他信号线

8. 铺铜处理:
  这也是一个重点,通常网络变压器和RJ45端子网络接口布线区域范围内,不允许铺任何地平面或电源平面,板的正面背面都如此,要用keepout将这段区域保护起来

基本上遵守上面这几点布线,就可以使网卡稳定工作了
--------------
我是看了这篇后,基本按照以上提示布线的,原来我的16数据线离核心板比较远,后来我放近,尽量长度差得不是很大。差分线对应该要保证一下,如果到网口线很短,大概不做到也行,我也不是很有经验。

我顺便请教一下,你“设置dm9000为10M模式”是怎么设置的?如果有空麻烦告知一下。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: