6410 Wince6.0 DM9000AEP 能读取ID,ping不通

duguxx   2010-3-22 17:55 楼主
我在三星6410的BSP包里添加DM9000A的驱动,目前能读取到Chipid,但不知道为什么ping不通,网络说什么就是不好用,以下是我在eboot下添加的内容
1. 我采用的是CSn4,bsp_base_reg_cfg.h
   #define BSP_BASE_REG_PA_CS8900A_IOBASE         (0x30000000)
   #define BSP_BASE_REG_PA_CS8900A_MEMBASE        (0x30000000)
2.eboot/ether.c
   #define DM9000A_Tacs    (0x0)    // 0clk
   #define DM9000A_Tcos    (0x0)    // 4clk
   #define DM9000A_Tacc    (0x7)    // 14clk
   #define DM9000A_Tcoh    (0x0)    // 1clk
   #define DM9000A_Tah     (0x0)    // 4clk
   #define DM9000A_Tacp    (0x0)    // 6clk
   #define DM9000A_PMC     (0x0)    // normal(1data)

   InitSROMC_CS8900()中修改如下:
        s6410SROM->SROM_BW = (s6410SROM->SROM_BW & ~(0xF<<16)) |
                                (1<<16); // Data bus width control for Memory Bank4 (0=8-bit, 1=16-bit)

        s6410SROM->SROM_BC4 = ((DM9000A_Tacs<<28)+(DM9000A_Tcos<<24)+(DM9000A_Tacc<<16)+(DM9000A_Tcoh<<12)\
                                +(DM9000A_Tah<<8)+(DM9000A_Tacp<<4)+(DM9000A_PMC));

   InitEthDevice()中修改如下L:
        pfnEDbgInit      = DM9000DBG_Init;
        pfnEDbgGetFrame  = DM9000DBG_GetFrame;
        pfnEDbgSendFrame = DM9000DBG_SendFrame;

DNW中打印如下:
   Enter your selection: d
   0xBA000000 0xBA000000
   DM9000 ID is 0x90000a46
   INFO: Probe: DM9000 is detected.
   DM9000: MAC Address: 11:22:33:44:55:66
   System ready!
   Preparing for download...
   INFO: *** Device Name 'SMDK641021862' ***
   INFO: Using static IP address 1218728.
   INFO: Using subnet mask 2525250.
   +EbootSendBootmeAndWaitForTftp
   Sent BOOTME to 255.255.255.255
   Sent BOOTME to 255.255.255.255

BSP中添加驱动后,作了一些修改后效果同样,只能读取到ID,请各位大侠指点一下,到底是哪方面的问题

回复评论 (29)

网络没设置好吧
点赞  2010-3-22 18:23
BOOT中好像不支持PING吧。
另外,需要考虑一下中断。
以前在调试DM9000驱动时,也是能读到ID,但不能通讯,后来发现是中断的问题。
点赞  2010-3-22 20:56
另外硬件连通了吗?

连上网线,对应的绿色指示灯 都亮了吗?
点赞  2010-3-22 22:37
应该是中断问题
点赞  2010-3-23 12:58
板子和PC/交换机连接,PC上显示已连接,交换机对应端口的灯也亮,唯一不同的就是我这面板子有的灯亮有的不亮,亮的效果也是如此。

在我印象中Boot好像不用中断吧,因为CE里面我也添加驱动效果同样,而涉及到的东西太多,我才想用Boot作测试,用示波器看cs# IOW# IOR#都有波形。
点赞  2010-3-23 13:10
boot 没有用中断
点赞  2010-3-23 15:36
不知道是什么原因,好像是网络变压器挑网线和交换机,直连现在能看到网络的连接状态是通的,现在有以下情况发生;
1.PC ping丢包严重,WINCE下板子ping出错,错误信息“ping : transmit failed, error code 11010”
2.Boot下用vs2005中的target能看到板子,但Attach时看不到连接下载信息
点赞  2010-3-24 11:16
引用: 引用 7 楼 jyoshou 的回复:
不知道是什么原因,好像是网络变压器挑网线和交换机,直连现在能看到网络的连接状态是通的,现在有以下情况发生;
1.PC ping丢包严重,WINCE下板子ping出错,错误信息“ping : transmit failed, error code 11010”
2.Boot下用vs2005中的target能看到板子,但Attach时看不到连接下载信息


