STM32F4的外部SRAM_原理部分

STM32CubeMX实战教程(九)——外部SRAM+内存管理 内存管理作为STM32及其他单片机非常重要的知识,可以说是单片机学习中必须要学到的,它不是像其他知识一样基于外设展开,而是基于自身内部的内存或是外部内存出发的;是学习较高级复杂的外设或功能如:USB,emWin,以及操作系统的基础,因为这是当单片机功能越来越复杂时绕不开的问题。 阅读详情

 

一、SRAM芯片:

STM32F4直接与SRAM芯片连接,具体型号为:IS62WV51216

引脚如下:

除开基本的电源和地线,IS62WV51216的管脚大概可以这么来分类:

STM32F4的外部SRAM_原理部分

 

 

所以IS62WV51216的管脚总的来说大致分为:电源线、地线、地址线、数据线、片选线、写使能端、读使能端和数据掩码信号线。

IS62WV51216的容量为:2的19次方的地址*16位宽的数据(即2字节)=1M字节

 

二、STM32F4的FSMC

 

 

 

 

FSMC控制SRAM为例来说明:

STM32F4的外部SRAM_原理部分

 

 

FSMC_NE[1:4]决定了FSMC可以控制多个存储器。

FSMC的地址映射如下:

 

 

 

 

 

有一点我们必须明白,对于32位的stm32单片机来说,它能够管理的地址大小为4GB,而stm32将4GB的地址空间中的0x60000000到0x9FFFFFFF共1GB的空间分给外部内存。

 

然后强势的FSMC就接管了这1GB的空间,FSMC将图中的1GB大小的External RAM存储区域分成了4个Bank区域,每个Bank对应于stm32内部寻址空间的不同地址范围。那么为什么要分为不同的Bank区域呢?因为不同的Bank可以来管理不同的外部存储设备,比如NOR Flash及SRAM存储器只能使用Bank1的地址,NAND Flash存储器只能使用Bank2和Bank3的地址,等。

 

Bank内部的256MB空间又被分成4个小块,每块64M,各自有相应的控制引脚用于连接片选信号。以Bank1为例,见下图:

 

STM32F4的外部SRAM_原理部分

 

STM32F4的外部SRAM_原理部分
 

 

 

OK!重点来了!

 

刚刚前面提到的FSMC_NE[4:1]信号线就分别对应图中的FSMC bank1 NOR/PSRAM4到FSMC bank1 NOR/PSRAM1。当STM32访问0x68000000-0x6BFFFFFF地址空间时,会访问到Bank1的第3小块区域:FSMC bank1 NOR/PSRAM3相应的FSMC_NE3信号线会输出控制信号(即片选信号),如果这个时候FSMC_NE3处刚好接上IS62WV51216的CS端,那么IS62WV51216就可以任由我们摆布啦。

 

因此,对于你使用IS62WV51216来说,一定要注意你的CS端是接的FSMC的哪个FSMC_NE端,这决定你在程序访问哪个地址范围。

 

对于上边原理图中需要注意的是,除了FSMC_NE3 的连接不固定外,其他的管脚都要按照图中的方式连,为什么呢?因为对于FSMC来说,它已经集成到了单片机内部,它的提供给的管脚已经确定了,是不能改动的。唯一具有灵活性的就是FSMC_NE,具体用哪个FSMC_NE管脚来和你的SRAM相连,当然是你的自由,但是不要忘了,你要找到你选的FSMC_NE所对应的地址范围,不然写程序的时候就搞不清喏!

 

SRAM_IS62WV51216驱动整理 SRAM 阅读详情

相关推荐

STM32——外部SRAM实验

STM32——外部SRAM实验

weixin_62584795的博客 4036

13.STM32F103C8使用PSRAM64H外扩RAM空间

STM32F103C8T6使用PSRAM64H外扩RAM空间到8MB,为液晶等屏幕驱动提供了一种可行性方案,并且已经验证成功。

chouye5700的博客 1万+

STM32F4的FSMC访问外部SRAM,如何避免HardFault和DMA传输错误?

本文深入探讨了STM32F4通过FSMC访问外部SRAM时避免HardFault和DMA传输错误的解决方案。详细解析了FSMC与SRAM连接的基本原理、常见问题根源及系统级诊断流程,并提供硬件设计注意事项和软件配置要点,帮助开发者优化系统稳定性。特别关注了静态存储控制器的时序配置和DMA传输对齐问题。

weixin_30797199的博客 647

STM32F4_外部SRAM

