我目前在调试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 */
}
参照厂家资料,自己设计的。
版主:
你有调通的初始化代码吗?我看看如何配置寄存器才能把DM9000A初始化成功,将灯点亮。
我在网上没有搜倒,那就麻烦斑竹了, 我的邮箱是lllan12@yahoo.com.cn
我也在调9000A驱动,使用的AVR的m64,给我也发一分吧,邮箱swing2005@sohu.com
谢谢!
谢谢楼主的帮助,谢谢大家的帮助,DM9000A已搞定。目前通信没有问题,但是还是调试阶段,有几个现象还不太明白(虽然不妨碍通信),原来的问题是硬件的问题。
我也在看这个,楼上的几位好友如果有时间也给我发一份吧,谢谢
我的email: geng0202@tom.com
kzw版主如果有时间也请给我发一份。多谢。
onebyte@126.com
斑竹也给我一个吧..
airtd1@yahoo.com.cn
我也想要一个啊,谢谢啦yuxyoo@yahoo.com.cn
给我发一份吧!
sharpsword001@yahoo.com.cn
谢谢!
大家好:
我用的是华恒的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 (小贺)
请加我QQ280632587,,想问些DM9000a问题,谢了
最近也在调这个,能发给我一份吗?
43648096@qq.com
非常感谢
恩,楼主调通了吗?
我用的是2C20的开发板,调开发板带的网络服务器的例程,不过只能ping通,但是登陆不了,请问楼主以及各位高手有没有遇见过类似的问题啊?
版主也给我发一份吧,zhz13456@163.com。
我的是在7.2下,并且移植到cyclone iii上,可是id总是出错,不知道为什么?
08年我们全新推出工业规格网络芯片:DM9000BIEP/DM9161BIEP已在国家铁路,安防,工控产品等相关项目中大量使用,产品已得到客户的充分肯定。
如有想开发或正在开发某种项目需使用到网络芯片的客户请联系我,我将免费为大家提供完善的方案和相关技术资料,以下是我公司简介:
深圳爱欣文科技有限公司成立于1989年,长期专业从事国际最新集成电路(IC)代理批发销售业务,及其应用技术研发的一条龙业务,是集研发、商贸于体的全球化IC代理公司.公司接受荣誉授权,全面代理台湾DAVICOM联杰国际﹑MAGCOM磁威,GIGASTORAGE国硕、TMC晶扬等国际知名品牌的微型计算机系统和网络系统及机车控制系统等集成电路(IC)及其相关的全线产品。
我们DAVICOM的产品线:
Davicom高速以太网路晶片
1、10/100/1000M 超高速以太网络芯片
DM9702 - 超高速以太网络三合一单芯片. (Coming Soon)
2、10/100M 高速以太网络芯片
DM9000A(DM9000AE/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
3、10/100M 高速以太网络实体层收发器
DM9161 - 低功率, 高速以太网络实体层收发器. 48-pin 0.35um.
DM9161A - 低功率, 高速以太网络实体层收发器. Auto-MDIX. 48-pin 0.25um.
DM9331 - 100M高速以太网络光纤实体层媒体转换器. 48-pin.
DM9301 - 100M高速以太网络光纤实体层媒体转换器.
DM8203 - 高效以太网络芯片
4、10M 以太网络芯片
DM9008 - ISA接口以太网络三合一单芯片(性价比优于RTL8019AS,CS8900A )
DM9009 - 最经济, 最有效率PCI 接口以太网络三合一单芯片 (含MII/RMII/7-wired GPSI接口).
DM9081 - 最经济, 最有效率以太网络 (8+2) 集线器芯片.
5. DAVICOM(台湾联杰国际/www.davicom.com.tw )的MODEM芯片:DM562P/DM562AP,该款IC由两个芯片组成DM6588和DM6580 ,同异步兼容,內置驱动器,支持FSK和DTMF来电显示,同时,也支持56K V.90 DATA/14.4-33.6K 彩色FAX/Voice/Speaker Phone For Embedded System.
此外我公司代理的网络变压器有:MAGCOM(台湾磁威)HS9016/HS9001;YCL(台湾卓智)PH163
技术支持:
作为国内代理,我公司可提供网络部分完善的解决方案和技术支持! 对于我们的客户我们可以提供网络部分整套的产品生产方案,在产品生产过程中如果贵公司遇到技术上的问题我们可以免费为贵公司提供:
1.提供完整的开发资料及强大的技术支援,成熟可靠的产品方案.
2.芯片的数据手册,原理图,驱动.
3.Layoeut(布板指南).
4.编程指南.可以提供各种产品方案,由原厂工程师解决各种技术问题。
我们产品应用领域:
我们产品应用领域:。它是以嵌入式系统为核心,广泛应用于数据(数据采集﹑数据传输等)﹑影像(视频﹑机顶盒等)﹑音讯(网络音频,播放器﹑可视电话等)﹑网络网路(收发器﹑MODEM﹑USB网卡等器件)﹑通讯﹑安防(门禁机﹑考勤机﹑)监控(监控系统、监控设备等)﹑多功能事务机板(税控机﹑工控机﹑终端机等)﹑交通运输车辆(汽车电子控制系统,汽车点火系统等)﹑无刷马达控制系统(无刷直流电机控制、电动工具等)、加密系统(如加密芯片用于系统加密等)、存储系统(显示卡、内存、存储卡)、数码(闪存卡、读卡器、网络摄像机等)、多媒体传输周边,IPTV、DVB-C-IP、VOD、IP-Camera、IP-VIDEOPHONE,IP-Phone、光纤收发器,门禁,网络打印机,POS机,一卡通,读卡器,传真机,工控主板,通讯产品,PNP,PDA等领域等等。应用范围几乎遍及各个领域,是国民经济必不可少的新型集成电路(IC)产品。
如需开发资料的请与我联系,谢谢!
深圳爱欣文科技有限公司武汉办事处
电话:027-87161936
02787880506
传真:027-87653172
武汉办事处地址:武汉市武昌桂元路5号装备大楼312-314室
联系人
:程俊刚 (0)13277905433
SKYPE:axw12580
在线QQ:961219157
MSN: chengjungang850907@hotmail.com
EMAIL:
belief_cheng@axwdrgon.com;axw12580@163.com
********************************************************
我也在调9000A驱动, 给我也发一分吧,邮箱zengya1983@sina.com
谢谢!
我公司专业生产网络变压器的厂家,如有需求样品,请与我公司联系!
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等等
能否麻烦斑竹也给我发一份,万分感谢。zhou.chengying@126.com
NCR = 08
NSR = 40
(40)
TCR = 00
RCR = 39
RSR = 00
ROCR = 00
BPTR =
RTFCR = 39
GPCR = 71 (01)
GPR
= 0E(00)
WUCR = 00
TRPAL = 00
TRPAH = 00
RWPAL = 00
RWPAH =
VIDL = 46
VIDH =
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 = B
ANAR = 01E1
ANLPAR = CDE1(45e1)
ANER = 0009(0003)
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |