【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读时序分析

相关推荐
xuxg20053 小时前
4G 模组 AT 命令解析框架课程正式发布
stm32·嵌入式·at命令解析框架
CODECOLLECT5 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen5 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠8 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
Lsir10110_8 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
深圳市九鼎创展科技10 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计10 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
風清掦12 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习
小龙报12 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业12 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件