天嵌 ARM开发社区

 找回密码
 注册
查看: 2446|回复: 0

为什么我的DM9000初始化后DM9000_NSR的值总是0,链接不上,请大侠指点迷津

[复制链接]
闯出一个世界 发表于 2013-1-24 22:15:38 | 显示全部楼层 |阅读模式
代码如下
#define DM_ADD (*((volatile unsigned short *) 0x20000300))
#define DM_CMD (*((volatile unsigned short *) 0x20000304))

//延时
void udelay(uint32 t)
{
   U32 i;
   for(;t>0;t--)
   {
     for(i=0;i<100;i++){}
   }
}
//dm9000初始化
void DM9000_init(void)
{
    uint32 i;
    IOSetInit();

    dm9000_reg_write(DM9000_GPCR, 0x01);    //设置 GPCR(1EH) bit[0]=1,使DM9000的GPIO3为输出。
    dm9000_reg_write(DM9000_GPR,  0x00);    //GPR bit[0]=0 使DM9000的GPIO3输出为低以激活内部PHY。
    Printf("\nGPR=%x\n",dm9000_reg_read(DM9000_GPR));/////
    udelay(1000000);                           //延时2ms以上等待PHY上电。
    Printf("\nGPR=%x\n",dm9000_reg_read(DM9000_GPR));/////
    //初始化设置步骤: 2
    dm9000_reg_write(DM9000_NCR,  0x03);    //软件复位
     Printf("\nNCR=%x\n",dm9000_reg_read(DM9000_NCR));/////
    udelay(30000);                               //延时20us以上等待软件复位完成
    dm9000_reg_write(DM9000_NCR,  0x00);    //复位完成,设置正常工作模式。
    dm9000_reg_write(DM9000_NCR,  0x03);    //第二次软件复位,为了确保软件复位完全成功。此步骤是必要的。
    udelay(30000);
     Printf("\nNCR=%x\n",dm9000_reg_read(DM9000_NCR));///////
    dm9000_reg_write(DM9000_NCR,  0x00);

    dm9000_reg_write(DM9000_NSR,  0x2c);    //清除各种状态标志位
    dm9000_reg_write(DM9000_ISR,  0xbf);    //清除所有中断标志位

    dm9000_reg_write(DM9000_RCR,  0x39);    //接收控制
    dm9000_reg_write(DM9000_TCR,  0x00);    //发送控制
    dm9000_reg_write(DM9000_BPTR, 0x3f);
    dm9000_reg_write(DM9000_FCTR, 0x38);    //接收FIFO门限3k 8k
    dm9000_reg_write(DM9000_FCR,  0xff);
    dm9000_reg_write(DM9000_SMCR, 0x00);   
    //初始化设置步骤: 5
    for(i=0; i<6; i++)
        dm9000_reg_write(DM9000_PAR + i, hwaddr[i]);//
    dm9000_reg_write(DM9000_NSR,  0x2c);    //清除各种状态标志位
    dm9000_reg_write(DM9000_ISR,  0x3f);    //清除所有中断标志位
    Printf("\nNSR=%x\n",dm9000_reg_read(DM9000_NSR));///////

    dm9000_reg_write(DM9000_IMR, 0x81);     //中断使能       

    Printf("初始化成功!\r\n");
   
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-28 01:27 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表