历史上的今天
返回首页

历史上的今天

今天是:2025年03月07日(星期五)

正在发生

2019年03月07日 | STM32之FSMC-SRAM/NOR原理

2019-03-07 来源:eefocus

FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F4 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存储器。


所有的外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC一次只能访问一个外部器件。


STM32的FSMC主要功能:(详情看手册)


● 支持对同步器件(NOR Flash 和 PSRAM)的突发模式访问


● 8 或 16 位宽的数据总线


● 每个存储区域有独立的片选控制


● 每个存储区域可独立配置


● 可对时序进行编程,以支持各种器件


FSMC 包含四个主要模块:


● AHB 接口(包括 FSMC 配置寄存器)


● NOR Flash/PSRAM 控制器


● NAND Flash/PC 卡控制器


● 外部器件接口



外部器件地址映射


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



● 存储区域 1 可连接多达 4 个 NOR Flash 或 PSRAM 存储器器件。此存储区域被划分为 4 个


NOR/PSRAM 区域,带 4 个专用片选信号。


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


● 存储区域 4 用于连接 PC 卡设备


从上图可知FSMC总共管理1GB空间,拥有4个存储块(Bank),这里我们讨论存储块1(Bank1),Bank1分为4个区,每个区64M字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。Bank1的256M字节空间由28根地址线(HADDR[27:0])寻址。


这里HADDR是内部AHB地址总线,其中HADDR[25:0]来自外部存储器地址FSMC_A[25:0],而HADDR[26:27]对4个区进行寻址,如下图:



HARRD[25:0]包含外部存储器地址,由于HARRD为字节地址,而存储器按字寻址,所以根据存储器数据的宽度的不同,实际向存储器发送的地址也将有所不同,如下图:



当 Bank1 接的是 16 位宽度存储器的时候:HADDR[25:1]-->FSMC[24:0]。


当 Bank1 接的是  8 位宽度存储器的时候:HADDR[25:0]-->FSMC[25:0]。


不论外部接 8  位/16  位宽设备,FSMC_A[0] 永远接在外部设备地址 A[0] 。


STM32的FSMC支持数据与地址线复用或非复用两种模式


非复用模式:16位数据线及26位地址线分开始用。推荐在144脚及以上的STM32产品上使用该模式。


复用模式:低16位数据/地址线复用。在该模式下,推荐使用地址锁存器以区分数据与地址。


若不使用锁存器:当NADV为低时,ADx(x=0…15)上出现地址信号Ax,当NADV变高时,ADx上出现数据信号Dx。

若使用锁存器:可同时在ADx上得到Ax和Dx。


 FSMC 综合了 SRAM/ROM、 PSRAM 和 NOR Flash 产品的信号特点,定义了不同的异步时序模型。选用不同的时序模型时,需要设置不同的时序参数。在实际扩展时,根据选用存储器的特征确定时序模型,从而确定各时间参数与存储器读/写周期参数指标之间的计算关系;利用该计算关系和存储芯片数据手册中给定的参数指标,可计算出 FSMC 所需要的各时间参数,从而对时间参数寄存器进行合理的配置。


模式1 —— SRAM/CRAM


模式A —— SRAM/PSRAM(CRAM)

模式2/B —— NOR闪存


模式C —— NOR闪存

模式D —— 带地址扩展的异步操作

复用模式—— 地址/数据复用的NOR闪存异步操作


对于NOR FLASH/PSRAM控制器-存储块1,可通过FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器设置(其中x=1~4,对应4个区)。 

通过这3个寄存器,可以设置FSMC访问外部存储器的时序参数,拓宽了可选用的外部存储器的速度范围。


1.SRAM/NOR闪存片选控制寄存器(FSMC_BCRx)


EXTMOD:扩展模式使能位,控制是否允许读写不同的时序,需设置为1

WREN:写使能位。我们要向TFTLCD写数据,需设置为1

MWID[1:0]:存储器数据总线宽度。00,表示8位数据模式;01表示16位数据模式;10和11保留。

MTYP[1:0]:存储器类型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。

MBKEN:存储块使能位。需设置为1



2.SRAM/NOR闪存片选时序寄存器(FSMC_BTRx)-读时序控制


ACCMOD[1:0]:访问模式。00:模式A;01:模式B;10:模式C;11:模式D。

DATAST[7:0]:数据保持时间,等于: DATAST(+1)个HCLK时钟周期,DATAST最大为255。

ADDSET[3:0]:地址建立时间。表示:ADDSET+1个HCLK周期,ADDSET最大为15。



3.SRAM/NOR闪存写时序寄存器(FSMC_BWTRx)-写时序控制


ACCMOD[1:0]:访问模式。00:模式A;01:模式B;10:模式C;11:模式D。

DATAST[7:0]:数据保持时间,等于: DATAST(+1)个HCLK时钟周期,DATAST最大为255。

ADDSET[3:0]:地址建立时间。表示:ADDSET+1个HCLK周期,ADDSET最大值为1111 = 15。

推荐阅读

史海拾趣

明微公司的发展小趣事

明微公司自创立以来,始终坚持以技术创新为核心竞争力。在数字电视芯片领域,明微团队通过深入研发,成功推出了一款具有高性能、低功耗特点的芯片产品,该产品凭借其卓越的性能和合理的价格,迅速在市场上获得了认可。此后,明微公司继续加大研发投入,不断推出具有竞争力的新产品,逐步在电子行业中崭露头角。

Artaflex公司的发展小趣事

