历史上的今天
返回首页

历史上的今天

今天是:2024年10月26日(星期六)

2021年10月26日 | stm32专题二十:FSMC

2021-10-26 来源:eefocus

STM32F1 系列芯片使用 FSMC 外设来管理扩展的存储器,FSMC 是 Flexible Static Memory Controller 的缩写,译为灵活的静态存储控制器。它可以用于驱动包括 SRAM、NOR FLASH 以及 NAND FLSAH 类型的存储器,不能驱动如 SDRAM这种动态的存储器而在 STM32F429 系列的控制器中,它具有 FMC 外设,支持控制 SDRAM存储器。


中文参考手册对FSMC的描述:

接下来是FSMC的结构框图:

在框图的右侧是 FSMC 外设相关的控制引脚,由于控制不同类型存储器的时候会有一些不同的引脚,看起来有非常多,其中地址线 FSMC_A和数据线 FSMC_D是所有控制器都共用的。

AHB时钟(HCLK)是FSMC的参考时钟。       


其中比较特殊的 FSMC_NE 是用于控制 SRAM 芯片的片选控制信号线,STM32 具有FSMC_NE1/2/3/4 号引脚,不同的引脚对应 STM32 内部不同的地址区域。例如,当 STM32访问 0x68000000-0x6BFFFFFF 地址空间时,FSMC_NE3 引脚会自动设置为低电平,由于它连接到 SRAM的 CE#引脚,所以 SRAM的片选被使能,而访问 0x60000000-0x63FFFFFF地址时,FSMC_NE1 会输出低电平。当使用不同的 FSMC_NE 引脚连接外部存储器时,STM32 访问 SRAM 的地址不一样,从而达到控制多块 SRAM 芯片的目的。


控制寄存器:


控制 SRAM 的有FSMC_BCR1/2/3/4控制寄存器、FSMC_BTR1/2/3/4片选时序寄存器以及FSMC_BWTR1/2/3/4写时序寄存器。每种寄存器都有4个,分别对应 4个不同的存储区域,各种寄存器介绍如下:


地址映射:


这个是中文数据手册中给出的FSMC存储器地址映射:

然后在stm32内部,这1GB的空间又被具体细分:

而对于NOR / SRAM而言,存储块1用于访问最多4个NOR闪存或PSRAM存储设备。这个存储区被划分为4个NOR/PSRAM区并有4个专用的片选。具体选择那一个小存储块,由以下决定:

图中左侧的是 Cortex-M3 内核的存储空间分配,右侧是 STM32 FSMC 外设的地址映射。可以看到 FSMC的NOR/PSRAM/SRAM/NAND FLASH以及 PC卡的地址都在 External RAM地址空间内。正是因为存在这样的地址映射,使得访问 FSMC 控制的存储器时,就跟访问STM32的片上外设寄存器一样。

使用FSMC读写内存数据的过程:

stm32种FSMC的传输时序(模式A):

读时序在FSMC_BTR寄存器中进行配置:

那么SRAM的控制模式还有一个模式1,有什么区别?中文参考手册中是这样描述的,模式A与模式1的区别是NOE的变化和相互独立的读写时序。也就是说,模式A允许我们对读 / 写操作的地址建立时间 数据读取时间等设置不同的数值。


对于模式A,我们用到的寄存器配置其实不多,stm32有规定,对于不需要使用的寄存器,应该配置成如下的值:

写操作时序:

推荐阅读

史海拾趣

HiRel Connectors Inc公司的发展小趣事
通过专门的电源管理设备为多个摄像头提供电力,便于统一管理和维护。
Eby Electro Inc公司的发展小趣事

进入21世纪后,电子行业竞争日益激烈,Eby Electro Inc意识到必须依靠技术创新才能保持竞争力。公司投入大量资金进行研发,成功推出了一系列具有自主知识产权的电子产品。其中,一款高效能、低功耗的集成电路芯片,因其出色的性能而受到市场的广泛认可。这次技术创新不仅为公司带来了可观的收益,也为公司在行业内树立了良好的技术形象。

BB公司的发展小趣事

在电子行业竞争日益激烈的背景下,BB公司深知技术创新是企业发展的核心动力。因此,公司投入大量研发资金,积极引进和培养人才,不断推动技术创新。经过多年的努力,BB公司在模拟集成电路领域取得了多项重大突破,推出了一系列具有自主知识产权的创新产品。这些产品不仅提升了BB公司的市场竞争力,也为整个电子行业的发展做出了贡献。

