Board logo

标题: DM9000A调试问题 [打印本页]

作者: lllan12    时间: 2007-6-11 10:17     标题: DM9000A调试问题

我目前在调试DM9000A,但是初始化过程老是失败,参见厂家资料,也没有发现啥问题。谁能帮我看看代码,谢谢了。

/****************************************************************************
* 函数名称 void  EEPROM_Initial(void)
* 函数功能 用于初始化eeprom,配置相关参数。
* 入口参数 无
*      
* 出口参数 无
* 说    明 
****************************************************************************/
void EEPROM_Initial( void )
{
 uint8 i;
 uint16 *u16pTemp;
 /* write mac_address */
 u16pTemp = (uint16 *)MAC_Address;
 for(i=0; i < 3; i++)
 {
  EEPROM_Write(i, *(u16pTemp++));
 }
 /* write auto load control*/
 EEPROM_Write(0x03, 0x5455);
 /* write Vendor ID */
 EEPROM_Write(0x04, 0x0a46);
 /* write Product ID */
 EEPROM_Write(0x05, 0x9000);
 /* write  Pin Control */
 EEPROM_Write(0x06, 0x01e7);
 /* write  wake_up mode control */
 EEPROM_Write(0x07, 0x0180);
}
/****************************************************************************
* 函数名称 uint32  Ethernet_Controller__Initial(void)
* 函数功能 用于初始化enthernet_controller,配置相关参数。
* 入口参数 无
*      
* 出口参数 uint32 返回初始化结果,如果返回的数据非0,则初始化失败,返回值为出错信息
* 说    明 
****************************************************************************/
uint32  Ethernet_Controller__Initial()
{
 uint16  i;
 uint8 u8Offset;
 uint16  *u16pMAC_Address;
 /* power on reset */
 LINK_RST_SET0();
 delayNus (50000);     /* 等待50ms,PHY 上电完成  */
 LINK_RST_SET1();
  
  
// /*step 2:*/
    /*access EEPROM*/
 u16pMAC_Address =  (uint16*)&MAC_Address;
 for(i = 0; i < 3; i++)
 {
  if(*(u16pMAC_Address++) != EEPROM_Read(i)) /*eeprom loaded data?*/
  {
   EEPROM_Initial();
   break;
  }
 }
 /* reload EEPROM*/
 iow(DM9KS_EPCR, 0x40);
 /* wait for reload EEPROM complete */
 while ( i < 200 )
 {
  if(ior ( DM9KS_EPCR ) & 1)
    break;
   delayNus ( 10 );
   i++;
 } 


  /*step 3:
 rogram the NCR register to choose normal mode by setting NCR (REG. 00) LBK Bit [2:1] = "00"b. */
 iow ( 0x00 , 0x00 );//0, 0;
 /*step 4:*/
 
 /* disable interrupts and enable the Pointer Auto Return function*/
 iow ( 0xFF, 0x80 );  //0x00, 0x80

 /*设置PHY 寄存器内容*/
 /*step 1:GPR REG. 1FH PHYPD Bit[0] = 0 to 激活内部phy*/
   iow ( 0x1F, 0x00 );   /* 0x58, 0x58*/
   delayNus (5000);     /* 等待2ms,PHY 上电完成  */
   /* PHY 软件方式复位: PHY寄存器取缺省值, 0x3100*/
 HY_Write ( 0, 0x8000 ); /* 0x000d, 0x3100*/
 delayNus (3000);
 
 /*设置流控参数,
 10(FCS=1)支持流控;
 08(TX-FDX=1)支持100base-tx 全双工;
 07(TX-HDX=1)支持半双工;
 06(10-FDX=1)支持10base-t 全双工;
 05(10-HDX=1)支持10base-t 半双工;
 04~01(selector=00001)支持IEE802.3 CSMA/CD  0x0000 0101 1110 0001*/
 HY_Write ( 4, 0x01E1 | 0x0400 ); /*0x0d, 0x05e1*/
 /*12(auto-negotiation enable=1)自适应机制使能;09(Restart Auto-negotiation=1)重新初始化自动开始,
 当自适应 被禁止后(bit12=0),这位将没有用处,应该被清零,在自动初始化没有完成前这位保持1,
 完成后自动清零;自适应 操作过程中,将该位清零,对该过程没有影响。0001 0010 0000 0000*/
 /* PHY Auto-negotiation: Auto sense and recovery registers */
 HY_Write ( 0, 0x1200 );  /*0x000d, 0x1000*/
 delayNus (2000);  /* wait >2 ms for PHY Auto-sense linking to partner */ 
 /*only read status*/
 HY_Read(0x01);  /*get PHY 01H register status = 0x7849*/
 HY_Read(0x05); /*get DA9000A 05H register status = 0x0000*/
 ior(0x01); 
 
 ///* 配置多波通信的hash表 */
 dm9000_hash_table ();
 /* enable chip functions and disable loopback back to normal*/
 iow ( 0x00, 0x00 ); /*0, 0*/ 
 /* Bit[0]=1 enable RX; BIT4=1 discard crc error packet; bit5=1 discard long(1522byte) packet */
 iow ( 0x05, 0x30 | 1); /*0, 0x31*/
 /*clear stutus tag*/
 /*clear NSR status tag*/
 watch_value = ior(0x01);       
 /*clear stutus tag*/
 watch_value = ior(0x07);        /*clear ROCR status*/
 /*set RX and TX  flow  control  function */
 /* BPTR REG.08
 7~4(BPHW=3) 接受数据的空余空间下限值为 3KB,
 3~1(JPT =f)处于拥挤模式600us */
 iow ( 0x08, 0x3F );/*37, 3f*/
 /* FCTR REG.09
 7~4(HWOT = 5)  接受数据的空余空间下限值为5KB;
 3~1(LWOT = 10)  接受数据的空余空间上限值为10KB;*/
 iow ( 0x09, 0x5A ); /*38,5a*/
 /* FCR REG.0AH
 5(TXPEN = 1) 强制 TX 暂停包使能;
 3(BKPM = 1)  回压模式
 0(FLCE = 1)  流控使能;*/
 iow ( 0x0A, 0x29 );  /*00, 29*/
 /*TCR2(2DH), LED(7)=1 the led pins act as led mode 1;
 RLCP(6)=1 retry tanssmit the packet with late-collision; *//********I ADD********/
 iow (0x2d,  0x40 );/*00, 0x40*/
 delayNus(2000);
 ior(0x01);
 /* clear any pending interrupt */
  /* clear NSR 3bits status: TX1END, TX2END, WAKEST by RW/C1 */
// iow ( 0x01, 0x2c );  /*80, 80,   c0, c0*/
 /* clear ISR status: PR,PT, ROS,ROO, UDRUN, LNKCHG by RW/C1 */
 iow ( 0xFE, 0x3f );   /*20, 00*/
 /* enable interrupts and enable the Pointer Auto Return function*/
 /* IMR REG. FFH enable PAR+ PTI+PRI+ROI+ROOI+UDRUNI+LNKCHGI */
 iow ( 0xFF, 0xbf );  /*80, bf*/
 /* initialize the driver variables or the user passed arguments */
 IO_mode = ior ( 0xFE )>>7;
 /* ISR Bit [7] IOMODE indicating DATA I/O mode */

 LINK = ( ior ( 0X01 )& 0x40 ) ? TRUE: FALSE; /* if NSR Bit [6] = 1: LINK ok, else failed*/
 SPEED = ( ior ( 0X01 ) & 0x80 ) ? 10: 100;  /* if NSR Bit [7] = 0: SPEED = 100Mbps */
 DUPLEX = ( ior ( 0x00 ) & 8 ) ? FULL: HALF;  /* if NCR Bit [3] = 1: Full Duplex mode */
 return (0);      /* RETURN "NU_SUCCESS" */  /* end DM9000A_init I/O routine */
}


