FSMC : flexible static memory controller 灵活静态存储控制器,可用于STM32芯片控制NOR FLASH、PSRAM和NAND FLASH 存储芯片。
功能介绍:
(1)STM32的FSMC 有三个中断源,经过逻辑或连到NVIC单元,
(2)写入FIFO;
(3) 代码可以在除NAND闪存和PC卡外的片外存储器运行;
(4) 目标频率fCLK为HCLK/2,即当系统时钟为72MHz时,外部访问是基于36MHz时钟;系统时钟为
48MHz时,外部访问是基于24MHz时钟。
这里我们使用FSMC的NOR/PSRAM模式控制LCD,所以重点看框图中NOR FLASH 控制信号线部分
时序图:
(1)读:
(2)写:
NADV是在地址、信号线复用时作为锁存信号的,如果复用,则需要连接使用,如果不复用,那么不需要理会。
接着,我们来看一下SSD1289的8080时序图
STM32用普通IO接口也可以进行模拟,但是这样做的话速度慢,尤其是显示数据量大的图片时候,相比于FSMC驱动,IO模拟驱动的效率更低。
2、FSMC模拟8080时序
对比信号线可知,片选、读写使能和数据线都相同,唯独8080信号线是数据命令选择端,而FSMC-NOR信号线是A[25:0],所以,我们可以用A[25:0]中的某一位来地代替此数据命令线。比如说拿A0代替,则是奇数地址时数据线所传输的是数据,而偶地址时,传输的是命令。
具体实现方法便是在程序中利用指针变量向不同的地址单元写入数据。这样,就可以由FSMC模拟出8080接口控制LCD了。
3、触摸屏控制芯片TSC2046
4、红牛开发板参考连接图
6、初始化FSMC模式
注意FSMC中没有对应于LCD中背光BLACK_LIGHT,和复位RESET要么用地址线A25~A0中某一位来模拟,或者用普通的IO。
7、需要添加的库文件
startup/start_stm32f10x_hd.c
CMSIS/core_cm3.c
CMSIS/system_stm32f10x.c
FWlib/misc.c
FWlib/stm32f10x_spi.c
FWlib/stm32f10x_rcc.c
FWlib/stm32f10x_exti.c
FWlib/stm32f10x_gpio.c
FWlib/stm32f10x_fsmc.c
文章评论(0条评论)
登录后参与讨论