因为数据宽度是16位的,所以一行可以存放2个字节,每次写入一个字节,那么就需要分别写入这16位的高8位和低8位,那么就需要借助I/O0-I/O7、I/O8-I/O15数据线分别写入这16位的高字节和低字节)因为SRAM读取数据是异步通讯,也就是没有时钟总线,也可以说是双方没有规定好时间,那么我将要读取的地址发送以后,就需要给出一定的反应时间(因为没有时钟,不是同步通信),也就是图中程序区域的。对于一般的应用来说,192K字节已经够用了,但是对于那些对内存要求比较高的,192K字节是远远不够用的;

light_2025的博客 3897

STM32F4——TFT-LCD原理及FSMC

TFT-LCD 一、简介:     TFT-LCD即薄膜晶体管液晶显示器,依据其尺寸、分辨率和驱动芯片的不同有很多分类,下边会依据2.8寸320X240分辨率以ILI9341芯片驱动的TFT-LCD做相关介绍。 二、接口:     模块采用16位并方式与外部连接,其相关接口图及信号线功能如下: 【图片】     CS:TFTLCD片选信号。WR:向TFTLCD写数据。RD:从TFTLC

任长江 1万+

STM32F429 FMC总线实战:如何用HAL库驱动外部SRAM(附完整代码)

本文详细介绍了如何利用STM32F429的FMC总线与HAL库驱动外部SRAM,以解决大容量数据缓存需求。内容涵盖硬件连接要点、CubeMX图形化配置时序参数、HAL库驱动代码的封装与详解,并提供了完整的内存读写函数及轻量级内存池管理实现,帮助开发者快速实现外部存储扩展。

q6r7s8t9的博客 1047

STM32标准库-外部SRAM

STM32标准库外部SRAM读写

荒野 1384

STM32CubeMX实战教程(十)——HAL库下的动态内存管理与外部SRAM优化策略

本文深入探讨了在STM32 HAL库环境下,如何利用STM32CubeMX配置FSMC接口驱动外部SRAM,并构建高效的动态内存管理方案。文章详细解析了内部SRAM、CCM与外部SRAM的特性差异,提供了从硬件连接到软件实现的完整实战教程,包括内存池管理原理、源码实现及高级优化策略,旨在解决复杂嵌入式项目中内存不足与碎片化问题。

echo99的专栏 812

STM32复习笔记(五):FSMC连接外部SRAM

STM32F4有一个FSMC(Flexible Static Memory Controller,可变静态存储控制器),可以用来驱动8080接口的TFT LCD,我之前就写过一篇,是用FSMC来驱动4.3寸液晶屏;此外,还可以用FSMC来连接外部的各种存储器,比如说SRAM、NOR FLASH、PSRAM等等;但是每个区(Bank)的功能是不一样的;Bank1可以连接多达4个NOR FLASH或PSRAM/SRAM存储器件(通过片选);

qq_62078117的博客 4749

STM32的内部SRAM和外部SRAM读取速度对比

在STM32的SRAM不足时,我们第一时间会想到使用外部SRAM扩展SRAM。外部的SRAM读取速度显然会比内部SRAM低,但这一差别要多大呢?本文以F407ZGT6单片机为例,测试其内部SRAM读取速度和外部扩展的型号为IS62WV51216的读取速度。

kevin1499的博客 5238

宝骏kiwi 630 730 560 E100 E200 E300 310 510 610 330 530维修手册电路图资料线路图接线图更新

2020-2022年宝骏RS-3维修手册和电路图。2020-2022年宝骏RS-3维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2021年宝骏510维修手册和电路图。2019-2021年宝骏510维修手册和电路图。

weixin_45821055的博客 1771

STM32 基础系列教程 43 – SRAM

前言 STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合, 比如跑算法或者跑 GUI 等,自带的这些内存就不够用了。比如跑算法或者跑 GUI 等,就可能不太够用。这个时候就会用到外部的SRAM或SDRAM,本节,我们将使用带领大家用STM32CUBE工具,快速实现基于FSMC接口的外部SRAM的读写操作实验。 ...

张十三的博客 1万+

如何在iPhone上本地运行SmolVLM?5亿参数模型实战指南(附Swift代码)

本文详细介绍了如何在iPhone上本地部署和运行轻量高效的SmolVLM多模态模型。通过实战指南,分享了使用Swift和MLX框架进行环境配置、模型加载、内存优化以及实现实时图像分析与文本生成的完整流程,帮助开发者在移动端高效运行AI视觉语言模型。

echo99的专栏 654

外部sram数组读写volatile_探索者 STM32F407 开发板资料连载第四十一章 外部 SRAM 实验

1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子第四十一章 外部 SRAM 实验STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合,STM32F4 自带的这些内存就不够用了。比如跑算法或者跑 GUI 等,就可能不太够...

weixin_39832965的博客 912

BUUCTF reverse题解汇总

BUUCTF平台刷题过程中做的一些逆向题解的总结归类

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 1万+