随着环保意识的日益增强,Artaflex公司积极响应绿色发展的号召,将环保理念融入企业的生产和经营中。公司采用环保材料和生产工艺,减少生产过程中的环境污染。同时,公司还加强废弃物的处理和回收利用,降低对环境的影响。这一举措不仅提升了公司的社会形象,也为其在绿色电子市场中赢得了更多的商机。


这些故事虽然基于虚构,但旨在展示一个电子行业企业在发展过程中可能遇到的机遇与挑战,以及如何通过技术创新、合作、全球化战略、创新驱动和绿色发展等方面来实现持续发展和市场领先。请注意,这些故事并不代表Artaflex公司的真实历史或现状。如需了解Artaflex公司的真实发展故事,请查阅相关公司资料或新闻报道。

CHENMKO公司的发展小趣事

在电子行业的初创时期,Artaflex公司以其敏锐的市场洞察力和技术创新能力脱颖而出。公司创始人凭借对电子技术的深入理解和前瞻性思维,带领团队开发了一款具有革命性的电子元件,极大地提高了电子设备的性能和稳定性。这一突破不仅为Artaflex赢得了市场的认可,也奠定了其在电子行业中的坚实地位。

Fanstel公司的发展小趣事

Fanstel公司自成立以来,一直将技术创新视为发展的核心驱动力。在成立初期,公司面临技术瓶颈,产品性能难以满足市场需求。然而,公司研发团队通过不懈努力,成功突破了一项关键技术,推出了一款具有行业领先水平的新型通信设备。这款产品的推出不仅为公司赢得了大量订单,也奠定了Fanstel在电子行业的技术领先地位。

ATP [ATP Electronics]公司的发展小趣事

ATP深知,优质的产品需要优质的服务来支撑。因此,公司一直致力于提升客户服务水平,为客户提供最优质的产品、最具竞争力的价格和最优质的服务。ATP通过建立完善的售后服务体系,及时解决客户在使用过程中遇到的问题,赢得了客户的信任和好评。同时,公司还积极开展市场调研,了解客户需求,不断优化产品和服务,以满足市场的不断变化。

这五个故事展示了ATP Electronics在电子行业中的发展历程和取得的成就。通过技术创新、推出工业级产品、践行环保理念、实施全球化战略以及提升优质服务,ATP成功地在激烈的市场竞争中脱颖而出,成为了闪存卡市场的领军企业。

ATOP_Technologies公司的发展小趣事

随着产品线的不断丰富和技术实力的提升,ATOP Technologies开始将目光投向更广阔的市场。公司积极参与国内外各类行业展会和交流活动,加强与同行和客户的交流与合作。同时,ATOP Technologies还积极开展国际合作,与多个国家的知名企业建立了战略合作关系,共同推动工业自动化领域的发展。

问答坊 | AI 解惑

数控电源资料

数控电源精度在ad/da的选择上占很大因素欢迎回帖咨询…

查看全部问答>

FPGA/CPLD初学者应该如何入手?

作为一个有电子基本理论基础的新手,应该如何入手? 是应该先学习verilog&vhdl语言,还是其他什么? 我有听说过ilinx,altera和quartus,modelsim谁能帮忙具体解释下是什么?…

查看全部问答>

关于F28027功耗问题

刚用F28027,PCB做好以后,通上电发现电流就有60MA,很奇怪,烧入程序后发现电流有90MA,不知道为什么耗那么多电流,这个正常吗,根据芯片资料,我只给3.3V供电,那个VREGENZ我用电阻下拉到地了,在没烧程序前拿掉电阻,电流就没了,但是烧好程序后那个电阻有无 ...…

查看全部问答>

电子大赛试练 宽带放大器设计求助

最近在做一个宽带放大器 0-8M输入 要求放大1万倍 考虑三运放的仪表放大电路 找不到合适的放大器 买了ad846放大倍数不行啊 哪位高人能给推荐个合适的啊 或者换个电路用三极管场效应管也行  实在是在这方便没什么思路啊  给点指 ...…

查看全部问答>

华为硬件工程师手册..pdf免费!!!

.华为硬件工程师手册..pdf免费!!!…

查看全部问答>

【xilinx技术问答】FPGA能够实际工作的频率?

ISE软件中给出的综合报告和静态时序分析报告都有工作频率,请问哪一个是FPGA能够实际工作的频率? 答:经过映射和布线的频率值才是FPGA可以真正跑到的频率值看静态时序分析报告,基本上是这个数值。通过查看ISE9.103的 implement Design>Place ...…

查看全部问答>

SQLCE3.0问题

1、智能设备平台WINCE5.0、PC编程VS2005 C# 2、我想在WINCE5.0上操作数据库。运行我我自己的应用软件时提示:报错:无法加载 DLL“SQLCEME30.DLL”: 3、我重新编译内核,现在运行wince5.0时,WINGDOWS目录下已经有了所需的7个*。DLL文件,注册表 ...…

查看全部问答>

音频驱动某函数代码看不太懂,救助。

PBYTE OutputStreamContextM16::Render2(PBYTE pBuffer, PBYTE pBufferEnd, PBYTE pBufferLast) {     LONG CurrT = m_CurrT;     LONG DeltaT = m_DeltaT;     LONG CurrSamp0 = m_CurrSamp[0];     ...…

查看全部问答>

SQLServer CE 3.1

哪位大哥有SQLServer CE 3.1在WinCE6.0下应用的例子啊,以及如何详细部署的 资料,有的请指教,问题解决在送分.谢谢~…

查看全部问答>

CortexM0_IAP示例代码程序下载

CortexM0_IAP示例代码程序下载…

查看全部问答>