作者: kzw    时间: 2007-6-11 23:40

用的是什么开发板?
作者: lllan12    时间: 2007-6-12 09:06

参照厂家资料,自己设计的。


作者: lllan12    时间: 2007-6-12 14:31

版主:

   你有调通的初始化代码吗?我看看如何配置寄存器才能把DM9000A初始化成功,将灯点亮。


作者: kzw    时间: 2007-6-12 22:38

参考de2的dm9000a的驱动代码,没有问题,可以运行通过。如果你下不到,我给你发一份。
作者: lllan12    时间: 2007-6-12 22:58

我在网上没有搜倒,那就麻烦斑竹了, 我的邮箱是lllan12@yahoo.com.cn


作者: zhxlx    时间: 2007-6-19 21:22

我也在调9000A驱动,使用的AVR的m64,给我也发一分吧,邮箱swing2005@sohu.com

谢谢!


作者: kzw    时间: 2007-6-20 00:03

已发,楼上两位查收。
作者: kzw    时间: 2007-6-21 00:29

楼上查收。
作者: lllan12    时间: 2007-6-26 11:33

谢谢楼主的帮助,谢谢大家的帮助,DM9000A已搞定。目前通信没有问题,但是还是调试阶段,有几个现象还不太明白(虽然不妨碍通信),原来的问题是硬件的问题。


