CONFIG_DM9000_BASE 0x20000300 ??????

本文详细介绍了 Mini2440 开发板上 DM9000EP 网络控制器的接口配置原理,包括如何通过 CPU 的 nGCS4 片选信号将其映射到 BANK4 地址空间,以及如何利用 CMD 信号线实现 DM9000 数据线 SD0-15 的复用,并解释了 CPU 地址线 LADDR2 在 DM9000 访问过程中的作用。
摘要由CSDN通过智能技术生成

Mini2440 , DM9000EP 。

DM9000,AEN引脚接cpu引脚nGCS4,DM9000映射到BANK4,对应地址空间0X20000000-0X27FFFFFF

DM9000的数据引脚SD0-15依次接cpu数据引脚LDATA0-15,

DM9000,CMD引脚接cpu地址线LADDR2

    When high, the access of this command cycle is DATA port 

    When low, the access of this command cycle is ADDRESS port 

因此,SD0-15复用为地址线和数据线,此处的地址线和数据线针对DM9000而言,

与其他设备无关,千万不能与开发板的地址线和数据线混淆。

地址线描述DM9000内部寄存器索引,而数据线描述定入对应寄存器的值。

CPU_ADDR          CPU_DATA       

       |              CMD=0 |  CMD=1   

+---+---+              +----------+     

|            |               |             |     

片选   CMD     DM_ADDR   DM_DATA

 

CPU_ADDR:0010 0XXX XXXX XXXX XXXX XXXX XXXX X{0,1}XX 

                  |  片选 |                                                      |CMD| 

bit[31,27]->片选

bit[2]->CMD

 

而cpu的地址线只有LADDR2与DM9000相连,因此只有这一条线的信号对DM9000有效,

而高五位是由nGCS4指定(推测),所以CPU_ADDR中的其他位没用(当然bit[0]会涉及到对齐问题,与cpu的设置有关)。

 

网上有很多文章提到DM9000的DM9000_BASE=0x20000300,根据我的理解和实验,

并非如此,如之前分析,只需要保证bit[32,27]=00100,bit[2]根据当前的是设置DM_ADDR还是DM_DATA,

分别对应0和1,其他位可以随便设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值