当前位置: 首页 > news >正文

FSMC-灵活的静态存储控制器

文章目录

    • 1. FSMC的整体结构划分
    • 2. 什么是Subbank?
    • 3. 片选引脚NE[4:1]与Subbank的对应关系
    • 3.1 NOR/PSRAM 地址映射
  • 外部存储器总线宽度(8/16 位)与内部寄存器的 32 位访问
    • 一、NOR/PSRAM 控制寄存器为何必须按32位访问?
    • 二、FSMC 外部存储器总线宽度(8/16位)与内部寄存器的32位访问不冲突
    • 三、总结:“内部32位寄存器”与“外部8/16位总线”的协同逻辑

在这里插入图片描述

512M * 8Block = 4G
8BLock = 2^3次方,故3bit可以代表一个block
例如:block1 = 00100000,取前三位 001 表示 block1,取第四位表示 block1中的bank10->bank1,1->bank2
问:0x68000000 位于哪个块?

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Block3 包括 bank1 和 bank2,bank1又分为 FSMC bank1 NOR/PSRAM 1、 FSMC bank1 NOR/PSRAM 2、 FSMC bank1 NOR/PSRAM 3、 FSMC bank1 NOR/PSRAM 4,用于片选外设

1. FSMC的整体结构划分

STM32F407的FSMC(灵活静态存储控制器)根据所连接的存储器类型,划分为4个独立的Bank(存储块),功能如下:

  • Bank 1:专门用于连接NOR闪存或PSRAM,内部包含4个Subbank;
  • Bank 2Bank 3:用于连接NAND闪存(两者支持不同的数据宽度配置);
  • Bank 4:用于连接PC卡设备(兼容ATA协议)。

2. 什么是Subbank?

在FSMC的Bank 1(NOR/PSRAM控制器)中,为了支持同时连接多个并行的NOR闪存或PSRAM设备,内部划分了4个独立的Subbank(子存储体)。
每个Subbank的核心特点:

  • 拥有独立的地址空间(每个Subbank占用64MB地址范围);
  • 拥有独立的片选信号控制,可单独选中或 deselected 对应的外部设备;
  • 可独立配置时序参数(如读写时序、数据宽度等),适应不同规格的NOR/PSRAM设备。

Bank 1中的4个Subbank具体为:

  • FSMC Bank1 NOR/PSRAM 1(即Subbank 1);
  • FSMC Bank1 NOR/PSRAM 2(即Subbank 2);
  • FSMC Bank1 NOR/PSRAM 3(即Subbank 3);
  • FSMC Bank1 NOR/PSRAM 4(即Subbank 4)。

3. 片选引脚NE[4:1]与Subbank的对应关系

FSMC通过片选引脚(NE,即NAND Enable的缩写)控制外部设备的选中状态。其中,与Bank 1的4个Subbank对应的片选引脚关系为:

  • NE1引脚 → 对应 Subbank 1
  • NE2引脚 → 对应 Subbank 2
  • NE3引脚 → 对应 Subbank 3
  • NE4引脚 → 对应 Subbank 4

即NE引脚编号与Subbank编号直接一一对应,通过控制NE1~NE4的高低电平(低电平有效),可单独选中对应的Subbank,进而操作该Subbank所连接的外部NOR/PSRAM设备。
在这里插入图片描述

3.1 NOR/PSRAM 地址映射

HADDR[27:26] 位用于从下表中所示的四个存储区域之中选择其中一个存储区域。
在这里插入图片描述
HADDR[25:0] 包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。
在这里插入图片描述

如果外部存储器的宽度为 16 位, FSMC 将使用内部的 HADDR[25:1] 地址来作为对外部存储器的寻址地址FSMC_A[24:00]。
无论外部存储器的宽度为 16 位还是 8 位, FSMC_A[0] 都应连接到外部存储器地址 A[0]。

外部存储器总线宽度(8/16 位)与内部寄存器的 32 位访问

要理解“NOR/PSRAM 控制寄存器必须按32位访问”的规定,需从 STM32 内部总线架构寄存器硬件设计 两个层面分析,同时区分“内部寄存器访问”与“外部存储器总线宽度”的不同逻辑:

一、NOR/PSRAM 控制寄存器为何必须按32位访问?

STM32 的 FSMC 控制寄存器属于芯片内部的外设寄存器,其访问受 ARM Cortex-M 内核的 AHB 总线架构 强制约束:

  1. 地址对齐要求
    所有 STM32 外设寄存器的地址必须是 4字节对齐(即地址的最低两位为 0,能被 4 整除)。例如,FSMC 的 NOR 控制寄存器 FSMC_BCR1 地址为 0x40011000(末两位为 00),FSMC_BCR20x40011004,以此类推。
    这种对齐是硬件强制的——若用非对齐地址(如 0x40011001)访问,会触发 HardFault 异常 导致系统崩溃。

  2. 总线位宽与访问效率
    STM32 的 AHB 系统总线是 32位(4字节)宽,寄存器设计为 32位 是为了匹配总线位宽,最大化传输效率。即使某些寄存器实际有效位不足32位(如仅用低16位),硬件仍要求以32位方式访问(通过 uint32_t 指针操作),编译器会自动处理数据截断(如仅保留低16位)。

