本帖最后由 ducha 于 2010-5-15 13:47 编辑
在这里吧FSMC 涉及到的用法做一个分类总结,虽然官方的文档很好,但是还是用朴素的话做分类说明,方便大家使用,同时如果小弟有理解不对的地方,希望大家及时指正,又缺少的部分大家发帖补充完善下吧。
首先明确一个问题 FSMC 有两种控制器
一、NOR memory control
二、NAND/PC CARD memory control
首先 按管脚数分 100和 144的
100的
STM32中100脚的型号的FSMC能否同时使用Bank1和Bank2?
数据手册中有下面一段注释:
For the LQFP100 and BGA100 packages, only FSMC Bank1 and Bank2 are available. Bank1 can only support a multiplexed NOR Flash memory using the NE1 Chip Select. Bank2 can only support a 16- or 8-
bit NAND Flash memory using the NCE2 Chip Select.
因为只有一个片选脚 PD7 (NE1 和NCE2同一个) 所以BANK1 和bank2只能使用一个
可能会有用IO模拟片选的,我觉得对于慢速设备可以这么做,但是对于快速设备这么做就没意义了,失去了FSMC的速度。还有个解决办法就是加译码器 将地址分小 可以达到FSMC挂接多设备的目的。
同时注意到 100的片子想访问SRAM的话 地址线和数据线分开的原因,需要使用NOR地址数据线复用模式。对于144的就不存在这个问题了线够多,我感觉用不上复用模式了。
144PIN:
bank1 有4个片选 NEx(x=1.2.3.4)
BANK2/3 分别使用 NCEx(x=2,3)做片选, 与 NEx(1,2)复用//
BANK4 为PC card 使用NCE4_1/NCE4_2 做片选。其中NCE4_1,与NE3 复用
所以这么看来独立的片选线为5条。
问题总结:
1、DM9000A的接口 (当SRAM用)
首先DM9000的控制实质就是读数据、写数据 只不过是有个CMD 来控制数据是地址还是命令: IOR和IOW是DM9000的读写选择引脚,低电平有效,即低电平时进行读(IOR)写(IOW)操作;AEN是芯片选通引脚,低电平有效,该引脚为低时才能进行读写操作;CMD的命令/数据切换引脚,低电平时读写命令操作,高电平时读写数据操作。
在一款开发板子上看到将dm9000接到BANK1上这是没问题的,只要将一根数据线连CMD 就可以对其操作,但是不建议使用IO来模拟控制CMD ,原因是DM9000快速设备
至于DM9000能不能挂在NAND 控制器,我觉得是不可以的。这点我也不确定
2、LCD 接口
LCD 目前我见到的大多是接到SRAM/NOR控制其上的 非地址锁存的那种。所以不能接到NAND 直接用。
有错的地方大家指正啊。
(未完待续) |