一,fsmc简
fsmc,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 pc 存储器卡连接,
stm32 的 fsmc 接口支持包括 sram、nand flash、nor flash 和 psram 等存储器。
二,fsmc存储块
stm32f767的fmc将外部存储器划分为6个固定大小的256m的存储区域,如下图
如图:
fsmc分为4块,每块256m字节又被划分为4*64,即四个片选
nor / psram使用块1,共256m
nand闪存使用块2,3,共512m
pc卡使用块4,共256m
三,存储块1(bank1)寄存器
stm32 的 fsmc 存储块 1(bank1)被分为 4 个区,每个区管理 64m 字节空间,每个区都
有独立的寄存器对所连接的存储器进行配置。bank1 的 256m 字节空间由 28 根地址线
(haddr[27:0])寻址。
这里 haddr 是内部 ahb 地址总线,其中haddr[25:0]来自外部存储器地址
fsmc_a[25:0],而 haddr[26:27]对 4 个区进行寻址。
我们要特别注意 haddr[25:0]的对应关系:
当 bank1 接的是 16 位宽度存储器的时候:haddr[25:1]对应 fsmc-a[24:0]。
当 bank1 接的是 8 位宽度存储器的时候:haddr[25:0]对应fsmc_a[25:0]。
比如外部存储器接到fmc_ne1上面,那么外部存储器的地址为haddr[26:27] +fmc_a[25:0]=0x60000000+fmc_a[25:0]。
注:不论外部接 8 位/16 位宽设备,fsmc_a[0] 永远接在外部设备地址 a[0] 。
haddr[25:0] 位包含外部存储器地址,由于 haddr 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,
实际向存储器发送的地址也将有所不同,如图:
一个地址对应一个字节的数据,所以64m字节的地址量,就可以表示64x8=512m的数据,也就是说外部储存器的最大容量为512m.
当 bank1 接的是 16 位宽度存储器的时候:haddr[25:1]对应 fsmc-a[24:0]。
:一个地址就可以操作一个字(16位)的数据那么就不需要26根地址线了,haddr[0]就没有用到,所以: haddr[25:1] = fmc _a[24:0] 。
即:
0000对应fsmc_a[0]=0 (2字节)
0010对应fsmc_a[0]=1 (2字节)
0100对应fsmc_a[1]=1 (2字节)
所以对应关系需要除以2,内部右移一位对齐
此时最低位没用,访问最低位需要使用ub/lb
当 bank1 接的是 8 位宽度存储器的时候:haddr[25:0]对应 fsmc_a[25:0]。
:一个地址正好可以操作一个字节(8位)的数据,需要26根地址线:那么 haddr[25:0] = fmc _a [25:0]。
蓝牙时控开关怎么修改密码
中软国际云速云盘荣获华为云云软件认证
百度UNIT:如何快速实现闲聊个性化干预
赛灵思推出Versal HBM自适应计算加速平台,应对网络与云端大数据的双重挑战
5G芯片的“新宠”联发科:怎么从低端芯片转为中端芯片王者?
STM32接口中FSMC/FMC难点问题理解
触摸超极本热潮带动 英特尔力荐三触摸方案商
微软发布开源框架驱动程序模块新框架
HJT异质构叠层钙钛矿光伏电池
扭矩传感器的分类及其应用
2022华为HDC:软通动力Serverless服务实践,加速企业数字化转型
移动机器人2021年四项团体标准建设内容
Type-A接口改成Type-c接口的实验设计
传说中的5G技术是什么样的?
手机进入Hi-fi时代 ADI音频解决方案详解
主流ZigBee芯片大盘点(3):Silicon labs EM35x
将USB3.0用于存储媒体应用
食品中蛋白质含量测定仪的相关功能介绍
Rxiry昕锐XR2000激光测高仪
用于深海作业中海底光缆铺设设备的交流电机