STM32——外部SRAM实验

一、IS62WV51216简介

1、IS62WV51216是ISSI公司生产的一颗16位宽512K(512*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。

2、IS62WV51216特点:

1、高速。具有45ns/55ns访问速度。

2、低功耗。操作时:36mW;待机时:12uW

3、兼容TTL电平

4、全静态操作。不需要刷新和时钟电路

5、三态输出

6、字节控制功能。支持高/低字节控制

3、IS62WV51216框图:

图中A0~18为地址线,总共19根地址线(即2~19=512K,1K=1024):I/00~15为数据线,总共16根数据线。CS2和CS1都是片选信号,不过CS2是高电平有效,CS1是低电平有效;OE是输出使能信号(读信号);WE为写使能信号;UB和LB分别是高字节控制和低字节控制信号;

4、IS62WV51216读时序:

上图为:IS62WV51216芯片的8080并口读时序。

重点时序:1)读周期时间(tRC)2)地址建立时间(tAA)3)OE建立时间(tDOE)

(开发板使用55ns的IS62WV51261,tRC=55ns,tAA=55ns(MAX),tDOE=25ns(MAX))

5、IS62WV51261写时序:

上图为IS62WV51261芯片的8080并口写时序。

重点时序:1)写周期时间(tWC)2)地址建立时间(tSA)3)WE脉宽(tPWE)

(开发板使用55ns的IS62WV51261,tWC=55ns,tSA=0ns,tPWE=45ns(min))

二、FSMC简介

1、FSMC介绍

FSMC,即静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32的FSMC接口支持包括:SRAM、NAND FLASH、NOR FLASH和PSRAM等存储器(不包括SDRAM)。FSMC的框图如下图所示:

2、FSMC驱动IS62WV51216原理

FSMC驱动外部SRAM时,外部SRAM的控制一般有:地址线(如A0~A25)、数据线(如D0~D15)、写信号(WE,即WR)、读信号(OE,即RD)、片选信号(CS),如果SRAM支持字节控制,那么还有UB/LB信号。而前面介绍的:I/O0~I/O15、A0~A18、OE、WE、CS、UB、LB等,我们将这些信号依次连接STM32 FSMC接口的D0~D15、A0~A18、OE、WE、CS、UB、LB等信号即可。

3、NOR PSRAM外设接口

STM32的FSMC支持8/16位数据宽度,这里用到的SRAM是16位宽度的,所以在设置的时候,选择16位宽就可以。FSMC的外部设备地址映像,STM32的FSMC将外部存储器划分为固定大小为256M字节的四个存储块。

4、存储块1操作简介

STM32的FSMC存储块1(Bank1)用于驱动NOR FLASH/SRAM/PSRAM,被分为4个区,每个区管理64M字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。Bank1的256M字节空间由28根地址线(HADDR[27:0])寻址。

这里HADDR,是内部AHB地址总线,其中,HADDR[25:0]来自外部存储器地址FSMC_A[25:0],而HADDR[26:27]对4个区进行寻址。如下表所示:

当Bank1接的是16位宽度存储器的时候:HADDR[25:1]-->FSMC_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驱动SRAM的图:

模式A支持读写时序分开设置!对STM32F4仅写时序DATAST需要+1

5、寄存器介绍

对于NOR FLASH/PSRAM控制器(存储块1),通过FSMC_BCRx、FSMC_TRx和FSMC_BWTRx寄存器设置(其中x=1~4,对应4个区)。通过这3个寄存器,可以设置FSMC访问外部存储器的时序参数,拓宽了可选用的外部存储器的速度范围。

 

EXTMOD:扩展模式使能位,控制是否允许读写不同的时序,设置为0

WREN:写使能位。需要向SRAM写数据,故该位必须设置为1

MWID[1:0]:存储器数据线总线宽度。00,表示8位数据模式;01,表示16位数据模式;10和11保留。我们的SRAM是16位数据线,所以设置MWID[1:0]=01

MTYP[1:0]:存储器类型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。我们驱动的芯片为SRAM,所以设置MTYP[1:0]=00

MBKEN1:存储块使能位。设置为1。

 

ACCMOD[1:0]:访问模式。00:模式A;01:模式B;10:模式C;11:模式D

DATAST[7:0]:数据保持时间,等于:DATAST(+1)个HCLK时钟周期,DATAST最大为55ns。对STM32F1,一个HCLK=13.8ns(1/72M),设置为3;对于STM32F4,一个HCLK=6ns(1/168M),设置为8。

ADDSET[3:0]:地址建立时间。表示:ADDSET(+1)个HCLK周期,ADDSET最大为15.对IS62WV51216来说,访问周期最快为55ns,而前面的设置已经可以保证访问周期不小于55ns,因此这个地址建立时间,直接设置为0即可

(因为设置了EXTMOD位,所以读写时序共用这个时序寄存器)

三、FSMC寄存器组合说明

在ST官方库提供的寄存器定义里面,并没有定义FSMC_BCRx、FSMC_BTRx、FSMA_BWTRx等这些独立的寄存器,而是将他们进行了一些组合。规律如下:

1、FSMC_BCRx和FSMC_BTRx,组合成BTRC[8]寄存器组:

BTCR[0]对应FSMC_BCR1,BTR[1]对应FSMC_BTR1

BTCR[2]对应FSMC_BCR2,BTR[3]对应FSMC_BTR2

BTCR[4]对应FSMC_BCR3,BTR[5]对应FSMC_BTR3

BTCR[6]对应FSMC_BCR4,BTR[7]对应FSMC_BTR4

2、FSMC_BWTRx则组合成BWTR[7]:

BWTR[0]对应FSMC_BWTR1,BWTR[2]对应FSMC_BWTR2

BWTR[4]对应FSMC_BWTR3,BWTR[6]对应FSCM_BWTR4

BWTR[1]、BWTR[3]和BWTR[5]保留,没有用到

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值