【FSMC控制器(灵活的静态存储控制器)与SRAM】

FSMC

NOR/PSRAM控制器与SRAM引脚连接

IS61LV25616SRAM,其寻址范围为256K,每个地址空间的数据存储大小为16bit,也就是两个字节。所以IS61LV25616SRAM的容量为256K* 2 = 512K个字节。

外部器件地址映射(NOR/PSRAM)

从FSMC的角度,外部存储器被划分为4个固定大小的存储区域,每个存储区域的大小为256MB。Bank1

存储区域1(Bank1),可连接多达4个NOR Flash或PSRAM存储器器件,带4个专用片选信号Bank2、Bank3

存储区域2(Bank2)和3(Bank3)用于连接NAND Flash器件,每个存储区域一个器件

Bank4

存储区域4(Bank4)用于连接PC卡设备。

HADDR与FSMC地址信号线

HADDR总线是转换到外部存储器的内部AHB总线,FSMC每个BANK的大小是256M,由28根HADDR[27:0]总线进行寻址。

HADDR[27:26]:用于确定片选。

HADDR[25:0]包含外部存储器地址,由于HADDR为字节地址,地址空间存储的数据大小是字节,如果外部存储器SRAM的数据宽度也刚好为字节时,HADDR的地址数据和外部SRAM的地址数据就正好是一一对应的关系。

倘若外部存储器SRAM的数据宽度是16bit,同样,我们向0x6800 0000地址进行数据写入时,就是在向外部SRAM的地址0写数据。我们向0x6800 0001地址进行数据写入时,就是在向外部SRAM的地址1写数据。

我们向0x6800 0000地址进行数据写入时,就是在向外部SRAM的地址0写数据。我们向0x6800 0001地址进行数据写入时,就是在向外部SRAM的地址1写数据。这样会造成内存空间浪费。

把HADDR[25:0]右进行移动1位。将HADDR[25:0]进行移位这一操作,在初始化FSMC时,如果设置了外部SRAM的数据宽度为16位,则FSMC在向外部SRAM发地址时,会自HADDR[25:0] >> 1。

同样以0x68000000地址为例,0x6800 0000地址进行数据写入时,将它分解成二进制是0110 10000000 0000 0000 0000 0000 0000,在外部SRAM看来,10000000 00000000 0000 0000 0000,也就是地址0;0x6800 0001地址进行数据写入时,将它分解成二进制是0110 1000 0000 0000 0000 0000 00000001,在外部SRAM看来,1000 0000 00000000 0000 0000 0001仍然是地址0。

通过NBL信号线来确定写入的高/低位

NOR/PSRAM控制器访问模式

FSMC的NOR/PSRAM控制器有三类寄存器,片选控制寄存器(FSMC_BCRx)、片选时序寄存器(FSMC_BTRx)、写入时序寄存器(FSMC_BWTRx)。x的范围是1 -4。

FSMC的模式

扩展模式

扩展模式简单来说,就是存储器的读和写入是否需要不同的时序参数,若读数据和写入数据所需要的时序参数相差太大,则需要使能扩展模式。扩展模式由FSMC_BCRx寄存器下的EXTMOD位控制。

模式1读时序分析

ADDSET,叫做地址建立时间,为发出地址信号到给出有效数据的时间,需要ADDSET个HCLK时钟周期。

DATAST,数据阶段的持续时间,读使能信号接收到给出有效数据时间。

BUSTURN,总线周转阶段持续时间。

ADDSET,接收到地址信号到给出有效数据的时间,也就是这里的tAA;

DATAST,读使能信号接收到给出有效数据时间,就该是tDOE。

模式1写时序分析

例:IS61LV25616读/写时序参数

读时序参数:

ADDSET tAA:Max = 10ns。DATAST tDOE:Max = 4ns。

写时序参数:

ADDSET tSA:Min = 0ns;DATAST tPWE1:Min = 8ns;

模式1下,读/写的时序参数皆为FSMC_BTRx寄存器所设置的时序参数ADDSET由FSMC_BTRx寄存器下的ADDSET位进行设置,设置范围0 --15个HCLK;DATAST由FSMC_BTRx寄存器下的DATAST进行设置,设置范围1 --255个HCLK。

使用168MHz的AHB总线时钟,其一个HCLK时钟周期大约为5.95ns。所以读时序参数的ADDSET的可设置的合理范围为1~15,DATAST的为2~255;写时序参数的ADDSET的可设置合理范围为0 ~ 15,DATAST的为2~255。

使用模式1访问IS61LV25616

模式A读时序分析

相关推荐
爱喝纯牛奶的柠檬11 小时前
基于STM32的4*4矩阵软键盘驱动
stm32·嵌入式硬件·矩阵
电子工程师成长日记-C5111 小时前
51单片机低频信号发生器
单片机·嵌入式硬件·51单片机
逐步前行12 小时前
STM32_DMA_寄存器操作
stm32·单片机·嵌入式硬件
Funing713 小时前
无法打开 源 文件 “esp_err.h“
嵌入式硬件·esp32
Hello World . .14 小时前
51单片机基础外设:中断、定时器/计数器(PWM控制蜂鸣器、电机)
单片机·嵌入式硬件·51单片机
FakeOccupational15 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存结构图 + MPU内存保护单元 + Cache基本操作 + Cache&DMA 时序图
笔记·stm32·缓存
LCG元15 小时前
基于STM32CubeMX的HAL库串口通信与DMA传输深度优化
stm32·单片机·嵌入式硬件
嵌入小生00716 小时前
硬件 --- GPIO/中断/定时器/蜂鸣器
单片机·嵌入式硬件·定时器·pwm·gpio·蜂鸣器·中断
forAllforMe16 小时前
LAN9252 从机模式寄存器的配置代码示例
stm32·单片机·嵌入式硬件
不想起床&16 小时前
51单片机
单片机·嵌入式硬件·51单片机