【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根HADDR27:0总线进行寻址。

HADDR27:26:用于确定片选。

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

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

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

把HADDR25:0右进行移动1位。将HADDR25:0进行移位这一操作,在初始化FSMC时,如果设置了外部SRAM的数据宽度为16位,则FSMC在向外部SRAM发地址时,会自HADDR25: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读时序分析

相关推荐
茉莉玫瑰花茶14 小时前
Windows 平台下的 UDP 客户端
stm32·单片机·嵌入式硬件
磨十三16 小时前
U-Boot
arm开发·嵌入式硬件
笔夏16 小时前
【移芯平台CAT1模组】烧写固件
stm32·单片机·学习
十月的皮皮16 小时前
STM32从零到量产开发:四路继电器工业控制模块开发— 继电器模块bsp_di.h与 bsp_di.c文件
c语言·stm32·stm32cubemx·hal库
无垠的广袤16 小时前
【RA-Eco-RA4M2开发板】步进电机的串口控制和 LabVIEW 数据采集
单片机·嵌入式硬件·labview
茯苓gao18 小时前
嵌入式开发笔记:QSerialPort 完整使用指南——从基础 API 到工程实战
笔记·嵌入式硬件·qt·学习
wuyk55518 小时前
67.嵌入式C语言进阶:结构体指针实战指南——STM32外设、传感器数据访问的高效技巧
c语言·开发语言·stm32·单片机
Mr+范18 小时前
单片机 ADC 电压与电流检测及电阻选型指南
单片机·嵌入式硬件
西城微科方案开发19 小时前
LCD智能婴儿秤方案
单片机·嵌入式硬件
三佛科技-1341638421220 小时前
灭蚊灯MCU方案开发,FT60E112-RB作为灭蚊灯主控芯片优势
单片机·嵌入式硬件·物联网·智能家居·pcb工艺