您的位置 首页 主动

STM32FSMC机制FlaSh存储器扩展

STM32作为新一代ARM Cortex-M3核处理器,其卓越的性能和功耗控制能够适用于广泛的应用领域;而其特殊的可变静态存储技术FSMC具有高度的灵活性,对于存储容量要求较高的嵌入式系统设计,能够在

引 言

STM32是ST(意法半导体)公司推出的依据ARM内核Cortex-M3的32位微操控器系列。Cortex-M3内核是为低功耗和价格灵敏的运用而专门规划的,具有杰出的能效比和处理速度。经过选用Thumb-2高密度指令集,Cortex-M3内核降低了体系存储要求,一起快速的中止处理可以满意操控范畴的高实时性要求,使依据该内核规划的STM32系列微操控器可以以更优越的性价比,面向更广泛的运用范畴。

STM32系列微操控器为用户供给了丰厚的挑选,可适用于工业操控、智能家电、修建安防、医疗设备以及消费类电子产品等多方位嵌入式体系规划。STM32系列选用一种新式的存储器扩展技能——FSMC,在外部存储器扩展方面具有共同的优势,可依据体系的运用需求,方便地进行不同类型大容量静态存储器的扩展。

1 FSMC机制

FSMC(Flexihie Static Memory Controller,可变静态存储操控器)是STM32系列中内部集成256 KB以上FlaSh,后缀为xC、xD和xE的高存储密度微操控器特有的存储操控机制。之所以称为“可变”,是因为经过对特别功用寄存器的设置,FSMC可以依据不同的外部存储器类型,宣布相应的数据/地址/操控信号类型以匹配信号的速度,然后使得STM32系列微操控器不只可以运用各种不同类型、不同速度的外部静态存储器,并且可以在不添加外部器材的情况下一起扩展多种不同类型的静态存储器,满意体系规划对存储容量、产品体积以及本钱的归纳要求。

1.1 FSMC技能优势

①支撑多种静态存储器类型。STM32经过FSMC町以与SRAM、ROM、PSRAM、NOR Flash和NANDFlash存储器的引脚直接相连。
②支撑丰厚的存储操作办法。FSMC不只支撑多种数据宽度的异步读/写操作,并且支撑对NOR/PSRAM/NAND存储器的同步突发拜访办法。

③支撑一起扩展多种存储器。FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。当体系中扩展和运用多个外部存储器时,FSMC会经过总线悬空推迟时刻参数的设置,避免各存储器对总线的拜访抵触。

④支撑更为广泛的存储器类型。经过对FSMC的时刻参数设置,扩展了体系中可用存储器的速度规模,为用户供给了灵敏的存储芯片挑选空间。

⑤支撑代码从FSMC扩展的外部存储器中直接运转,而不需求首要调入内部SRAM。

1.2 FSMC内部结构

STM32微操控器之所以可以支撑NOR Flash和NAND Flash这两类拜访办法彻底不同的存储器扩展,是因为FSMC内部实践包括NOR Flash和NAND/PC Card两个操控器,别离支撑两种天壤之别的存储器拜访办法。在STM32内部,FSMC的一端经过内部高速总线AHB衔接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的拜访信号发送到AHB总线后,经过FSMC转化为契合外部存储器通讯规约的信号,送到外部存储器的相应引脚,完成内核与外部存储器之间的数据交互。FSMC起到桥梁作用,既可以进行信号类型的转化,又可以进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有差异。

1.3 FSMC映射地址空间

FSMC办理1 GB的映射地址空间。该空间划分为4个巨细为256 MB的BANK,每个BANK又划分为4个64 MB的子BANK,如表1所列。FSMC的2个操控器办理的映射地址空间不同。NOR Flash操控器办理第1个BANK,NAND/PC Card操控器办理第2~4个BANK。因为两个操控器办理的存储器类型不同,扩展时应依据选用的存储设备类型确认其映射方位。其间,BANK1的4个子BANK具有独立的片选线和操控寄存器,可别离扩展一个独立的存储设备,而BANK2~BANK4只要一组操控寄存器。

