【STM32自学笔记-FSMC-扩展SRAM】_fsmc 配置

SRAM内部包含的存储阵列,可以把它理解成一张表格,数据就填在这张表格上。和表格查找一样,指定一个行地址和列地址,就可以精确地找到目标单元格,这是SRAM芯片寻址的基本原理。这样的每个单元格被称为存储单元,而这样的表则被称为存储矩阵。

6.3 地址译码器、列IO和IO数据电路

地址译码器把N根地址线转换成2N根信号线,每根信号线对应一行或一列存储单元,通过地址线找到具体的存储单元,实现寻址。本实例中的使用的SRAM比较小,没有列地址线,它的数据宽度为16位,即一个行地址对应2字节空间,框图中左侧的A0-A18是行址信号,18根地址线一共可以表示218=28x1024=512K行存储单元,所以它一共能访问512Kx16bits大小的空间。访问时,使用UB#或LB#线控制数据宽度。

6.4 控制电路

控制电路主要包含了片选、读写使能以及上面提到的宽度控制信号UB#和LB#。利用CS2或CS1#片选信号,可以把多个SRAM芯片组成一个大容量的内存条。OE#和WE#可以控制读写使能,防止误操作。

七 、SRAM读写流程

对SRAM读数据流程

对SRAM写数据流程

读写时序的流程很类似,过程如下:

(1)  主机使用地址信号线发出要访问的存储器目标地址;

(2)  控制片选信号CS1#及CS2#使能存储器芯片;

(3)  若是要进行读操作,则控制读使能信号OE#表示要读数据,若进行写操作则控制写使能信号WE#表示要写数据;

(4)  使用掩码信号LB#与UB#指示要访问目标地址的高、低字节部分;

(5)  若是读取过程,存储器会通过数据线向主机输出目标数据,若是写入过程,主要使用数据线向存储器传输目标数据。

八、FSMC案例-扩展SRAM

//1个HCLK时钟周期1/72M=0.138*10^-8s=13.8ns
//写时序时间要求
//1.(ADDSET+1)+(DATAST+1)>55ns   13.8+41.4=55.2ns>55ns
//2.(DATAST+1)>40ns              2+1=41.4ns
//3.(ADDSET+1)>0ns               0+1=13.8ns

//读时序时间要求
//1.(ADDSET+1)+(DATAST+1)+2HCLK>55ns   
//2.(DATAST+1)>25ns    1+1=27.6ns
//3.(ADDSET+1)>0ns     0+1=13.8ns

SRAM.H
#ifndef __SRAM_H
#define __SRAM_H

#define SRAM_BASE_ADDR   (0X68000000)
#define SRAM_SIZE        (1*102481024)
#define SRAM_End_ADDR     (SRAM_BASE_ADDR+SRAM_SIZE)


//A0-F0
#define  FSMC_A0_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A0  GPIO_Pin_0
#define  FSMC_A0       GPIOF
//A1-F1
#define  FSMC_A1_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A1  GPIO_Pin_1
#define  FSMC_A1       GPIOF
//A2-F2
#define  FSMC_A2_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A2  GPIO_Pin_2
#define  FSMC_A2       GPIOF
//A3-F3
#define  FSMC_A3_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A3  GPIO_Pin_3
#define  FSMC_A3       GPIOF
//A4-F4
#define  FSMC_A4_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A4  GPIO_Pin_4
#define  FSMC_A4       GPIOF
//A5-F5
#define  FSMC_A5_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A5  GPIO_Pin_5
#define  FSMC_A5       GPIOF
//A6-F12
#define  FSMC_A6_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A6  GPIO_Pin_12
#define  FSMC_A6       GPIOF
//A7-F13
#define  FSMC_A7_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A7  GPIO_Pin_13
#define  FSMC_A7       GPIOF
//A8-F14
#define  FSMC_A8_CLK   RCC_APB2Periph_GPIOF
#define  FSMC_GPIO_A8  GPIO_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值