3285|8

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

W77E58+RTL8019,移植ZLIP协议栈,不能对RTL8019操作 [复制链接]

板子上有W77E58、RTL8019以太网芯片和两个32K RAM,移植了ZLIP协议栈,将RTL8019基地址做了修改。运行代码后对RAM的操作一切正常,但对RTL8019操作时出了问题。在对芯片初始化时,可以完成芯片的上电复位,但不能进行读写操作!请高手指点!

最新回复

谢谢!  详情 回复 发表于 2007-6-25 08:34
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
P35 = 1;
delay(1000);
P35 = 0;
delay(1000);

// RTL8019AS热复位
uchar i,tmp;
tmp = REG1f;                // 读RTL8019AS的复位端口
REG1f = tmp;                // 写RTL8019AS的复位端口
for(i=0;i<250;i++);         // 适当延时

// 清除ISR寄存器
SelectPage(0);
REG07 = REG07|0xff;

//初始化RTL8019
REG00 = 0x21;        // 选择页0的寄存器,网卡停止运行,因为还没有初始化
REG01 = 0x4c;        // 寄存器PSTART,设置接收缓冲区的起始页的地址
REG02 = 0x80;        // 寄存器PSTOP,设置接收缓冲区的结束页的地址
REG03 = 0x4c;         // 寄存器BNRY,设置为指向第一个接收缓冲区的页0x4c(用作读指针)
REG04 = 0x40;         // 寄存器TPSR,发送起始页地址初始化为指向第一个发送缓冲区的页
REG0c = 0xcc;         /* 接收配置寄存器RCR,设置为仅接收自己地址的数据包以及广播地址
                和多点播送地址数据包,小于64字节的包丢弃,校验错的数据包不接收 */
REG0d = 0xe0;         // 发送配置寄存器TCR,设置为启用crc自动生成和校验,正常模式工作
REG0e = 0xc8;         /* 数据配置寄存器DCR,设置为使用FIFO缓存,普通模式,8位数据传输,
                字节顺序为高位字节在前,低位字节在后 */
REG0f = 0x00;         // 中断屏蔽寄存器IMR,设置为屏蔽所有中断
SelectPage(1);         // 选择页1的寄存器
REG07=0x4d;         // 寄存器CURR,设置为指向当前正在写的页的下一页(用作写指针)

/* 多址地址寄存器MAR0-MAR7均设置为0x00 */
REG08 = 0x00;         // MAR0
REG09 = 0x00;         // MAR1
REG0a = 0x00;         // MAR2
REG0b = 0x80;         // MAR3
REG0c = 0x00;         // MAR4
REG0d = 0x00;         // MAR5
REG0e = 0x00;         // MAR6
REG0f = 0x00;         // MAR7

GetPhyAdd();        // 获取以太网物理地址

REG00 = 0x22;         // 选择页0寄存器,执行命令。
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
其中P35表示P3^5,连接RTL8019的RSTDRV,用于上电复位
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

4
 
上面的代码都能调试通过,就是不能实现写操作,就是说刚写进去的内容还读出来的数据不一样,每个寄存器都是这样,很奇怪!地址是没问题的。请高手指点!
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
8019的寄存器本来就是读和写不同的。

写是一种功能,读是另一种功能。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
请楼上地兄弟指点,
例如:tmp = REG1f;// 读RTL8019AS的复位端口
REG1f = tmp;// 写RTL8019AS的复位端口
其中,REG1f对应的是8019寄存器地址XBYTE[0x831f],但是执行后根本没反映。刚写进去的内容和立刻读出来的数据不一样
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
唉,看它的Datasheet吧,我也记不清了。

它只有少数寄存器在读和写的时候是相同的内容,多数是不同的。

我手上只有一个"specification", 没有说它的REG1F究竟是不可读, 但据经验, 它该是"只写"的。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
读它是没有意义的,用其它手段来看你的操作是否有了期望的结果。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表