FSMC是Flexible static memory controller(可变静态存储控制器)的简称,是STM32系列采用的一种新型的存储器扩展技术,支持SRAM、Nor Flash、LCD、PSRAM、NAND Flash、PC Card等。只在某些芯片上有,使用前要查看对应的手册确定。
在FSMC的角度来看,外部存储分成了4个固定的大小为256MB的bank。
Bank1分成了4个子bank,每一个64MB大小,并且每个bank都有独立的片选,用来控制Nor Flash、RAM、PSRAM。Bank2和Bank3用来控制NAND Flash。Bank4控制PC Card。
不同的Bank共享了地址、数据、读、写信号,其他信号根据bank的用途不同会有一些差别。
下面介绍下如何通过FSMC点亮LCD。LCD可以看作是一个SRAM,通过Bank1控制。理论上支持8080接口的LCD都可以使用FSMC来点亮(不知是否有例外)。LCD有8位或16位接口的,FSMC的设置需要一致,本文以16位为例。
STM32的设置使用cubeMX很方便,下面是针对FSMC的设置,其他基础设置这里就不罗列了。
- 这里使用了bank1的第四个子bank,片选是NE4;
- 内存类型是LCD接口;
- LCD寄存器选择为A0,其他A1-A24都可以,这本来是存储器寻址信号,这里用来接LCD的RS信号,控制LCD是写命令(低0)还是写数据(高1)。;
- 数据选择16位。
再往下
- 写操作使能;
- 扩展模式Disabled;
- 地址建立时间设置为6;
- 数据建立时间设置为6;
- 总线翻转时间设置为0.
上面建立时间范围如下表所示,实际要根据LCD的时序确定。
除了上面的配置,别忘了一般LCD还有个背光控制引脚。
〖特别声明〗:本文内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。如有侵犯您的原创版权或者图片、等版权权利请告知 wzz#tom.com,我们将尽快删除相关内容。