1. SMC 外接 SRAM 方案产品应用价值
- 内存容量扩展:APM32F4xx 片内 SRAM 容量有限,通过 SMC 并行接口外接 SRAM,获得 KB‑MB 级别额外内存,满足 GUI、大数据采集、复杂算法大缓冲区需求。
- 内存直接映射访问:外部 SRAM 直接映射 MCU 系统地址,C 语言指针直接读写,无需调用复杂 IO 读写函数,使用逻辑和片内 RAM 几乎一致,上层应用改动小。
- 固件库完整封装:极海固件库已经封装 SMC 全部寄存器操作,提供时序结构体、初始化结构体,提供 IS62WV12816 完整参考工程、硬件原理图,降低开发门槛。
- 一外设多器件兼容:SMC 硬件同时支持 SRAM、PSRAM、NOR Flash、NAND Flash、PC 卡,同一硬件外设可以切换多种静态存储器。
- 支持 8bit /16bit 位宽异步 SRAM,可灵活匹配市面主流 SRAM 器件。
资料获取:AN1092_APM32F4xx_SMC_SRAM应用笔记
2. 方案选型参考
| 适合场景 | 不适合场景 | |
|---|---|---|
| SMC 外接 SRAM | HMI 图形帧缓存;高速采样大缓冲区;矩阵运算大内存;工业仪器仪表日志缓存;产品 PCB 有空间放置并行 SRAM 芯片 | PCB 面积极度紧张;产品需要极低功耗;追求极少 GPIO 引脚占用;需要远距离存储器(并行总线不适合长走线) |
3. 模块能力边界与工程局限
全部基于文档原文推导,无外部资料引入
- 并行总线占用大量 GPIO 引脚:16bit SRAM,地址 A0‑A18+D0‑D15 + 控制信号,占用大量 GPIO 资源;8bit SRAM 也需要大量引脚。
- 时序参数强依赖外部 SRAM 器件规格,示例 ADDSET=0,DATASET=10 仅适配 IS62WV12816,更换 SRAM 必须重新计算参数,直接复制示例参数会出现读写异常。
- PCB 布线约束高:属于并行高速总线,地址、数据线走线质量直接影响稳定性;即使软件时序正确,布线不良会发生偶发数据错误。
- 仅支持静态存储器 SRAM/PSRAM/NOR/NAND;不支持 SDRAM、DDR 这类动态存储器。
- 同一时刻 SMC 只允许访问一个外部设备;多个外部存储器,需要不同 NE 片选,分时访问。
- SRAM 是易失存储器,断电数据全部丢失,不能当做非易失存储保存固件、掉电参数。
4. 硬件‑软件协同开发工程启示
- 硬件先行:电源必须增加 0.1uF 去耦电容;确认片选对应 SMC_NE [x],记住对应的内存映射起始地址;并行总线 PCB 走线尽量短,减少串扰反射。
- GPIO 配置关键点:SMC 全部引脚必须配置为复用 AF 模式;普通 GPIO 模式 SMC 外设不会输出总线时序。
- 时序参数不能直接照搬示例,拿到 SRAM 芯片手册,提取 tRC、tWC、tPWE 时间参数,带入文档提供计算公式换算 ADDSET、DATASET。调试出现偶发错误优先增大
dataSetupTime。 - 区分 8bit/16bit 器件,
memoryDataWidth必须和硬件接线位宽严格匹配。 - 软件调试排查顺序:①检查 SMC、GPIO 时钟是否开启;②确认 GPIO 复用模式;③核对片选对应 bank;④核对时序参数;⑤硬件测量总线波形确认信号质量。
- 业务认知:外部 SRAM 是易失内存,只做运行时缓冲区,不可用来保存需要掉电保存的业务参数。
AN1092 应用笔记完整介绍 APM32F4xx 的 SMC 静态存储控制器外设实现外部异步 SRAM 扩展。SMC 外设分为 4 个大存储块,存储块 1 用于 SRAM/NOR,外部存储器直接映射 MCU 系统内存地址空间,CPU 通过 C 语言指针直接访问外部 SRAM。 文档给出 SMC 硬件框图、地址映射表、引脚接线、SRAM 存储单元原理,定义 SMC_NORSRAMTimingConfig_T 时序结构体、SMC_NORSRAMConfig_T 初始化结构体;以 IS62WV12816 为例给出时序参数计算公式,同时提供硬件原理图、完整软件初始化例程。
该方案用于扩展 MCU 运行内存,适合 GUI、高速采集、复杂算法大缓冲区;但会消耗大量 GPIO 引脚,PCB 并行总线对布线质量有要求,更换 SRAM 器件务必重新计算 SMC 时序参数。SRAM 属于易失存储器,断电数据丢失,仅作为运行内存使用。
文档声明提示:本应用笔记仅为技术开发参考,量产产品用户需要自行完成硬件信号完整性、整机可靠性验证。
阅读全文
52