2 FSMC扩展NOR Flash装备

SRAM/ROM、NOR Flash和PSRAM类型的外部存储器都是由FSMC的NOR Flash操控器办理的,扩展办法根本相同,其间NOR Flash最为杂乱。经过FSMC扩展外部存储器时,除了传统存储器扩展所需求的硬件电路外,还需求进行FSMC初始化装备。FSMC供给很多、详尽的可编程参数,以便可以灵敏地进行各种不同类型、不同速度的存储器扩展。外部存储器能否正常作业的关键在于:用户能否依据选用的存储器类型,对装备寄存器进行合理的初始化装备。

(1)确认映射地址空间

依据选用的存储器类型确认扩展运用的映射地址空间。NOR Flash只能选用BANK1中的4个子BANK。选定映射子BANK后,即可确认以下2方面内容:

①硬件电路中用于选中该存储器的片选线FSMC_NEi(i为子BANK号,i=1,…,4);

②FSMC装备中用于装备该外部存储器的特别功用寄存器号(如表1所列)。

(2)装备存储器根本特征

经过对FSMC特别功用寄存器FSMC_BCRi(i为子BANK号,i=1,…,4)中对应操控位的设置,FSMC依据不同存储器特征可灵敏地进行作业办法和信号的调整。依据选用的存储器芯片确认需求装备的存储器特征,首要包括以下方面:

①存储器类型(MTYPE)是SRAM/ROM、PSRAM,仍是NOR FlaSh;

②存储芯片的地址和数据引脚是否复用(MUXEN),FSMC可以直接与AD0~AD15复用的存储器相连,不需求添加外部器材;

③存储芯片的数据线宽度(MWID),FSMC支撑8位/16位两种外部数据总线宽度;

④关于NOR Flash(PSRAM),是否选用同步突发拜访办法(B URSTEN);

⑤关于NOR Flash(PSRAM),NWAIT信号的特性阐明(WAITEN、WAITCFG、WAITPOL);

⑥关于该存储芯片的读/写操作,是否选用相同的时序参数来确认时序联系(EXTMOD)。

(3)装备存储器时序参数

FSMC经过运用可编程的存储器时序参数寄存器,拓宽了可选用的外部存储器的速度规模。FSMC的NORFlash操控器支撑同步和异步突发两种拜访办法。选用同步突发拜访办法时,FSMC将HCLK(体系时钟)分频后,发送给外部存储器作为同步时钟信号FSMC_CLK。此刻需求的设置的时刻参数有2个:

①HCLK与FSMC_CLK的分频系数(CLKDIV),可以为2~16分频;

②同步突发拜访中取得第1个数据所需求的等候推迟(DATLAT)。

关于异步突发拜访办法,FSMC首要设置3个时刻参数:地址树立时刻(ADDSET)、数据树立时刻(DATAST)和地址坚持时刻(ADDHLD)。FSMC归纳了SRAM/ROM、PSRAM和NOR Flash产品的信号特色,界说了4种不同的异步时序模型。选用不同的时序模型时,需求设置不同的时序参数,如表2所列。在实践扩展时,依据选用存储器的特征确认时序模型,然后确认各时刻参数与存储器读/写周期参数目标之间的核算联系;运用该核算联系和存储芯片数据手册中给定的参数目标,可核算出FSMC所需求的各时刻参数,然后对时刻参数寄存器进行合理的装备。

3 STM2扩展S29GL系列NOR Flash实例

3.1 S29GL系列NOR Flash简介

Spansion公司的S29GL系列芯片是选用90nm技能制作的高集成度NOR Flash存储芯片,供给16~128 MB可选容量,支撑最快25 ns的页拜访速度和11O ns的随机拜访速度,带有最大64字节的写缓冲区,以供给更快、更高效的编程,是嵌入式体系规划中大容量存储器扩展的抱负挑选。本文选用的类型为S29GL512P,容量为512×64K字(总容量64 MB),扩展到NOR Flash操控器办理的BANK1的第2个子BANK。

