请问SDRAM这么接有什么道理

[复制链接]
3820|15
 楼主| wujinEE 发表于 2013-3-15 16:30 | 显示全部楼层 |阅读模式
幼龙的LPC1788开发板 2片16bitSDRAM 为什么LPC1788地址线A0接 SDRAM 的 A0  ?我看网上 2440开发板 16Bit SDRAM 应该用CPU 的 A1 接 SDRAM A0啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
jlass 发表于 2013-3-15 16:40 | 显示全部楼层
估计LPC1788是32bit数据存放的
 楼主| wujinEE 发表于 2013-3-15 16:43 | 显示全部楼层
总线应该是32bit的  不过地址线为什么不是   CPU :A1 -------A0:SDRAM ?
bbsdianzi168 发表于 2013-3-15 17:06 | 显示全部楼层
好像很多都是这么接的。
jlass 发表于 2013-3-15 17:08 | 显示全部楼层
wujinEE 发表于 2013-3-15 16:43
总线应该是32bit的  不过地址线为什么不是   CPU :A1 -------A0:SDRAM ?

16bit才这么接,8bit的就是A2接A0。
amwrdfe 发表于 2013-3-15 17:18 | 显示全部楼层
和sdram的控制器读取bit数有关,
2440的datasheet是这么介绍的,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wujinEE 发表于 2013-3-15 17:25 | 显示全部楼层
lpc1788的好像是固定的  如果选定了封装  如果是32bit 的 cpu  接2片16 bit SDRAM  又该怎么接  是不是按照A0对A0  还是 A2对A0?
阿南 发表于 2013-3-15 17:31 | 显示全部楼层
用于对齐的
amwrdfe 发表于 2013-3-15 17:37 | 显示全部楼层
是的,为了保证数据的对齐,
数据宽度大一倍,对应的地址就得少一位.
 楼主| wujinEE 发表于 2013-3-15 17:42 | 显示全部楼层
那顶楼的原理图是不是说 CPU data  32 bit   ?那原理图为什么不错开两位  按照2片16bit sdram  不就等于32 bit了吗
 楼主| wujinEE 发表于 2013-3-15 20:36 | 显示全部楼层
我还是不太明白 你能说详细一点吗? 32bit 是外部总线 是LPC1788的数据总线 两片16bit SDRAM 加起来也是32bit 啊 2440开发板 就是地址线错开接的
amwrdfe 发表于 2013-3-15 21:41 | 显示全部楼层
建议仔细看看datahseet,datasheet上有详细介绍,
一般sdram控制器都有其对应的地址mapping
xunchangreng 发表于 2013-3-15 22:01 | 显示全部楼层
LPC1788是CORTEX-M3内核,运行的是16位的Thumb 指令,而SDRAM是16bit的,所以地址线是16bit对齐,也就是LPC1788的A0与SDRAM的A0相接
S3C2440是ARM9内核,运行的是32位的ARM指令,而SDRAM是16bit的,两片SDRAM组合成32bit,所以地址线是32bit对齐,也就是S3C2440的A2与SDRAM的A0相接。
ymind 发表于 2013-3-16 08:25 | 显示全部楼层
实际跟芯片SDRAM控制器具体设计和命名习惯相关(比如考虑pin复用)。不论数据总线最终是16还是32bit, 是否只支持thumb,SDRAM的话总是要有byte读写能力的。
lpc1788拥有DQMx来控制byte读写,所以控制器A0接SDRAM A0;
s3c2440用A0,A1接两片SDRAM DQML(两片16-bit), DQMH有额外控制线,所以控制器A2接SDRAM A0.
byeyear 发表于 2013-3-16 11:45 | 显示全部楼层
这个跟CPU的总线设计有关
例如当使用16位数据总线时
有的CPU的地址总线输出字节地址(A0是字节地址最低位)
但有的CPU的地址总线输出字(16位)地址(A0是字地址最低位)
因此对于不同的CPU就有了不同的地址总线接法
jlass 发表于 2013-3-18 10:56 | 显示全部楼层
本帖最后由 jlass 于 2013-3-18 10:58 编辑
wujinEE 发表于 2013-3-15 17:25
lpc1788的好像是固定的  如果选定了封装  如果是32bit 的 cpu  接2片16 bit SDRAM  又该怎么接  是不是按照 ...

唉,我在5楼的回帖,配上6楼的图后,把你给误导了。

给你理一下吧

2440是8位总线的,所以接sdram时
8位sdram,A0对A0
16位sdram,A1对A0
32位sdram,A2对A0

你用的芯片是32位总线的,所以接sdram时
8位sdram,A0对A0(浪费24bit)
16位sdram,A0对A0(浪费16bit)
32位sdram,A0对A0(刚刚好)

你的第一副图中时使用了两片16bit的sdram拼成的32bit的sdram,请注意后面的数据线是D0~D31。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

50

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部