作者: geng0202    时间: 2007-6-28 21:39

我也在看这个,楼上的几位好友如果有时间也给我发一份吧,谢谢

我的email:  geng0202@tom.com


作者: kzw    时间: 2007-6-29 11:24

你有什么问题呢??
作者: rosyboy    时间: 2007-7-1 23:45

kzw版主如果有时间也请给我发一份。多谢。

onebyte@126.com


作者: airtd    时间: 2007-7-2 13:28

斑竹也给我一个吧..

airtd1@yahoo.com.cn


作者: hj119lyh    时间: 2007-7-16 21:46

斑竹能给我也发一份代码吗?我的E-MAIL是hydjyd@263.net ,谢谢
作者: yuxyoo    时间: 2007-7-21 15:16

我也想要一个啊,谢谢啦yuxyoo@yahoo.com.cn


作者: zlj2903    时间: 2007-12-6 09:36

给我发一份吧!

sharpsword001@yahoo.com.cn

谢谢!


作者: zlj2903    时间: 2007-12-6 09:39

那个EEPROM是不是一定要要啊?
作者: colucky    时间: 2008-3-9 21:11

大家好:

我用的是华恒的audio-2410板子,前一段时间我移植u-boot-1.1.4\u-boot-1.1.5\u-boot-1.1.5\u-boot-1.2.0到这块板子上,都是DM9000A的网卡驱动失败,当时在华恒的论坛上发了贴,但也基本上没得到什么具体的解决办法的回复,于是就暂时把它放了下来,最近我想把linux-2.6的内核移植上去,我移植过2.6.17\2.6.23,也都是同样一个问题,网卡驱动不起来,u-boot移植时的现象如下:
swfc-hjp-2410# tftp 0x30008000 zImage
dm9000 i/o: 0x8000300, id: 0x90000a46
MAC: 02:19:80:01:04:20
could not establish link
TFTP from server 192.168.1.88; our IP address is 192.168.1.99
Filename 'zImage'.
Load address: 0x30008000
Loading: T T T T #T #T T T T T
Retry count exceeded; starting again

DM9000A困扰了我好久,非常感谢哪位能给我一些帮助,万分感谢!

我的QQ: 9854420
email: hjp621@21cn.com
电话: 13888218535 (小贺)


作者: ldb911    时间: 2008-9-11 10:09

请加我QQ280632587,,想问些DM9000a问题,谢了


作者: chengyou    时间: 2008-9-11 23:50

最近也在调这个,能发给我一份吗?

43648096@qq.com

非常感谢


作者: chengyou    时间: 2008-9-11 23:53

恩,楼主调通了吗?

我用的是2C20的开发板,调开发板带的网络服务器的例程,不过只能ping通,但是登陆不了,请问楼主以及各位高手有没有遇见过类似的问题啊?


作者: quray    时间: 2008-12-1 11:43

版主也给我发一份吧,zhz13456@163.com。

我的是在7.2下,并且移植到cyclone iii上,可是id总是出错,不知道为什么?


作者: axw12580    时间: 2009-2-7 18:14

我公司主营DAVICOM IC网络芯片,目前客户分布中国大江南北,其中我们海尔,海信,康佳,海康,UT斯达康,新大陆,神舟等国内知名电子服务,优质的货源,低廉的价格已获得客户充分肯定。

08年我们全新推出工业规格网络芯片:DM9000BIEP/DM9161BIEP已在国家铁路,安防,工控产品等相关项目中大量使用,产品已得到客户的充分肯定。

