dm9000问题读取ID 出问题解决方法

转自:http://blog.sina.com.cn/s/blog_7f0456bf0100zup6.html

static void __CheckPHYID(void)
{
//*    如果能够正常读取出数据,那么说明时序是正确的
//*    注意这个时序和读取或者写入一个寄存器的值后的
//*    延时时间不是一样的含义。
    U32 id_val;
     id_val=ior(DM9KS_VID_L);
    id_val|=ior(DM9KS_VID_H)<<8;
    id_val|=ior(DM9KS_PID_L)<<16;
    id_val|=ior(DM9KS_PID_H)<<24;

    Printf("DM9000AE ChipId is %x\n", id_val);
    if(id_val == DM9KS_ID)
        Printf("DM9000 ID correct\n");
    else
        Printf("DM9000 ID wrong\n");   
}
调试该函数时DM9000ID号一直不对,总是显示46464646即DM9KS_VID_L的默认值。查阅资料发现问题出在MMU_init()函数,该函数将对应的cache打开了,这样cpu的读写操作都会在cache中进行,导致读取寄存器结果一直相同,解决办法是: 
在MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_CNB); //bank4 for dm9000 
把RW_CNB 改为RW_NCNB   //cache_off,WR_BUF 以关闭cache

 

博主:经试验,有效

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DM9000是一个常用的网络接口控制器芯片,用于将嵌入式系统连接到以太网。要调试DM9000网卡,可以按照以下步骤进行: 1. 硬件连接:首先,确保DM9000芯片正确连接到嵌入式系统板上,并与以太网接口相连接。检查芯片的供电和时钟信号。 2. 驱动程序:编写适当的驱动程序,以便嵌入式系统能够与DM9000通信。这通常涉及到与DM9000芯片的寄存器进行交互,读取和写入必要的控制和配置参数。确保驱动程序正确加载到系统中。 3. 硬件配置:检查DM9000的配置寄存器,确保MAC地址设置正确,并且与局域网中的其他设备不冲突。还可以配置其他参数,例如速度和双工模式。 4. 命令行工具:一些嵌入式操作系统提供了用于调试以太网接口的命令行工具。使用这些工具,您可以查看和配置DM9000的状态和参数。例如,您可以使用ifconfig命令查看和配置网络接口的IP地址和子网掩码。 5. debug信息:通过在驱动程序中添加适当的调试信息,可以轻松地跟踪和定位问题。打印DM9000的状态、接收和发送的数据包以及其他有用的信息,有助于确定问题所在。 6. 监视网络流量:使用网络分析工具,例如Wireshark,来监视DM9000的数据流量。这将帮助您识别任何异常数据包或通信问题。 7. FQA和论坛:查阅DM9000相关的文档、常见问题解答(FAQ),以及在线社区和论坛寻求帮助。在这些平台上,您可以找到其他用户的经验和解决方案。 总的来说,要调试DM9000网卡,需要确保正确连接硬件,编写驱动程序并配置相关参数。使用命令行工具、添加debug信息、监视网络流量和寻求帮助,可以更容易地发现和解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值