ENTRELECUK公司的发展小趣事

在电子行业的早期,ENTRELEC UK以其创新的接触器设计在市场中脱颖而出。随着技术的进步,公司不断研发新产品,如过载继电器和电动机保护开关,这些产品迅速获得了市场的认可。公司通过持续的研发投入,确保产品始终走在行业前沿,为客户提供更安全、更可靠的解决方案。

Cantherm公司的发展小趣事

随着电子市场的日益竞争,Cantherm公司面临着市场拓展的难题。为了打开新的销售渠道,公司决定加大在国际市场的宣传力度,同时积极参加各种电子行业的展会和论坛。通过与国际同行的交流与合作,Cantherm不仅提升了品牌知名度,还成功拓展了海外市场,实现了业务的多元化发展。

FORYARD公司的发展小趣事

进入21世纪后,随着新能源汽车产业的兴起,FORYARD敏锐地捕捉到了这一市场机遇。公司开始将研发重心转向汽车电子领域,特别是新能源汽车的电池管理系统(BMS)和电机控制器(MCU)等关键技术。通过持续的技术创新和研发投入,FORYARD成功开发出了一系列高性能、高可靠性的汽车电子产品,并成功应用于多家知名新能源汽车制造商的车型中。这一举措不仅为公司带来了新的增长点,也推动了新能源汽车产业的快速发展。

问答坊 | AI 解惑

这种高压电源谁会设计?

输入:AC 220V±10% 输出:DC 40KV 功率:1KW 纹波:90% 要求:短路保护,过流保护,欠压保护,主电路部分给出详细参数及计算过程。     哪位大虾帮帮忙,本姑娘有酬谢.....................…

查看全部问答>

dm9000PING一段时间后就不通了

WINCE 平台 DM9000网卡 用主机去PING 一开始很正常,过了一段时间(半小时到2小时,感觉是随机的)就不通了,一定要重新启动才行,而且不是每块板子都有这个现象。有的板子能一直正常工作,请问有人遇到过这样的问题吗?…

查看全部问答>

求问动态的UI

看到有些手机上的menu菜单并不是在一下子出现 而是一个个出现 感觉很不错 你可以制造成任意的形状出现的形式 (flash中可以实现) 这个在GDI是怎么实现啊? 谢谢 …

查看全部问答>

DS18B20传感器问题

我下了个DS18B20的驱动程序,按到arm板上后进行读数,能复位,但就是在发出温度转换信号后那里卡住了,读不出数。 驱动程序如下: #include #include #include #include #include #include #include #include #include #incl ...…

查看全部问答>

QuartusII下载到芯片出现问题,好像是说啥ID不对

机器没在身边,器件选的是stratixII:AUTO,电路就是一个全加器,当下载到芯片时提示JTAG对应设备的ID不匹配好像是,但我选择其它芯片也不行,比如MAX7000S或Cyclone什么的,应该怎么设置呢? …

查看全部问答>

ADS1.2如果一个数后带L是表示什么?

在ADS1.2的c编译器件中. 如果一个数后带L是表示什么? 如: i= 0x12345678L; 原来在书上看过这这种表示的说明. 但因为很少用.现在忘记了. 哪位能再提示一下?…

查看全部问答>

s3c6410 usb 发送缓冲内的数据全变成0了

我给s3c6410做了个usb otg驱动,配置成device,向PC机传输数据。端点1,bulk in,向PC传输。端点2 bulk out,接收pc的数据。 如果先启动接收线程,再启动发送线程,ok 如果先启动发送线程,再启动接收线程,每次传输N个包,则接收到的第一个包全 ...…

查看全部问答>

请问在公话网上用双音多频传输数据的可靠性一般是多少?

有一项目需要在公话网上用DTMF传输长字符串,请问有做过DTMF传输的大侠,传输的速度及误码率一般是多少?…

查看全部问答>

如何降低芯片功耗

上周从代理商那里拿到launchpad开发板,并申请了几片样片(MSP430G2232),因为第一次调试MSP430的芯片,先直接实现功能,然后在处理功耗。 我把样品焊接到目标板上,烧录程序后,功耗有120ua。使用排除发降低功耗,一个个功能模块去掉,功耗不见减 ...…

查看全部问答>