No.4808 作者:Soloman 邮件:wanglei.sd@hotmail.com ID:79395 登陆:10次 文章数:3篇 最后登陆IP:218.94.94.252 最后登陆:2007/9/14 16:41:04 注册:2007/5/26 13:36:40 财富:116 发帖时间:2007/7/10 18:34:44 发贴者IP:218.94.94.252 标题:Soloman:W77E58+RTL8019,不能对RTL8019的IMR和PAR0~PAR5不能操作 摘要:No.4808W77E58+RTL8019,不能对RTL8019的IMR和PAR0~PAR5不能操作 对RTL8019初始化时,代码如下: unsigned char xdata chRTLInitTmp; unsigned int i; //在RSTDRV从高电平回到低电平之后的100MS时,在对RTL8019做读写操作,以确保完全复位 P35 = 1; for(i = 0;i < 400;i++); P35 = 0; for(i = 0;i < 4000;i++); /* reset: write to reset prot */ WriteReg(0x18,0xaa); chRTLInitTmp = ReadReg(0x18); for(i = 0;i < 20;i++); /* init RTL registers*/ WriteReg(0x00,0x21); chRTLInitTmp = 0x00; chRTLInitTmp = ReadReg(0x00); RTLPage(0); WriteReg(0x0a,0x00); //清RBCR0 WriteReg(0x0b,0x00); //清RBCR1 WriteReg(0x0c,0xe0); //RCR,监视模式,不接收数据报 WriteReg(0x0d,0xe2); //TCR,loopback模式 WriteReg(0x01, 0x4c); /* Pstart */ WriteReg(0x02, 0x80); /* Pstop */ WriteReg(0x03, 0x4c); /* BNRY */ WriteReg(0x04, 0x40); /* TPSR */ WriteReg(0x07,0xFF); /* ISR: Interrupt Status Register,write FF to clear up all interrupt status */ //WriteReg(0x0f,0x00); /* IMR: Interrupt Mask Register,屏蔽掉所有中断 */ WriteReg(0x0e,0xC8); /* DCR: Data Configuration Register*/ WriteReg(0x0c,0xCE); /* RCR*/ WriteReg(0x0d,0xE0); /* TCR*/ //To debug chRTLInitTmp = ReadReg(0x07); chRTLInitTmp = ReadReg(0x0f); RTLPage(1); WriteReg(0x07,0x4d); //CURR,设置为指向当前正在写的页的下一页 /* MAR0 */ WriteReg(0x08,0x00); WriteReg(0x09,0x41); WriteReg(0x0a,0x00); WriteReg(0x0b,0x80); WriteReg(0x0c,0x00); WriteReg(0x0d,0x00); WriteReg(0x0e,0x00); //WriteReg(0x0f,0x00); /* set phisical address */ RTLPage(1); WriteReg(1,0x00); WriteReg(2,0xe0); WriteReg(3,0x19); WriteReg(4,0x21); WriteReg(5,0 ......
>>返回讨论的主题
|