新闻中心

EEPW首页>嵌入式系统>设计应用> ARM与不同位宽存储器的地址线错位接口

ARM与不同位宽存储器的地址线错位接口

作者: 时间:2016-11-24 来源:网络 收藏

这种操作也符合使用8位单片机时候的习惯,WR扮演了“写”的角色。

下面是32位宽的存储器组连接8位的存储器芯片,很显然这里RBLE位应该为0。
网友wag提出这样的问题,能否用ARM的WE引脚直接连接到存储器芯片的WE引脚。有这样的问题可能是源于以前的习惯,也可能是不清楚RBLE位为0时,写访问期间BLS[3:0]引脚的状态。
LPC2210/2220 User Manual 上面介绍了RBLE=0的时候的读写情况。EMC的WE信号没有被使用。在写周期,BLS[3:0]拉低,将数据送到要写入的地址。对于读周期,BLS[3:0]拉高。
网友sky421提到“我用的是2214,接一片8位的RAM,写的时候WE脚不会有变化,BLS0在变化”
我个人理解,如果RBLE=0,BLS引脚就取代了WR的功能,WR脚就不可以使用了。
有心的朋友可以用逻辑分析仪测一下,实际情况如何,验证一把。

总结,当RBLE=1,WR 有效,BLS充当字节选择,其随WR,OE的变化而变化,读、写操作时 BLS都是低电平,此时用于有字节选择的外部设备。

本文引用地址: //m.amcfsurvey.com/article/201611/321046.htm

当RBLE=0,WR无效,此时用于无字节选择的外部设备,BLS可以充当WR信号,而WR 无效。

不是ARM9 S3C2440的,但是有相似之处!

存储器映射:
0-1G(0x0000,0000 - 0x3fff,ffff):片内Flash.
1-2G(0x4000,0000 - 0x7fff,ffff):片内RAM.
2-3.5G(0x8000,0000 - 0xbfff,ffff - 0xdfff,ffff):片外存储器。
3.5G - 3.75G(0xe000,0000 - 0xefff,ffff): VPB外设。
3.75G - 4G(0xf000,0000 - 0xffff,ffff): AHB外设。
虽然ARM7的寻址空间为4G,但是LPC2200系列只提供A0~A23总共16M的地址。片选信号CS0 - CS3是A24和A25的译码输出,将片外存储区0x8000,0000 - 0x83ff,ffff划分为bank0 - bank3,共16M*4=64M.这4个bank可以被分别配置为8/16/32位总线宽度。复位时,bank0的总线宽度由Boot1:0引脚决定, bank1为32位,bank2为16位,bank3为8位。
字节定位信号(BLS0 - BLS3)协调总线宽度和外存芯片数据线宽度。
当Memory由“字节宽度器件”(如62256)或者“未按照字节区分的多字节器件”组成时,应将RBLE设置为"0"。此时,读访问时EMC将BLS0~BLS3拉高。
当Memory由“含有字节选择输入的16位或32位器件”组成时,应将RBLE设置为"1"。此时,读访问时EMC将BLS0~BLS3拉低。
所以,当Memory由62256组成时,由于不需要“片内字节选择输入”,故令RBLE = 0,则BLS0~BLS3只会与nWR同步,可以代替nWR使用。
但是,当Memory由IS61LV25616AL组成时,由于该芯片有"nLB"和"nUB"控制低/高8位的输入,故令RBLE = 1,则BLS0~BLS3与nRD和nWR都会同步,此时,不可以使用BLS0~BLS3代替nWR信号。
地址数据总线:D0 - D31, A0 - A23, OE, WE, CS0 - CS3, BLS0 - BLS3
启动后由P2.7/P2.6控制引导方式,然后由程序设置MEMMAP决定中断向量的映射。
BCFG0 - BCFG3控制读写延时和总线宽度。注意复位后的默认值。
PINSEL2控制引脚功能。
Boot Block
LPC2114/2214的BootBlock被固化在最高的Flash块中,运行时被映射到0x7FFF,E000 - 0x7FFFF,FFFF的区域。而LPC2210没有片内Flash,但它有8K片内ROM存储了BootBlock,也被映射到0x7FFF,E000处。


上一页 1 2 下一页

关键词:ARM位宽存储器地址线错位接

评论


相关推荐

技术专区

关闭