新闻中心

EEPW首页>嵌入式系统>设计应用> 基于DM9000A的网络接口设计

基于DM9000A的网络接口设计

作者: 时间:2012-07-17 来源:网络 收藏

2芯片操作
的读/写操作与一般的异步存储器相同,图2和图3分别显示了的读/写时序。

本文引用地址://m.amcfsurvey.com/article/148754.htm

d.JPG


根据芯片资料,编写读/写寄存器的子函数。
寄存器的读操作程序:
e.JPG
f.JPG

3 软件
3.1 DM9000A初始化
对DM9000A芯片的初始化,就是向相应的寄存器写入期望的值,为芯片的稳定工作做好准备。主要需要进行以下设置以便让芯片处于工作状态:
(1)开启DM9000A工作状态:芯片GEPIO0的默认值为1,芯片处于Powerdown状态,所以首先需要将这一位设置为0,来打开芯片。设置方法是将寄存器GPCR的bit[0]设置为1,将寄存器GPR的bit[0]设置为0。
(2)进行2次复位操作:根据芯片的特点,要使芯片达到正常工作状态,需要对其进行2次软启动操作,方法是向NCR寄存器写入3,延迟至少10μs后,写入0,重复这个操作一次。
(3)设置MAC地址:初始化时要初始化PAR(10h~15h)寄存器,PAR中保存的是芯片物理地址(MAC地址),芯片根据数据与PAR中的数据比较来确定接收到的数据是否是发给自己的。
(4)收、发控制寄存器设置:要清除发送状态寄存器,打开收/发中断使能。
初始化完成后可以通过读NCR寄存器来判断芯片是否已经正确的完成初始化,并处于工作状态,如果未初始化成功,可以重复以上操作。
3.2 数据发送
在数据发送之前,首先要对数据按协议进行封包,将封包后的数据全部发送。DM9000A的内部RAM地址0000h~0BFFh是发送缓冲区,用来存放发送数据包。用户在写入数据时,无需关心数据存放的地址,只要向MWCMD寄存器连续写入封包数据即可,芯片会自动将数据依次写入到发送缓冲区中。另外还需将要封包后数据的大小存放在TXPLH和TXPLL寄存器中,之后再将TCR的bit0设为1,芯片将开始进行封包数据的传送。可以通过读取TSRI,TSR11寄存器判断本次数据发送是否成功。



评论


相关推荐

技术专区

关闭