历史上的今天
今天是:2024年10月15日(星期二)
2018年10月15日 | STM32F4的外部SRAM_原理部分
2018-10-15 来源:eefocus
一、SRAM芯片:
STM32F4直接与SRAM芯片连接,具体型号为:IS62WV51216
引脚如下:

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

所以IS62WV51216的管脚总的来说大致分为:电源线、地线、地址线、数据线、片选线、写使能端、读使能端和数据掩码信号线。
IS62WV51216的容量为:2的19次方的地址*16位宽的数据(即2字节)=1M字节
二、STM32F4的FSMC

FSMC控制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为例,见下图:


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所对应的地址范围,不然写程序的时候就搞不清喏!
史海拾趣
|
核心器件: MAX1714 最近推出的各种集成式降压 DC/DC变换器均已采取对外接低侧MOSFET同步整流器的电压降采样的方法,无需高侧电流检测电阻器。这种拓扑节省了检测电阻器的成本和印制电路板的空间,也适当提高了电路效率。但是,MOS ...… 查看全部问答> |
|
本文有模拟电路、数字电路、单片机电路、ARM硬件、ARM编程等基础知识,里面还有电阻、电容、半导体二级管三极管等元器件的介绍,还有电源电路、电路设计、通信系统等。欢迎想学电子基础知识的人下载。… 查看全部问答> |
|
我最近在学华恒ARM9,用的是三星S3C2410当做到中断这个问题的时候,遇到了问题,还请各位大虾帮忙 问题如下: 1、不管我把中断置一还是置零都没看到区别,和芯片资料有出入,为什么会这样 2、我把中断待决寄存器和源待决寄存器的值读出来,发现 ...… 查看全部问答> |
|
液晶屏初始化时花屏了!(LCD12864带字库的)LCD12864 带字库的。在我对液晶屏初始化时,设置到“进入设定点”这一步,用api函数SSIDataPut(SSI_BASE, data) 发送命令字0x06,就花屏了!这是为什么? … 查看全部问答> |




