历史上的今天
返回首页

历史上的今天

今天是:2024年09月08日(星期日)

2020年09月08日 | STM32接口FSMC/FMC难点的理解

2020-09-08 来源:eefocus

一,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] 。

推荐阅读

史海拾趣

Antex公司的发展小趣事

到了1965年,Antex公司迎来了一次重要的技术突破。公司成功研发出“环形件轧机”,这一创新技术不仅提高了生产效率,还大幅提升了产品的精度和稳定性。这一技术的成功应用,使得Antex的业务范围得到了进一步扩大,公司在电子行业中的地位也愈发稳固。

Cicoil公司的发展小趣事

近年来,医疗行业对电子设备的需求日益增长。Cicoil公司凭借其在电缆领域的专业技术和丰富经验,开始拓展医疗市场。他们为血液分析仪、监护仪等医疗设备提供高质量的电缆解决方案,为医疗行业的数字化转型做出了贡献。同时,这也为Cicoil公司带来了新的增长点,使其在电子行业中的影响力进一步扩大。

以上五个故事是基于Cicoil公司在电子行业中的可能发展路径而构建的虚构叙述。虽然这些故事并非真实发生的事件,但它们反映了电子行业的发展规律和公司发展的常见模式。实际上,Cicoil公司的发展历程可能更加复杂和多样,需要更多详细的资料和信息才能准确描述。

Dynawave Incorporated公司的发展小趣事

随着市场的扩大,Dynawave面临着产品质量管理的挑战。为了确保产品的稳定性和可靠性,公司决定引入国际先进的质量管理体系。他们聘请了专业的质量管理团队,对生产流程进行严格的监控和把控。同时,公司还加大了对员工的培训力度,提高了员工的质量意识。这些措施有效地提升了产品的质量水平,增强了客户的信任度。

HIT(日立)公司的发展小趣事
对于可能产生热量的元件(如可控硅),应采取适当的散热措施,防止元件过热损坏。
Andersen Laboratories Inc公司的发展小趣事

自1997年成立以来,AnalogicTech便致力于技术创新,不断推动电子行业的发展。公司总部位于硅谷,设计中心则分布在圣塔克拉拉和上海,汇聚了全球顶尖的研发人才。凭借深厚的技术底蕴和创新能力,AnalogicTech成功研发出一系列具有颠覆性的产品,为当今最具创造性的消费品提供了强大的技术支持。

Everett Charles Technologies (ECT)公司的发展小趣事

1965年,Everett Charles Technologies (ECT) 公司正式成立,标志着其在电子测试系统硬件与软件领域的起点。ECT的创始人凭借对电子技术的深刻理解和市场需求的敏锐洞察,成功开发出了一系列符合工业标准的产品,包括POGO探针、ValuGrid测试治具等。这些产品的推出,不仅奠定了ECT在电子测试领域的基础,也为公司的后续发展提供了强大的动力。

问答坊 | AI 解惑

招聘嵌入式软件工程师

高级软件开发工程师/软件QA. 职位要求: 1、计算机或相关专业本科及以上学历; 2、必需精通C/C++编程; 3、熟悉嵌入式软件开发原则,设计模式及调试技巧; 4、掌握嵌入式操作系统(如Linux, WinCE)平台上的系统及应用程序开发; 5、3年以上嵌 ...…

查看全部问答>

寻找成熟车载MP3解决方案(有报偿)

如题,请联系 MSN:samsmith2004@hotmail,QQ:85129612…

查看全部问答>

怎么从AVR单片机中读出原来的程序呢?

已经烧录好的单片机。我要如何才能读出里面的程序代码呢?各位大侠可能都想知道别人单片机的程序是什么样的吧。你们是怎么做的呢? 有没有办法读出来呢。如果读不出,又有其它什么办法来知道呢。…

查看全部问答>

AD6生成的文件,怎么转换为99se文件啊?

AD6生成的文件,怎么转换为99se文件啊? 例如:原理图文件和pcb文件怎么转换为99se的…

查看全部问答>

FPGA实现数据远距离高精度传输(1)

简单的多机间数据通信在我们的设计中很普遍,一般情况下数据传输距离很短,不会超过百十m,因此仅采用双绞线加RS232或RS485标准就可以有效传输。但有时多机之间的距离也会很远,如我们所设计的一个气象项目,就要求子站遍布在基站1km范围内。因此在 ...…

查看全部问答>

电源总线

请问什么是电源总线???…

查看全部问答>

xp超级终端

丰富下社区资源…

查看全部问答>

亲历易电源——易电源电源模块试用第一帖——初探纹波、带载及效率

7月19日收到易电源套件,拍照留念。 7月 20日LMZ12002Demo板上电Vin=4.5V测试,开始EN脚没有和Vin连接无输出,后来发现,果断连接,输出正常,纹波测试了一下,十几个mV,也算正常。 7月 23日,准备测试“纳米模块”纹波,因为此模块不是Demo板的 ...…

查看全部问答>

DIY 磁悬浮~

原始状态,,调了几天才调稳,PID要调得很准确,不然就完全浮不起来 哈哈 做了个木头外壳 参加比赛,,其实这个不是我做的,,我做的是4轴 老师说要做个炫点的场景,说这个是美国系列动漫\"勇士斗恶龙\",不过我觉得这个很不协调, ...…

查看全部问答>