FSMC访问16位NORFLASH官方用的是A22-A0,不明白

[复制链接]
4016|12
 楼主| z_no1 发表于 2013-3-13 18:00 | 显示全部楼层 |阅读模式
M29W128是一个16M字节的NORFLASH.A22-A0是23根地址线,2的23次方8M多,8M*16是16M字节,但FSMC的A0不就变成字节意义上的A1了?不明白。
airwill 发表于 2013-3-13 18:44 | 显示全部楼层
A0不就变成字节意义上的A1了?  这是受了 8 位系统的影响了
FSMC 设置成 16 位方式后, A0就是字节意义上的A1了. 详细的情况, 楼主仔细看一下手册吧.
aozima 发表于 2013-3-13 20:25 | 显示全部楼层
另外有些芯片上面,使用16bit或是32bit外设时,A0悬空,具体要怎么接,请看芯片的资料。

扩展思考:如何把两片8bit外设组合成16bit,或是4片8bit组合成32bit,再把两片16bit组合成32bit.
关键字: 地址译码,字节选择。
cjhk 发表于 2013-3-13 20:40 | 显示全部楼层
这一块不是很了解  还是让版主好好讲一讲吧  呵呵
 楼主| z_no1 发表于 2013-3-13 21:14 | 显示全部楼层
也就是说,当总线上有8位和16位器件时,同样是0x???06选中8位,A3:0是0110,选中16位,A3:0是0011
jlass 发表于 2013-3-14 09:53 | 显示全部楼层
本帖最后由 jlass 于 2013-3-14 09:56 编辑

为了兼容8位的器件,数据存放如下
0:12
1:34
2:56
3:78
如果是16位操作,就变成
0:1234
2:5678
A0自然就没意义了,如果是32位操作,A0和A1都没意义了。
但请注意,A0只是不使用,不代表A0就没有用了,A0仍然可以作为普通的地址线使用。
jlass 发表于 2013-3-14 10:01 | 显示全部楼层
另外:16位操作时,你也可以强行去读,结果就是
0:1234
1:3456
2:5678
1的结果是不是毫无意义。
 楼主| z_no1 发表于 2013-3-14 13:57 | 显示全部楼层
这就牵涉另一个问题了,NOR FLASH有1GBIT(128M 字节)的,现在不用,但可能以后要用。STM32的寻址空间是64M,那最高地址线 A25是要用GPIO来做片选了吗?像我们在51里经常干的那样。
aozima 发表于 2013-3-14 14:08 | 显示全部楼层
z_no1 发表于 2013-3-14 13:57
这就牵涉另一个问题了,NOR FLASH有1GBIT(128M 字节)的,现在不用,但可能以后要用。STM32的寻址空间是64 ...

STM32的外部总线(FSMC)的地址空间是连接的,所以可以合用两个BANK。
 楼主| z_no1 发表于 2013-3-14 14:19 | 显示全部楼层
先按官方原理图画板吧,其他的以后再说。结贴
 楼主| z_no1 发表于 2013-3-14 15:33 | 显示全部楼层
是按我想法来的,当接一个16位的NOR FLASH器件,A25(PG14)是不受FSMC控制的。可以把它设置成GPIO来做高端片选。
cksc.PNG
nor.PNG
jlass 发表于 2013-3-14 15:59 | 显示全部楼层
本帖最后由 jlass 于 2013-3-14 16:01 编辑
z_no1 发表于 2013-3-14 13:57
这就牵涉另一个问题了,NOR FLASH有1GBIT(128M 字节)的,现在不用,但可能以后要用。STM32的寻址空间是64 ...

你可以把A0拿来用,反正空着也是空着:)
不过,不建议使用超过STM32的寻址空间的flash,频繁操作GPIO的时候速度会很慢。
 楼主| z_no1 发表于 2013-3-14 16:07 | 显示全部楼层
不是A0,是A25可以拿来用!
64M换页的频率还是相当的低的。不妨事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

2659

帖子

10

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