这个以前也碰到过,估计是硬件的问题,软件大概无能为力了。
点赞  2010-3-24 11:35
  如果有多台设备,注意他们的网卡地址是否重复了。我以前也是2快开发板练到一个网就不行,后来发现网卡驱动取的是固定的物理地址。后面改了之后就正常了
点赞  2010-3-24 12:40
我想请问一下DM9000AEP应该采用动态申请中断还是静态的,由于在intr.c中看到6410默认用的EINT10动态申请,所以仅添加了对EINT10的控制,如下:
    // EINT10(GPN10)->IRQ_LAN
    pGPIOReg->GPNCON    = ( pGPIOReg->GPNCON & ~(0x3<<20) ) | (0x2<<20);      // IRQ_LAN by EINT10 (GPN10)
    pGPIOReg->GPNPUD    = ( pGPIOReg->GPNPUD & ~(0x3<<20) ) | (0x0<<20);      // pull-up/down disabled
    pGPIOReg->EINT0CON0 = ( pGPIOReg->EINT0CON0 & ~(0x7<<20)) | (0x1<<20);    // High level triggered
注册表中把sysintr字段屏蔽了,DNW打印如下内容:


[dm9: Tries to map io space with 30000000]
[dm9: The mapped address is D2B10000]
[dm9: Chip signature is 0A469000]
-OALIntrRequestSysIntr(irq = 10, sysIntr = 27)

再就是不断触发的中端 C_DM9000::DeviceEnableInterrupt,不知道动态申请对ping返回的error 11010有没有影响
点赞  2010-3-24 15:18
我将PC机网卡的网速降到10M,PC Ping板子一点丢包都没有,但板子仍然是“ping : transmit failed, error code 11010”这个错误,有知道这个错误是什么原因导致的么,请各位帮帮忙
点赞  2010-3-30 12:18
引用: 引用 10 楼 jyoshou 的回复:
我想请问一下DM9000AEP应该采用动态申请中断还是静态的,由于在intr.c中看到6410默认用的EINT10动态申请,所以仅添加了对EINT10的控制,如下:
// EINT10(GPN10)->IRQ_LAN
pGPIOReg->GPNCON = ( pGPIOReg->GPNCON & ~(0x3<<20) ) | (0x2<<20); // IRQ_LAN by EINT1……


动态申请中断,如果正确了,应该也是没有问题的。
我想这个地方不是问题的关键。
点赞  2010-3-30 13:20
DM9000AEP移植帖子应该比较多了,搜索一下就有了。改的地方相当少。很久没来wince区了。

linux整的一头雾水!神那~~~~~~~
点赞  2010-3-30 16:54
我也是碰到的这个问题啊,串口信息:
INFO: Using device name: 'MBA24407'
+EbootSendBootmeAndWaitForTftp
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255
PB中一直显示不出设备名称
点赞  2010-4-21 13:23
本人的是PB可以显示设备名称,但是总是丢包again,看来不光我一个有问题
点赞  2010-4-21 13:47
引用: 引用 15 楼 seu_dust 的回复:
本人的是PB可以显示设备名称,但是总是丢包again,看来不光我一个有问题

可以把PC上和板子上的网络设置贴上来么
点赞  2010-4-21 14:50
我在北京盟石的开发板上的调试经验,供大家参考:
1.串口能出现Sent BOOTME to 255.255.255.255的信息,但PB中一直显示不出设备名称:第一可能DM9000芯片坏了(市场上的二手旧芯片有可能出这问题),换个芯片就解决。第二种可能,CPU和DM9000的16条数据线有短路的情况,用示波器挨个检查16条数据线的波形,如果发现波形异常,则可能是这个原因。波形异常的表现有幅度不够3V,波形畸变等。
2.能显示设备名称,能连接,总是丢包:如果PCB Layout本身没问题,则十有八九是DM9000芯片坏了,中发市场上99.2%的DM9000是二手的。
点赞  2010-5-20 10:37
之前遇到这的这问题已经解决了,是DM9000的驱动问题,你仔细的研究下,接收的函数~~
点赞  2010-5-20 13:06
eboot里面也可以用中断吗?
点赞  2010-5-20 14:31
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复