您的位置 首页 分销

FSMC常识详解,以及驱动TFTLCD原理

一,FSMC简介FSMC:灵活的静态存储控制器能够与同步或异步存储器和16位PC存储器卡连接STM32的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等

  一,FSMC简介

  FSMC:灵敏的静态存储操控器

  能够与同步或异步存储器和16位PC存储器卡衔接

  STM32的FSMC接口支撑包含SRAM、NAND FLASH、NOR FLASH和PSRAM等存储器

  STM32 407和103是不支撑SD RAM的,429,439支撑SD RAM操作

  二,FSMC驱动LCD原理

    

  FSMC驱动外部SRAM(LCD被作为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接到FSMC地址线A10(A0-A25随意),TFTLCD就被作为一个SRAM运用

  这样TFTLCD成为只要一个地址的SRAM设备,然后完成FSMC驱动TFTLCD

  三,FSMC存储块

  STM32的FSMC支撑8/16/32位数据宽度,咱们运用的LCD为16位,所以设置挑选16位

  FSMC的外部设备地址映像:STM32的FSMC将外部存储器划分为固定巨细为256M字节的四个存储块

    

  如图:

  FSMC分为4块,每块256M字节又被划分为4*64,即四个片选

  NOR / PSRAM运用块1,共256M

  NAND闪存运用块2,3,共512M

  PC卡运用块4,共256M

  所以咱们运用NOR PSRAM驱动TFTLCD

  四,存储块1(Bank1)寄存器介绍

  STM32的FSMC存储块1(Bank1)用于驱动NOR FLASH/SRAM/PSRAM

  Bank1被分为4个区,每个区办理64M字节空间,每个区都有独立的寄存器对所衔接的存储器进行装备。

  Bank1的256M字节空间由28根地址线(HADDR[27:0])寻址。 这儿HADDR,是内部AHB地址总线

  HADDR[25:0]来自外部存储器地址FSMC_A[25:0],而HADDR[26:27]对4个区进行寻址。

  如下图所示:

  阐明:

  HADDR[27:26]是不行手动装备的,当挑选地点区后会主动赋值

  留意:

  1,当Bank1接 8位宽度存储器时:HADDR[25:0] -> FSMC_A[25:0]

  2,当Bank1接16位宽度存储器时:HADDR[25:1] -> FSMC_A[24:0]

  因为内部每个地址对应一个字节,外部设备16位宽,FSMC的一个地址对应两个字节

  即:

  0000对应FSMC_A[0]=0 (2字节)

  0010对应FSMC_A[0]=1 (2字节)

  0100对应FSMC_A[1]=1 (2字节)

  所以对应联系需求除以2,内部右移一位对齐

  此刻最低位没用,拜访最低位需求运用UB/LB

  不管外部接8位/16位宽设备,FSMC_A[0]永久接在外部设备地址A[0]

  五,存储块1(Bank1)形式A读写时序

  STM32的FSMC存储块1支撑的异步突发拜访形式

  包含形式1,形式A~D等多种时序模型,驱动SRAM一般运用形式1或形式A

  咱们运用形式A驱动LCD(作为SRAM运用),形式A支撑读写时序分隔设置

  上一篇说的LCD时序,咱们知道,LCD的读写耗时是不同的.写快读慢

  这儿选用形式A,针对不同的速度,做不同的设置

  形式A读时序:

  形式A写时序:

  ILI9341时序-读写凹凸电平最小持续时刻:

  依据ILI9341时序读写凹凸电平最小持续时刻来装备形式A的读写时序

  六,FSMC相关寄存器介绍

  关于NOR FLASH/PSRAM操控器-存储块1,可经过FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器设置(其间x=1~4,对应4个区)。

  经过这3个寄存器,能够设置FSMC拜访外部存储器的时序参数,拓宽了可选用的外部存储器的速度规模。

  1,SRAM/NOR闪存片选操控寄存器(FSMC_BCRx)

  FSMC_BCRx

  EXTMOD:

  扩展形式使能位,操控是否答应读写不同的时序,需设置为1

  WREN:

  写使能位。咱们要向TFTLCD写数据,需设置为1

  MWID[1:0]:

  存储器数据总线宽度。00,表明8位数据形式;01表明16位数据形式;10和11保存。

  咱们的TFTLCD是16位数据线,需设置WMID[1:0]=01。

  MTYP[1:0]:

  存储器类型。00表明SRAM、ROM;01表明PSRAM;10表明NOR FLASH;11保存。

  咱们把LCD当成SRAM用,需设置MTYP[1:0]=00。

  MBKEN:

  存储块使能位。需设置为1

  2,SRAM/NOR闪存片选时序寄存器(FSMC_BTRx)-读时序操控

  FSMC_BTRx

  ACCMOD[1:0]:

  拜访形式。00:形式A;01:形式B;10:形式C;11:形式D。

  咱们运用形式A,需设置为00

  DATAST[7:0]:

  数据坚持时刻,等于: DATAST(+1)个HCLK时钟周期,DATAST最大为255。

  关于ILI9341相当于RD低电平持续时刻,最大355ns

  关于STM32F1,一个HCLK=13.8ns (1/72M),设置为15,相当于16个HCLK=220.8,加上STM32F1的FSMC功能较低一些,装备为15即可

  关于STM32F4,一个HCLK=6ns(1/168M) ,设置为60(360)。

  ADDSET[3:0]:

  地址树立时刻。表明:ADDSET+1个HCLK周期,ADDSET最大为15。

  对ILI9341来说,这儿相当于RD高电平持续时刻,为90ns。

  STM32F1的FSMC功能较低,即使设置为0,RD也有190ns高电平,所以设置为1

  STM32F1设置为15

  留意:

  假如未设置EXTMOD位,则读写共用FSMC_BTRx时序寄存器

  3,SRAM/NOR闪存写时序寄存器(FSMC_BWTRx)-写时序操控

  FSMC_BWTRx

  ACCMOD[1:0]:

  拜访形式。00:形式A;01:形式B;10:形式C;11:形式D。

  DATAST[7:0]:

  数据坚持时刻,等于: DATAST(+1)个HCLK时钟周期,DATAST最大为255。

  对ILI9341来说,其实便是WR低电平持续时刻,为15ns,不过ILI9320等则需求50ns。

  考虑兼容性,对STM32F1一个HCLK=13.8ns (1/72M),设置为3(4*13.8=55.2);

  对STM32F4,一个HCLK=6ns(1/168M) ,设置为9(9*6=54)。

  ADDSET[3:0]:

  地址树立时刻。表明:ADDSET+1个HCLK周期,ADDSET最大值为1111 = 15。

  对ILI9341来说,这儿相当于WR高电平持续时刻,为15ns。

  考虑兼容ILI9320,STM32F1即使设置为1,WR也有100ns高电平,所以设置为1。

  而对STM32F4,则设置为8(9*6=54)

  七,寄存器组合阐明

  ST官方库寄存器界说中并没有FSMC_BCRx、FSMC_BTRx、FSMC_BWTRx等独自寄存器

  而是将他们进行了一些组合。规则如下:

  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,

  BWTR[1]、BWTR[3]和BWTR[5]保存

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/159769.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部