3.2 STM32与S29GL512P的电路衔接

S25GL512P可经过操控引脚BYTE挑选对芯片的拜访单位(字/字节),差异在于:

①关于芯片引脚DQ15,字形式时传送最高数据位D15;字节形式时传送最低地址A-1。

②字形式时,数据引脚D0~D15上传送数据信号;字节形式时,只要D0~D7上有信号。

此处,将BYTE上拉到高电平,挑选16位的字拜访单位。FSMC数据线FSMC_D[15:0]与S29GL512P的D15~D0对应衔接;FSMC地址线FSMC_A[25:0]的低25根与S29GL512P的地址线A[24:0]对应衔接。

因为S29GL512P芯片映射到BANK1的子BANK2,可确认其片选线应衔接FSMC片选操控线FSMC_NE2。S29GL512P的RY/BY引脚衔接FSMC的FSMC_NWAIT引脚,供给等候信号。

3.3 FSMC的装备

依据S29GL512P的映射方位,需求对FSMC_BCR2和FSMC_BTR2/BWTR2寄存器进行装备。

(1)FSMC_BCR2

装备S29GL512P的读/写选用一致时刻参数,只需求设置时刻寄存器FSMC_BTR2。装备存储器类型为NORFlash,数据总线宽度为16位(字),不选用地址/数据复用,使能BANK1的子BANK2。

(2)FSMC_BTR2

由表2可知,异步NOR Flash时序模型Mode2/B需求设置时刻参数DATAST和ADDSET。依据时序图,两个参数的核算公式如下:

式中:Twc和Trc为所选存储芯片的写周期长度和读操作周期长度;Twp为所选存储芯片的写信号继续长度。依据S29GL512P用户手册,可知参数Twc=Trc=130 ns,Twp=35 ns。设STM32微操控器选用72 MHz主频,则HCLK=(1/72×10-6)s。经过上述公式核算,可取值为:DATAST=2,ADDSET=5。

为了到达更好的操控作用,还应考虑FSMC本身推迟问题,运用校对公式:

式中:TAVQV为所选存储芯片拜访过程中,从地址有用至数据有用的时刻域;Tsu(Data_NE)为STM32特征参数,从数据有用到FSMC_NE(片选)失效时刻域;Ttv(A_NE)为STM32特征参数,从FSMC_NE有用至地址有用的时刻域。

TAVQV=130 ns,Tsu(Data_NE)+Ttv(A_NE]=36 ns,对DATAST参数进行校对,可得DATAST=3。

3.4 运用STM32固件对FSMC进行初始化装备

ST公司为用户开发供给了完好、高效的东西和固件库,其间运用C言语编写的固件库供给了掩盖一切规范外设的函数,运用户无需运用汇编操作外设特性,然后提高了程序的可读性和易保护性。

STM32固件库中供给的FSMC的NOR Flash操控器操作固件,首要包括2个数据结构和3个函数。数据结构FSMC_NORSRAMTimingInitTypeDef对应时刻参数寄存器FSMC_BTR和FSMC_BWTR的结构界说;

FSMC_NORSRAMinitTypeDef对应特征装备寄存器FSMC_BCR的结构界说,并包括2个指向对应BANK的FSMC_BTR和FSMC_BWTR寄存器的FSMC_NORSRAMTimingInitTypeDef结构指针。针对上述S29GL512P芯片扩展要求,运用固件库进行的首要初始化操作如下:

结 语

STM32作为新一代ARM Cortex-M3核处理器,其杰出的功能和功耗操控可以适用于广泛的运用范畴;而其特别的可变静态存储技能FSMC具有高度的灵敏性,关于存储容量要求较高的嵌入式体系规划,可以在不添加外部分立器材的情况下,扩展多种不同类型和容量的存储芯片,降低了体系规划的杂乱性,提高了体系的可靠性。

修改:博子

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/187194.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部