如有想开发或正在开发某种项目需使用到网络芯片的客户请联系我,我将免费为大家提供完善的方案和相关技术资料,以下是我公司简介:

深圳爱欣文科技有限公司成立于1989,长期专业从事国际最新集成电路(IC)代理批发销售业务,及其应用技术研发的一条龙业务,是集研发、商贸于体的全球化IC代理公司.公司接受荣誉授权,全面代理台湾DAVICOM联杰国际﹑MAGCOM磁威,GIGASTORAGE国硕、TMC晶扬等国际知名品牌的微型计算机系统和网络系统及机车控制系统等集成电路(IC)及其相关的全线产品。

我们DAVICOM的产品线:

Davicom高速以太网路晶片

110/100/1000M 超高速以太网络芯片

DM9702 - 超高速以太网络三合一单芯片. (Coming Soon)

210/100M 高速以太网络芯片

  DM9000ADM9000AE/DM9000AEP) - DM9000A Ethernet Controller With

DM9000DEP-A/DM9000CEP- DM9000A完全兼容产品,价格更实惠,性能稳定

  DM9000E - (SMSC LAN91C111 Equivalent)ISA接口高速以太网络三合一单芯片( MII / RMII 接口).

  DM9000K - 研发套件

  DM9601 - USB接口高速以太网络三合一单芯片.

DM9102D - PCI 接口高速以太网络三合一单芯片(Auto-MDIX). 0.25um

DM9102A - PCI 接口高速以太网络三合一单芯片. 0.35um

310/100M 高速以太网络实体层收发器

  DM9161 - 低功率, 高速以太网络实体层收发器. 48-pin 0.35um.

  DM9161A - 低功率, 高速以太网络实体层收发器. Auto-MDIX. 48-pin 0.25um.

  DM9331 - 100M高速以太网络光纤实体层媒体转换器. 48-pin.

DM9301 - 100M高速以太网络光纤实体层媒体转换器.

DM8203 - 高效以太网络芯片

