新闻中心

EEPW首页>嵌入式系统>设计应用> STM32 FSMC学习笔记

STM32 FSMC学习笔记

作者: 时间:2016-11-27 来源:网络 收藏

当要读数据时,地址由0x60020000改为了0x60000000,这个时候A16就为0了。--------------------------------------------------------------------------------------------------
下来就是关于 FSCM时序问题,大家都有讨论:

一.当FSMC选择NOR和PSRAM模块时:
分为两种:1.异步事务2.同步突发事务
异步事务分为普通模式(mode 1,mode 2)和模式1与模式2的4种扩展模式(mode A,B,C,D);

二.General timing rules(通用时序规则):
1.All controller output signals change on the rising edge of the internal clock (HCLK)
(所有输出控制信号在内部时钟(HCLK)的上升沿改变)
2.In synchronous read and write mode, the output data changes on the falling edge of the
memory clock (FSMC_CLK).
(在同步读和写模式下,输出信号在存储器CLK的下降沿改变)
三.采样规则
The FSMC always samples the data before de-asserting the chip select signal NE. This
guarantees that the memory data-hold timing constraint is met (chip enable high to
data transition, usually 0 ns min.)
(FSMC总是在撤销片选信号NE前采样数据,这保证了了储存器数据保持时间的约束能够满足。)
四:时序计算
设定值都是以Hclk为基本单位的
公式:



现在没有完全弄明白的是,因为是异步模式,数据通过延迟一个HCLK通知给了对端,地址线上的信号怎么通知对端有效呢?

--------------------------------------------------------------------------------------------------
下面是一些资料上的数据,可以估算时间是否大概满足应用的要求:




--------------------------------------------------------------------------------------------------

一些常见问题的FAQ:

1.STM32F103 FSMC是不是所有型号都有?

本文引用地址://m.amcfsurvey.com/article/201611/322515.htm

ANS:VC,VD,VE,ZC,ZD,ZE只有这几个型号有。

---------------------------------------------------------------------------------------------------------------------------------

2.复用和非复用?

STM32的FSMC支持数据与地址线复用或非复用两种模式
非复用模式:16位数据线及26位地址线分开始用。推荐在144脚及以上的STM32产品上使用该模式。

复用模式:低16位数据/地址线复用。在该模式下,推荐使用地址锁存器以区分数据与地址。

若不使用锁存器:当NADV为低时,ADx(x=0…15)上出现地址信号Ax,当NADV变高时,ADx上出现数据信号Dx。
若使用锁存器:可同时在ADx上得到Ax和Dx。

FSMC中未使用的数据线或地址线可配置为GPIO

对于16位宽度的外部存储器,FSMC将在内部使用HADDR[25:1]产生外部存储器的地址FSMC_A[24:0]。因此,实际的访问地址为右移一位之后的地址。

---------------------------------------------------------------------------------------------------------------------------------

3.时序图(扩展模式)

普通模式和扩展模式的不同主要用途我觉得,就是把读、写设置成不尽相同的时序。所谓的模式A、B、C、D,其实没多大区别。

引用手册原文:

The differences with mode1 are the toggling of NADV and the independent read and write timings when extended mode is set。

---------------------------------------------------------------------------------------------------------------------------------

4.FSMC_NWAIT和FSMC_NE1/FSMC_NCE2.不明白这两个怎么用?

ANS:NBL0,NBL1,在STM32F103的数据手册里面有规定IO的,不能随便换.(PSRAM时使用)

NWAIT应该是FLASH操作才用的.NE1,NCE2就是一些片选信号.STM32的FSMC支持同时挂多个器件,每个器件都必须有一个CS(也就是NEx,NCEx).

NADV(NL)在复用时时所存信号。在非复用模式控制PSRAM输出有效。





看了1天的英文资料和论坛,这是我总结出来的一些杂乱的信息,由于刚到嵌入式开发行列,底子太弱,所以先把这些保存下来,供以后使用。
下周一实验板就来了,估计花些时间调一下FSMC,再加上DMA的功能,希望能改善产品。


PS:纠结了 快一个礼拜。。终于搞定了,现在只需测一下性能,再加上DMA。最后测下DMA对CPU有多少开销就OK了!

上一页 1 2 下一页

关键词:STM32FSMC学习笔

评论


技术专区

关闭