这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » [VHDL] 初始化dm9000a时遇到的问题

共2条 1/1 1 跳转至

[VHDL] 初始化dm9000a时遇到的问题

菜鸟
2010-05-31 21:26:10     打赏
我根据网上的初始化方法操作后,插上网线,LED指示灯并没有反应。
不知道是我没有编好,还是验证的方法不对。
请高手们不吝赐教,给我些灵感,本人万分感激。

网上的教程是这样写的:

初始化模块

DM9000A正常工作需要在上电后对内部寄存器进行初始化,该过程通过FPGA对DM9000A外部控制总线和数据总线的读写操作完成。具体流程如下所示:

>激活PHY

设置GPR(REG_1F)CEPIO0bit[0]=0;

复位后,DM9000A恢复默认的休眠状态,以降低功耗,因此需要首先唤醒PHY。

>进行两次软复位,步骤如下:

设置NCR(REG_00)bit[2:0]=011,至少保持20μs;

清除NCR(REG_00)bit[2:0]=000;

设置NCR(REG_00)bit[2:0]=011,至少保持20μs;

清除NCR(REG_00)bit[2:0]=000;

>配置NCR寄存器;

设置NCR(REG_00)bit[2:1]=00;配置为正常模式。

通过改变该寄存器可以选择设置内部或者外部PHY、全双工或者半双工模式、使能唤醒事件等网络操作。

>清除发送状态;

设置NSR(REG_01)bit[5]=1bit[3]=1 bit[2]=1;

>设置IMR寄存器(REG_FF)PAR bit[7]=1,以肩用RX/TX FIFOSRAM读/写地址指针自动返回功能;

>通过IMR寄存器(REG_FF)PRM bit[0]/PTM bit[1],对RX/TX中断使能。如果需要在一个数据帧发送完后产生一个中断,就应该将PTM bit[1]置1,如果需要在接收到一帧新数据时产生一个中断,就应该将PRM bit[1]置1;

>设置RCR寄存器,使能数据接收功能。

通过以上步骤,可以通过LED指示灯观测到DM9000A是否已成功初始化。

dm9000a.rar




关键词: 初始化     dm9000a     遇到     问题    

菜鸟
2013-06-19 13:56:24     打赏
2楼
谢谢你的提醒,我也是按照这个教程写的,但是下载程序没反应,原来是没茶网线。。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]