当前位置:网站首页>STM32——LCD—FSMC原理简介
STM32——LCD—FSMC原理简介
2022-08-03 17:35:00 【三只树懒】
一、FSMC介绍
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASHSH和PSRAM等存储器(不支持SD RAM,只有429、439支持,407、301不支持)。FSMC的框图如下图所示:

FSMC驱动外部SRAM时,外部SRAM的控制一般有:地址线(如A0~A25)、数据线(如D0~D15)、写信号(WE,即WR)、读信号(OE,即RD)、片选信号(CS),如果SRAM支持字节控制,还有UB/LB信号。
TFTLCD的信号包括:RS、D0~D15、WR、RD、CS、RST和BL等,其中真正在操作LCD的时候需要用到的只有:RS、D0~D15、WR、RD和CS。其操作时序和SRAM的控制完全类似,唯一不同的就是TFTLCD有RS信号,但是没有地址信号。
TFTLCD通过RS信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把RS接在A0上面,那么当FSMC控制器写地址0的时候,会使得A0变为0,对TFTLCD来说,就是写命令,而FSMC控制器写地址1的时候,A0将会变为1,对于TFTLCD来说就是写数据了。这样,就把数据和命令区分开了,它们其实就是对应SRAM操作的两个连续地址。当然RS也可以接在其他地址线上,STM32F4把RS接在A6上面。
因此可以把TFTLCD当成一个SRAM来用(将TFTLCD的RS连接到地址线的时候可以当作SRAM
),只不过这个SRAM有2个地址,这就是FSMC可以驱动LCD的原理。
二、NOR PSRAM外设接口
STM32的FSMC支持8/16/32位数据宽度。FSMC的外部设备地址映像,STM32的FSMC将外部存储器划分为固定大小为256M字节的四个存储块。

三、存储块1操作简介
STM32的FSMC存储块1(Bank1)用于驱动NOR FLASH/SRAM/PSRAM,被分为4个区,每个区管理64M字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。Bank1的256M字节空间由28跟地址线(HADDR【27:0】)寻址。这里HADDR是内部AHB地址总线,其中,HADDR【27:0】来自外部存储器地址FSMC_A[25:0],而HADDR[26:27]对4个区进行寻址。

当Bank1接的是16位宽度存储器的时候:HADDR【25:1】—>FSCM_A【24:0】
当Bank1接的是8位宽度存储器的时候:HADDR【25:0】—>FSMC_A【25:0】
不论外部接8位或16位宽设备,FSMC_A[0]永远接在外部设备地址A【0】
STM32的FSMC存储块1支持的异步突发访问模式包括:模式1、模式A~D等多种时序模型,驱动SRAM时一般使用模式1或者模式A。

模式A支持读写时序分开设置,对STM32F4仅写时序DATAST需要+1
四、寄存器介绍
对于NOR FLASH/PSRAM控制器(存储块1),通过FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器设置(其中x=1~4,对应4个区)。通过这3个寄存器,可以设置FSMC访问外部存储器的时序参数,拓宽了可选用的外部存储器的速度范围。

EXTMOD:扩展模式使能位,控制是否允许读写不同的时序,需设置为1。
WREN:写使能位。需要向TFTLCD写数据,该位必须设置为1。
MWID【1:0】:存储器数据总线宽度。00表示8位数据模式;01表示16位数据模式;10和11保留。TFTLCD时16位数据线,设MWID【1:0】=01;
MTYP【1:0】:存储器类型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。将LCD当成SRAM使用需要设置MTYP【1:0】=00;
MBKEN:存储块使能位。需设置为1。

ACCMOD【1:0】:访问模式。00:模式A;01:模式B;10:模式C;11:模式D。
DATAST【7:0】:数据保持时间,等于:DATAST个HCLK时钟周期,DATAST最大为255。对ILI9341来说其实就是RD低电平持续时间,最大为355ns。对STM32F4,一个HCLK=6ns(1/168M),设置为60.
ADDSET【3:0】:地址建立时间。表示ADDSET个HCLK周期,ADDSET最大为15。对ILI9341来说,这里相当于RD低电平持续时间为90ns。STM32F4设置为15。如果未设置EXTMOD位,则读写共用这个时序寄存器。

ACCMOD【1:0】:访问模式。00:模式A;01:模式B;10:模式C;11:模式D。
DATAST【7:0】:数据保持时间,等于:DATAST个HCLK时钟周期,DATAST最大为255。对ILI9341来说,其实就是WR低电平持续时间,为15ns。对于STM32F4,一个HCLK=6ns/(1/168M),设置为9。
ADDSET【3:0】:地址建立时间。表示:ADDSET+1个HCLK周期,ADDSET最大为15。对ILI9341来说,这里相当于持续时间为15ns。对STM32F4设置为8。
FSMC_BCRx和FSMC_BTRx,组合成BTCR[8]寄存器组,它们对应关系如下:
BTCR[0]对应FSMC_BCR1,BTCR[1]对应FSMC_BTR1
BTCR[2]对应FSMC_BCR2,BTCR[3]对应FSMC_BTR2
BTCR[4]对应FSMC_BCR3,BTCR[5]对应FSMC_BTR3
BTCR[6]对应FSMC_BCR4,BTCR[7]对应FSMC_BTR4
FSMC_BWTRx则组合成BWTR[7],它们对应关系如下:
BWTR[0]对应FSMC_BWTR1,BWTR[2]对应FSMC_BWTR2
BWTR[4]对应FSMC_BWTR3,BWTR[6]对应FSMC_BWTR4
BETR[1]、BWTR[3]和BWTR[5]保留,没有用到。
边栏推荐
- CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
- 5. Longest Palindromic Substring
- 九种方法!教你如何读取resources目录下的文件路径
- 【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十一)
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- Detailed explanation of setting HiSilicon MMZ memory and OS memory
- 【Metaverse系列一】元宇宙的奥秘
- JS中对象数组用sort按属性排序
- 广告电商系统开发之会员系统板块
- 【用户运营】用这4个最佳客户服务策略,减少客户流失率
猜你喜欢
随机推荐
mysql之的执行计划
大型企业数据治理的现状和解决方案有哪些参考?_光点科技
腾讯电竞的蓝翔梦
【LeetCode】899. 有序队列
【数据库数据恢复】SqlServer数据库无法读取的数据恢复案例
Web3 安全风险令人生畏?应该如何应对?
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践
【机器学习】机器学习的基本概念/术语2
Description of the functional scenario of "collective storage and general governance" in the data center
Win11系统的显卡驱动安装的详细方法步骤
分享一个开源的USB-CAN工具!
出海,是泡泡玛特的“解药”吗?
Interviews are no longer hanged!This is the correct way to open the seven schemes of Redis distributed locks
003_Kubernetes核心技术
目标检测-YOLOv3理论讲解
sphinx error connection to 127.0.0.1:9312 failed (errno=0, msg=)
LyScript 内存交换与差异对比
SkyWalking概要介绍
EasyExcel implements dynamic column parsing and table storage