二、FSMC 外部存储器总线宽度(8/16位)与内部寄存器的32位访问不冲突

“FSMC 对外部存储器的寻址总线宽度可以是8位或16位”描述的是 外部总线接口,与“内部寄存器的32位访问”属于两个独立的层级,核心差异在于:

  1. 地址空间与总线层级不同

    • 内部寄存器:位于 STM32 芯片内的 0x40000000~0x5FFFFfff 地址段(AHB/APB 外设区),由 AHB 总线直接访问,需遵循 32位 对齐规则。
    • 外部存储器:位于芯片外的扩展地址空间(如 NOR Flash 对应 0x60000000~0x63FFFFFF,PSRAM 对应 0x68000000~0x6BFFFFFF),由 FSMC 硬件将内部 AHB 事务转换为外部总线信号(如 8位/16位 数据总线、地址线)。
  2. 位宽转换由 FSMC 硬件自动处理
    FSMC 作为“桥梁”,会将内部 32位 AHB 事务转换为外部 8位/16位 存储器的访问:

    • 若外部是 16位 存储器(如多数 NOR Flash):FSMC 会将内部 32位 写操作拆分为两个 16位 写事务;读操作则自动合并 16位 数据为 32位(无用位丢弃)。
    • 若外部是 8位 存储器(如某些 SRAM):FSMC 会将内部 32位 操作拆分为四个 8位 事务,通过 NBL[1:0](字节选择信号)控制具体字节。

三、总结:“内部32位寄存器”与“外部8/16位总线”的协同逻辑

  • 内部寄存器32位访问:是 ARM Cortex-M 总线架构的强制要求(地址4字节对齐 + 32位数据总线),保证硬件稳定性与传输效率。
  • 外部总线8/16位宽度:是 FSMC 对不同外部设备的兼容性设计,由 FSMC 硬件自动处理位宽转换,无需软件干预。

两者看似“矛盾”,实则是 “内部总线标准化”与“外部设备兼容化” 的分层设计,既满足了芯片内部的高效性,又适配了外部设备的多样性。

http://www.dtcms.com/a/515317.html

相关文章:

  • 开源AI大模型AI智能名片S2B2C商城小程序在护肤品文案痛点表达中的应用与效果研究
  • 《3D端游云原生协作任务数据一致性优化实战》
  • Day8C语言前期阶段练习算法之插入排序
  • 计算机算法性能详解
  • 建设银行租房网站6网站建设的用例图
  • 国外黄冈网站推广软件有哪些网站建设销售员工作内容
  • Java 大视界 -- Java 大数据在智能医疗远程护理与患者健康管理中的应用与前景
  • 江苏省义务教育标准化建设网站北京住房和城乡建设局门户网站
  • 记2025羊城杯部分题目的解题思路
  • 198种组合算法+优化RF随机森林+SHAP分析+新数据预测!机器学习可解释分析,强烈安利,粉丝必备!
  • 2025第二十二届中国国际半导体博览会(IC CHINA 2025)亮点分析!
  • 「PPG信号处理——(1)基于多模态融合与智能决策的PPG运动伪影分层去除方法」2025年10月22日
  • 阿瓦隆A15 166T:如何突破SHA-256算法的瓶颈?
  • 【Qt开发】多元素类控件(三)-> QTreeWidget
  • MOSHELL (11) : MOSHELL 中的UNIX
  • 安洵杯2019
  • 离线环境下运行 Docker 容器编排指南
  • mapbox进阶,地图添加渐变背景色
  • Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
  • YLOLv4
  • 实验室入门——ubuntu20.04安装ros和ros2全流程
  • uTools 最新版优化macOS 26 高 GPU 占用问题
  • wordpress如何建站拓普建站推广
  • 建筑智库免费网站商城网站开发报
  • 从埋点到用户行为分析:ClkLog 如何帮助企业读懂用户
  • 【Q-dir】QDir_x64窗口配合Mouselnc实现上一步
  • 手机网站备案密码找回的方法枣庄专业做网站
  • Oracle Database 19c 服务端(19.3)下载与安装
  • 如何使用 vxe-table 实现全键盘操作,按键切换复选框单选框的选中状态
  • AI IDE 编辑器产品销售策略:从功能宣讲到赋能用户盈利的范式转变[特殊字符]