初学 FSMC - 扩展外部SRAM(一)

1. SRAM控制原理

​ STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。 STM32F407系列芯片可以扩展外部SRAM用作内存 。

  • 型号为IS62WV51216的SRAM芯片外观 :

image-20240326163356033

  • SRAM芯片的内部功能框架

    image-20240326163521978

    ​ A0-A18有19位,寻址范围为219=28x1024=512K 。I/O0-I/O7控制低字节,I/O8-I/O15控制高字节,

    所以512*16刚好可以全部寻址,512行。19个地址位用于寻址,高低数据位用于传输数据

    类似与:

    image-20240326164028184

  • SRAM信号线

    image-20240326163603016

​ SRAM的控制比较简单, 只要控制信号线使能了访问, 从地址线输入要访问的地址, 即可从I/O数据线写入或读出数据。

  • SRAM的存储矩阵

    image-20240326163700663

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

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

2. SRAM的读写流程

  • 对SRAM进行数据时,它各个信号线的时序流程如下:

image-20240326164422113

  • 对SRAM进行数据时,它各个信号线的时序流程如下:

image-20240326164455299

3. SRAM的读写流程

读写时序的流程很类似,过程如下:
(1) 主机使用地址信号线发出要访问的存储器目标地址;

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

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

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

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

4. SRAM的读写时序参数

image-20240326164623137

image-20240326164639523

视频推荐

[FSMC-扩展外部SRAM](【野火F407开发板-霸天虎视频-【高级篇】】 https://www.bilibili.com/video/BV16t411D7m3/?share_source=copy_web&vd_source=33eab7a0768c0a7ed227e8f0668349ef)

posted @ 2024-03-26 16:54  L*K  阅读(33)  评论(0编辑  收藏  举报