Claude Code 使用 OpenAI Codex(GPT-5.3-Codex)完整配置教程

通过 LiteLLM 可以让 Claude Code 调用任何模型,包括:OpenAIDeepSeekGemini本地模型↓↓优点:不依赖 Anthropic API可自由切换模型支持统一 AI Gateway这种“LLM Gateway 架构”正在成为 AI 开发工具的主流实践。

Jacobe_zhao的博客 1万+

外部扩展SRAM

简介 1、SRAM和DRAM 静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM和DRAM储存的数据都是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。 SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dyn

chengcao123的博客 1500

国宇测试盒GH7009 SPI读操作全解析:从接线到代码实现的避坑指南

本文详细解析了国宇GH7009测试盒进行SPI读操作的完整流程与避坑要点。重点阐述了硬件连接中IO2时序控制引脚的关键作用,提供了从接线方案、电源处理到上位机代码实现的实战指南,并针对常见的数据不稳定、特定寄存器读取失败等问题给出了具体解决方案。

dapp9builder的博客 223

F407 sram

sram 介绍 1、SRAM控制原理 STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。 STM32F407ZE系列芯片可以扩展外部SRAM用作内存。 给STM32芯片扩展内存与给PC扩展内存的原理是一样的,只是PC上一般以内存条的形式扩展, 而且内存条实质是由多个内存颗粒(即SDRAM芯片)组成的通用标准模块,而STM32扩展时,直接直接与SRAM芯片连接 内存:8M bit static

weixin_44628381的博客 3118

扩散模型实战:从零开始训练手写数字生成模型

手写数字的数据集是绝大部分炼丹师的深度学习初恋,这篇博客以代码为主,手把手带读者搭建一个基于扩散模型的手写数字生成模型,非常适合刚接触扩散模型的初学者学习。

沉迷单车的追风少年 1914

路径跟踪 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

纯追踪算法(Pure Pursuit)参考了人类驾驶行为,其基本思想是在待跟踪路径上设置预瞄点(goal-ahead),通过简单的几何方法驱动机器人跟踪预瞄点直至抵达目标位置.本文详细推导纯追踪算法的理论原理及其变种——自适应纯追踪算法(APP)和规范化纯追踪算法(RPP),并提供ROS C++/Python/Matlab三种仿真实现加深理解

FRIGIDWINTER的博客 8408

mdk sram中函数运行_正点原子【STM32-F407探索者】第四十一章 外部 SRAM 实验

1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论:9354467413)关注正点原子公众号,获取最新资料更新 http://weixin.qq.com/r/hEhUTLbEdesKrfIv9x2W (二维码自动识别)STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一 些对内存要求高的场合,STM32F4 自带的...

weixin_39999116的博客 771

反激电源及其变压器计算与绕制

本内容以一个宽电压输入 24V3A 输出的 72W 反激电源为例来计算电路的各个参数和器件选型,包含反激变压器的计算与绕制方法。

让你爱上电路设计 1937

STM32F4外部中断唤醒低功耗监听

本文深入解析STM32F4通过EXTI外部中断与Stop模式实现低功耗监听的技术原理。详细介绍EXTI配置、Stop模式进入与唤醒机制,并结合无线传感器节点等实际应用场景,提供抗干扰设计、功耗优化及调试方法,帮助开发者构建高能效嵌入式系统。

weixin_28713083的博客 780

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STM32F4单片机bootloader及在线升级IAP基本原理

在线升级是产品开发维护的必要功能之一,对产品的迭代优化、需求定制、稳定性提升以及人力节约上提供了很大帮助。就像我们的手机更新系统一样不断地升级不断地有新的体验。 此部分内容从基于STM32F407进行BootLoader、内存分布、IAP升级原理、升级模式等方面进行介绍,其它类型的单片机可进行参考设置。先梳理一下STM32启动过程以及变量、代码在内存中分布过程。了解STM32的启动过程可以从启动文件以及上电执行了一些流程开始。 ......

weixin_43058521的博客 6544

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

STM32F4硬核实战:FSMC驱动TFTLCD从原理到代码全解析,附避坑指南+调试干货

你是否曾在配置FSMC时序时因参数匹配问题抓耳挠腮?是否在驱动LCD时被地址映射、数据宽度等细节搞得晕头转向?这篇文章将从底层原理出发,带你打通“FSMC驱动TFTLCD”的任督二脉:从FSMC的存储区块划分、信号引脚功能,到TFTLCD的接口类型、驱动芯片指令集,再到硬件电路与代码的深度耦合实现,每一个环节都配有原理图解析、时序图说明和调试案例。

smart_boy__的博客 1883

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: IIC时序详解
下一篇: 威纶通宏指令
oshan2012
博客等级 码龄15年 300粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值