3881|10

55

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

dm9000的问题 [复制链接]

dm9000连接在NGS1上
那么ethernetmembase 为0x08000000
    Ethernetiobase 为 0x09000300
现在
dm9000c中对io口读的定义如下:
include
#define DM9000_ID  0x90000A46
// Hash creation constants.
//
#define CRC_PRIME               0xFFFFFFFF;
#define CRC_POLYNOMIAL          0x04C11DB6;

#define IOREAD(o)     ((UCHAR)*((volatile UCHAR *)(o)))
#define IOWRITE(o, d)    *((volatile UCHAR *)(o)) = (UCHAR)(d)
#define IOREAD16(o)     ((USHORT)*((volatile USHORT *)(o)))
#define IOWRITE16(o, d)    *((volatile USHORT *)(o)) = (USHORT)(d)
#define IOREAD32(o)     ((ULONG)*((volatile ULONG *)(o)))
#define IOWRITE32(o, d)    *((volatile ULONG *)(o)) = (ULONG)(d)
#define MEMREAD(o)     ((USHORT)*((volatile USHORT *)(dwEthernetMemBase + (o))))
#define MEMWRITE(o, d)    *((volatile USHORT *)(dwEthernetMemBase + (o))) = (USHORT)(d)
在probe函数中:
* return : TRUE, detect DM9000
*          FALSE, Not find DM9000
*/
static BOOL Probe(void)
{
BOOL r = FALSE;
DWORD id_val;

id_val = READ_REG1(0x28);
id_val |= READ_REG1(0x29) << 8;
id_val |= READ_REG1(0x2a) << 16;
id_val |= READ_REG1(0x2b) << 24;

if (id_val == DM9000_ID) {
  RETAILMSG(1, (TEXT("INFO: Probe: DM9000 is detected.\r\n")));
  DM9000_rev = READ_REG1(0x2c);
  
  r = TRUE;
}
else {
  RETAILMSG(1, (TEXT("ERROR: Probe: Can not find DM9000.\r\n")));
}
return r;
}
可以探测到dm9000。输出id-val也是对的
为什么可以直接读寄存器而不是像cs8900中要加上Ethernetiobase
而且,我发现寄存器有些写入后读是正确的
有些写入后和读出的值不一致,
在发送数据的时候,在网卡芯片的txo+ txo-都没有示波器信号,求救啊

最新回复

您好,我是张海涛。您提的DM芯片的问题,我可以帮助你解答。关于DM9000AEP,DM9161AEP,DM8203EP,DM9620数据手册,驱动,请联系我!我们专业做以太网方案,有强大的技术支持。我的联系方式:shboer@163.com  电话:021-52060235  详情 回复 发表于 2010-10-16 22:20
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
NGS1是什么东西?

先把你的平台说清楚,不是所有人都和你用一样的东西。
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
恩,忘记了,arm平台是2410,ngs1是片选。
所以他的地址是0x0800000
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
static USHORT dm9000_send (BYTE *pbData, USHORT length)
{
int i;
int tmplen;

IOWRITE(dwEthernetIOBase, 0xf8); /* data copy ready set */
/* copy data to FIFO */
switch (DM9000_iomode)
{
  case DM9000_BYTE_MODE:
   tmplen = length ;  
                 for (i = 0; i < tmplen; i++)
    IOWRITE(dwEthernetDataPort, ((UCHAR *)pbData));
    break;
  case DM9000_WORD_MODE:
   tmplen = (length+1)/2;
   for (i = 0; i < tmplen; i++)
           IOWRITE16(dwEthernetDataPort, ((USHORT *)pbData));
   break;
  case DM9000_DWORD_MODE:
   tmplen = (length+3)/4;
   for (i = 0; i < tmplen; i++)
           IOWRITE32(dwEthernetDataPort, ((ULONG *)pbData));
  default:
   EdbgOutputDebugString("[DM9000][TX]Move data error!!!");
   break;
}
/*set packet leng */
WRITE_REG1(0xfd, (length >> 8) & 0xff);
WRITE_REG1(0xfc, length & 0xff);
/* start transmit */
WRITE_REG1(0x02, 1);

/*wait TX complete*/
while(1)
{
  if (READ_REG1(0xfe) & 2) { //TX completed
   WRITE_REG1(0xfe, 2);
   break;
  }
  DM9000_Delay(1000);
}
return 0;
}
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
iobase 是怎么算的啊,我看datasheet中是 (strap value of txd【3】)×10h+300H
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
IOBASE就是片选地址吧。

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 gooogleman 的回复:
IOBASE就是片选地址吧。

那membase呢,我看三星的smdk中他对cs8900的定义是
iobase=190000300
membase=18000000
membase看上去更像是片选地址,不知道dm9000是不是一样,而且很迷糊iobase为什么是1900000h+300h
+300h这个datasheet中有说,但是为什么是19000000h就不知道
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

8
 
http://topic.eeworld.net/u/20081017/18/5c5b6f82-3e96-4474-a9e4-a7995e5f3d84.html
有个在6400下做的提问,但看了之后不是很明白
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

9
 
不知道解了没,您的问题具体我不太清楚,不过我们公司是DIVACOM在中国区域的总代理,多年来一直专注于做DM9000及DIVACOM全线产品,通过我们可以的到原厂的工程师做技术支持,当然,是免费提供的,我的联系方式  您如果有需要的话可以联系我  QQ:1259987438 电话:027-8765163610 (0)13554272382 王洪武
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

10
 
您好,我是爱欣文科技的江练锋。
您提的DM芯片的问题,我可以帮助你解答。
关于DM9000AEP,DM9161AEP,数据手册,驱动,请联系我!
我们是DM芯片大陆的总代理商,有强大的技术支持。
我的联系方式:axwjiang@163.com   15827601937
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 

以太网设计方案

您好,我是张海涛。
您提的DM芯片的问题,我可以帮助你解答。
关于DM9000AEP,DM9161AEP,DM8203EP,DM9620数据手册,驱动,请联系我!
我们专业做以太网方案,有强大的技术支持。
我的联系方式:shboer@163.com  电话:021-52060235
 
个人签名公司名称:上海飞芯电子科技公司
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表