410M 以太网络芯片 

  DM9008 - ISA接口以太网络三合一单芯片(性价比优于RTL8019ASCS8900A

  DM9009 - 最经济, 最有效率PCI 接口以太网络三合一单芯片 (MII/RMII/7-wired GPSI接口).

  DM9081 - 最经济, 最有效率以太网络 (8+2) 集线器芯片.

5. DAVICOM(台湾联杰国际/www.davicom.com.tw )MODEM芯片:DM562P/DM562AP,该款IC由两个芯片组成DM6588DM6580 ,同异步兼容,內置驱动器,支持FSKDTMF来电显示,同时,也支持56K V.90 DATA/14.4-33.6K 彩色FAX/Voice/Speaker Phone For Embedded System.

此外我公司代理的网络变压器有:MAGCOM(台湾磁威)HS9016/HS9001YCL(台湾卓智)PH163

技术支持:

作为国内代理,我公司可提供网络部分完善的解决方案和技术支持! 对于我们的客户我们可以提供网络部分整套的产品生产方案,在产品生产过程中如果贵公司遇到技术上的问题我们可以免费为贵公司提供:

1.提供完整的开发资料及强大的技术支援,成熟可靠的产品方案.

2.芯片的数据手册,原理图,驱动.

3.Layoeut(布板指南).

4.编程指南.可以提供各种产品方案,由原厂工程师解决各种技术问题。

我们产品应用领域:

我们产品应用领域:。它是以嵌入式系统为核心,广泛应用于数据(数据采集﹑数据传输等)﹑影像(视频﹑机顶盒等)﹑音讯(网络音频,播放器﹑可视电话等)﹑网络网路(收发器﹑MODEMUSB网卡等器件)﹑通讯﹑安防(门禁机﹑考勤机﹑)监控(监控系统、监控设备等)﹑多功能事务机板(税控机﹑工控机﹑终端机等)﹑交通运输车辆(汽车电子控制系统,汽车点火系统等)﹑无刷马达控制系统(无刷直流电机控制、电动工具等)、加密系统(如加密芯片用于系统加密等)、存储系统(显示卡、内存、存储卡)、数码(闪存卡、读卡器、网络摄像机等)、多媒体传输周边,IPTVDVB-C-IPVODIP-CameraIP-VIDEOPHONEIP-Phone、光纤收发器,门禁,网络打印机,POS机,一卡通,读卡器,传真机,工控主板,通讯产品,PNP,PDA等领域等等。应用范围几乎遍及各个领域,是国民经济必不可少的新型集成电路(IC)产品。

如需开发资料的请与我联系,谢谢!


深圳爱欣文科技有限公司武汉办事处

电话:027-87161936 02787880506
传真:027-87653172

武汉办事处地址:武汉市武昌桂元路5号装备大楼312-314
联系人 :程俊刚 (0)13277905433

SKYPEaxw12580

在线QQ961219157
MSN: chengjungang850907@hotmail.com
EMAIL: belief_cheng@axwdrgon.com
axw12580@163.com
********************************************************


作者: zengya    时间: 2009-3-2 16:13

我也在调9000A驱动, 给我也发一分吧,邮箱zengya1983@sina.com

谢谢!


作者: 腾时代    时间: 2009-3-10 15:14

我目前也在搞DM9000a的用三星的2440做cpu。 希望大家帮助。  QQ82446264.  chinapower2000@nari-china.com
作者: boy2009    时间: 2009-6-30 16:19


我公司专业生产网络变压器的厂家,如有需求样品,请与我公司联系!
0574-63620701
victor721@163.com,nico721@21cn.com
www.yutai-elec.com

RTL8019AS,RTL8201,RTL8204,RTL8208,RTL8029AS,RTL8139,DM9000,DM9161,

DM9008,AC101,HC101,LXT951,LXT957,BCM8201,BCM204,TP113,TC3097-8,TC3299A,

IP100A,IP101,IP101A,IP108,IP113A,IP113S,IP113M,IP175A,IP175C,IP178C

IP1718,IP1726,IP1000A,IP1001

DM902,DM9010,D9000E,DM9601.DM9102D,D9102A,D9331,DM9301,DM9009,

DM9081,DM9801以上网络IC我公司均有所对应的网络变压器,欢迎选够!

具体的型号有10M:YL18-1001D,YL18-1080S,YL18-1064S,YL18-1073S,YL18-1005D等等
10M/100M:YL18-2001S,YL18-2001D,YL18-2401S,YL18-2050S,YL18-2201D,YL18-2051S等等
10M/100M/1000M:YL18-3001S,YL18-3002S等等
电信元器件:E1/T1:YL26266,YL26-1061S,YL26-1065S,YL26-2413S等等
RF,1394:YL26-6080S,YL37-1106S,YL37-1108等等


作者: zhouchy    时间: 2009-7-10 09:54

能否麻烦斑竹也给我发一份,万分感谢。zhou.chengying@126.com


作者: volume_volume    时间: 2009-7-24 12:51

我在调试DM9000A的时候,读写寄存器都对,可是网络包却发不出去,开发板和PC机互相都ping不通,请问各位大侠有何高招,请支援,下面是调试时打出来的寄存器值,请问是设置不对还是硬件原理有问题

NCR = 08 NSR = 40 (40) TCR = 00 RCR = 39

RSR = 00 ROCR = 00 BPTR = 3F FCTR = 3A

RTFCR = 39 GPCR = 71 (01) GPR = 0E(00) WUCR = 00

TRPAL = 00 TRPAH = 00 RWPAL = 00 RWPAH = 0C

VIDL = 46 VIDH = 0A PIDL = 00 PIDH = 90

CHIPR = 18 (01) SMCR = 00 TXPLL = 00 TXPLH = 00

ISR = 20 (00) IMR = 81

MAC =00 12 34 56 80 49

PHY registers:

BMCR = 3100 BMSR = 7869(7829) PHYID1 = 0181 PHYID2 = B8A0(b8c0)

ANAR = 01E1 ANLPAR = CDE1(45e1) ANER = 0009(0003)

DSCR = 0414(0000) DSCSR = 8218 BTCSR = 7800(0000)


作者: 业虔旎    时间: 2009-9-3 16:13     标题: 顶顶更健康

俗话说顶一下,就可以赚1个论坛积分。


顺带贴个小笑话:

大便跟小便是好兄弟,有一天大便过马路被车撞死了,小便就说:我好想大便啊…






冒险岛外挂 游戏论坛 信阳 永恒之塔




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0