• ERROR: resetting DM9000 -> not responding dm9000 not found at 0x88000000问题解决


    ERROR: resetting DM9000 -> not responding                                       
    dm9000 not found at 0x88000000 id: 0x00000000  

    从错误信息来分析。id号打印出来是错误的。
    先定位错误文件:
    root@xjg:/home/xjg/u-boot-2012.10# grep -r "ERROR: resetting DM9000"
    drivers/net/dm9000x.c: printf("ERROR: resetting DM9000 -> not responding ");

    发现一開始reset函数就错误发生。说明是前面的步骤有问题。
    我检查了下你的lowlevel_init.S文件,发现时钟初始化有问题。
    终于定位是在以下这句  凝视了就能够。


    210     /* CLK_IP1 */
    211 /*  ldr r1, =0xe9fdf0f9         @ FIMD[0] USBOTG[16]
    212                         @ NANDXL[24]
    213     str r1, [r0, #0x464]        @ S5PC110_CLK_IP1
    214 */

    以下看看这一步为什么不正确?
    S5PV210 can disable the clock operation of each IP if it is not required。
    //看这样子像是屏蔽时钟的寄存器
    改动成以下这个样子就能够了。说明这个寄存器的第26位(SROM时钟)是不能屏蔽的。
    210     /* CLK_IP1 */
    211     ldr r1, =0xeDfdf0f9         @ FIMD[0] USBOTG[16]
    212                         @ NANDXL[24]
    213     str r1, [r0, #0x464]        @ S5PC110_CLK_IP1

    214 

    为什么和SROM时钟相关呢?从原理图上能够知道dm9000是使用的自己的时钟源,dm9000芯片外接了一个25MHz的晶振。


    感谢物联网大讲堂朱老师的指导:
    210用srom接口来和网卡通信。还记得dm9000是怎么接到210上面的吗?csn1片选信号。


    就是说dm9000是接在210的SROM  bank1上面的。这就能够解释为什么SROM时钟不能关闭了。。。。

  • 相关阅读:
    Indy的TCPServer到底能支持多少个连接
    Delphi TStream 详细介绍
    WebAPI下的如何实现参数绑定
    使用 Weinre 调试移动网站及 PhoneGap 应用
    面向对象的三大特征:封装、继承、多态
    轻量级前端MVVM框架avalon
    三种工厂模式的分析以及C++实现
    简单实现TCP下的大文件高效传输
    Nunit NMock Ncover单元测试
    算法实践——数独的基本解法
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6875694.html
Copyright © 2020-2023  润新知