CONFIG_DM9000_BASE是0x20000000还是0x20000300

原文地址:http://blog.csdn.net/yuin8320/article/details/6922378

说说我遇到的情况:在mini2440上看tekkman的是0x20000300而其它看到是0x20000000.所以有了这个问题,下边是转载的正文!


1. #define CONFIG_DM9000_BASE            0x20000000
这个地址到底是怎么定义,按我的理解因为是nGCS4控制,因该是0x20000000,但网上很多人说是0x20000300,这个0x300是如何来的,至今没一个人能够清楚的说明

如果你看过DM9000的datasheet( http://pdfdata.datasheetsite.com/web/29472/DM9000.pdf)就会知道,是0x20000000还是0x20000300或者别的什么, 取决于DM9000的PIN#92 CMD的连接。
92 CMD I Command Type
When high, the access of this command cycle is DATA port
When low, the access of this command cycle is ADDRESS port

也就是说,可以认为DM9000只有两个地址,一个用来写address,一个用来写data, 两个地址的区别只有一个bit(CMD PIN连接的那个地址PIN)。
在Mini2440上,DM9000的片选接的是CS4,CMDpin接的是ADDR2,所以address地址是0x20000000 (ADDR2 = 0), data地址是0x20000004 (ADDR2 = 1)。
至于网络上流传的0x20000300, 应该是某块开发板上,DM9000的CMD PIN接到了ADDR9或者ADDR8上。
很有趣的一点是,DM9000只受这一根地址PIN的影响,因此0x20000304和0x20000004对它来说是没有区别的。



CONFIG_DM9000_BASE是0x20000000还是0x20000300_第1张图片



从上面的图看出,上面转的内容说的是错误的

你可能感兴趣的:(CONFIG_DM9000_BASE是0x20000000还是0x20000300)