搜索
bottom↓
回复: 11

DM9000不能激活内部PHY

[复制链接]

出0入0汤圆

发表于 2015-4-28 11:35:31 | 显示全部楼层 |阅读模式
本帖最后由 chengying 于 2015-4-28 11:47 编辑

使用MDK裸机测试S3C2410与DM9000网络通讯(硬件为他人设计,我只负责软件部分),目前现象,可以读出DM9000的ID,各个寄存器可读写,连接PC,link指示灯不亮,显示为10M接口。
设置GPIO0为输出,并输出0以激活内部PHY,测试GPIO0为低电平,照理说已激活内部PHY。读出1F寄存器值为0x7C。
设置为内部MAC方式,可收发。
设置内部PHY模式,不能收发。PHY不工作?
程序移植到友善之臂板子上可以正常收发。是不是可以排除软件问题?
请问:
(1)如果硬件问题,我需从哪几个方面做测试?(他人不太愿意测试)
(2)DM9000的PHY激活软件方面是不是还有问题?
(3)希望有做过类似项目的给出相关注意方面。

DM9000初始化如下:
/*        DM9000网卡的初始化工作        */
void DM9000_init(void)
{
        uint32 i;
        uint16 data;

        Test_DM9000AE();
// PrintfEEPROM();
        IOSetInit();
        //初始化设置步骤: 1
        dm9000_reg_write(DM9000_GPCR, 0x01);        //设置 GPCR(1EH) bit[0]=1,使DM9000的GPIO0为输出。
        dm9000_reg_write(DM9000_GPR,  0x00);        //GPR bit[0]=0 使DM9000的GPIO0输出为低以激活内部PHY。
        udelay(3000);                                                        //延时2ms以上等待PHY上电。
       
        //初始化设置步骤: 2
        dm9000_reg_write(DM9000_NCR,  0x03);        //软件复位  2-1:01内部MAC回环模式  0位:1 软件复位  
        udelay(200);                                                        //延时20us以上等待软件复位完成
        dm9000_reg_write(DM9000_NCR,  0x00);        //复位完成,设置正常工作模式。
        dm9000_reg_write(DM9000_NCR,  0x03);        //第二次软件复位,为了确保软件复位完全成功。此步骤是必要的。
        udelay(3000);
        dm9000_reg_write(DM9000_NCR,  0x00);
        //初始化设置步骤: 3
        dm9000_reg_write(DM9000_IMR,  0x80);     //清中断
        ////NSR只能写三个位,主要是清除发送完成标志位
        dm9000_reg_write(DM9000_NSR,  0x2C);        //清除各种状态标志位
        /*        对其写1就是是清除        */
        dm9000_reg_write(DM9000_ISR,  0xbf);        //清除所有中断标志位
        //初始化设置步骤: 4
      dm9000_reg_write(DM9000_RCR,  0x39);        //接收控制
      dm9000_reg_write(DM9000_TCR,  0x0);        //发送控制
      dm9000_reg_write(DM9000_BPTR, 0x3f);
      dm9000_reg_write(DM9000_FCTR, 0x3a);        //接收FIFO门限3k 8k
      dm9000_reg_write(DM9000_FCR,  0xff);
               
        //初始化设置步骤: 5
        for(i=0; i<6; i++)
                dm9000_reg_write(DM9000_PAR + i, mac_addr);//mac_addr[]自己定义一下吧,6个字节的MAC地址
       
        //初始化设置步骤: 6
        dm9000_reg_write(DM9000_NSR,  0x2c);        //清除各种状态标志位
        dm9000_reg_write(DM9000_ISR,  0x3f);        //清除所有中断标志位
        //初始化设置步骤: 7 只是打开了一个接受数据包中断,没有将发送数据包中断打开。
        dm9000_reg_write(DM9000_IMR, 0x81);                //中断使能         80中断禁止

        PrintfDM9000Reg();
        uart_printf("初始化后EEPROAM\n");
//        PrintfEEPROM();
       
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出90入372汤圆

发表于 2015-4-28 12:35:33 | 显示全部楼层
硬件问题的可能性更大

出0入0汤圆

 楼主| 发表于 2015-4-28 13:01:13 | 显示全部楼层
keshipt 发表于 2015-4-28 12:35
硬件问题的可能性更大

需要从哪几个方面检测?谢谢你的回复。

出90入372汤圆

发表于 2015-4-28 13:16:32 | 显示全部楼层
检查DM9000及周边器件是否存在短路或者虚焊,50欧匹配电阻是否正常等,DM9000硬件布线是需要注意阻抗匹配的(差分),曾经吃过这方面的亏,如果有多个板子的话做个对比测试

出0入0汤圆

 楼主| 发表于 2015-4-28 13:43:22 | 显示全部楼层
keshipt 发表于 2015-4-28 13:16
检查DM9000及周边器件是否存在短路或者虚焊,50欧匹配电阻是否正常等,DM9000硬件布线是需要注意阻抗匹配的 ...

50欧匹配电阻是正常的,周边没有虚焊短焊。测试了三块板子均是上述现象。我也问过关于DM9000芯片的地平面需要分离出数字与模拟两部份并通过一点连接在一起问题,硬件工程师说处理好了。

出0入0汤圆

 楼主| 发表于 2015-4-28 13:46:34 | 显示全部楼层
我感觉79脚,wakeup应该悬空或提供输出信号,这里的处理是否有影响?

出0入0汤圆

 楼主| 发表于 2015-4-28 16:59:32 | 显示全部楼层
chengying 发表于 2015-4-28 13:46
我感觉79脚,wakeup应该悬空或提供输出信号,这里的处理是否有影响?

将R29取下,情况还是一样。真得不知道如何调了。困扰了2个星期了。

出50入8汤圆

发表于 2015-4-28 21:29:53 | 显示全部楼层
RST不能直接接地,我之前用DM9000AE的时候发现必须给复位信号才能正常工作

出0入0汤圆

 楼主| 发表于 2015-4-29 09:27:15 | 显示全部楼层
airbox 发表于 2015-4-28 21:29
RST不能直接接地,我之前用DM9000AE的时候发现必须给复位信号才能正常工作

RST不是硬件复位,高电平有效。直接接地应该可以吧。不是初始化也进行了软件复位。

出0入0汤圆

 楼主| 发表于 2015-4-29 09:43:12 | 显示全部楼层
看到一些回复,我也不知道是不是这些问题,我看不到硬件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出50入8汤圆

发表于 2015-4-29 09:43:22 | 显示全部楼层
chengying 发表于 2015-4-29 09:27
RST不是硬件复位,高电平有效。直接接地应该可以吧。不是初始化也进行了软件复位。 ...

要高电平脉冲复位的,以前用的DM2000AE,没有高电平脉冲复位时,总线都是不正常的

出0入0汤圆

 楼主| 发表于 2015-4-29 09:46:27 | 显示全部楼层
airbox 发表于 2015-4-29 09:43
要高电平脉冲复位的,以前用的DM2000AE,没有高电平脉冲复位时,总线都是不正常的 ...

恩,谢谢你。我和做硬件的说下。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 21:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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