新浪博客

FSMC访问模式的选择

2014-11-28 14:16阅读:
1.首先要了解三个服务于FSMC的特殊功能寄存器
FSMC_BCR SRAM/NOR_FLASH 片选控制寄存器
FSMC_BTR SRAM/NOR_FLASH 片选时序寄存器
FSMC_BWTR SRAM/NOR_FLASH 写时序寄存器
(1)FSMC_BCR
FSMC访问模式的选择

这是BCR控制寄存器的32位分配图。(寄存器都是32位,四个字节)注意其中第14位。
EXTMOD即固件库里stm32f2xx_fsmc.h结构体中一个使能控制成员变量。
uint32_t FSMC_ExtendedMode//是否使能扩展模式,即读写时序参数不同,相互独立。
其他位都与stm32f2xx_fsmc.h结构体中成员变量相对应,不在赘言。
(2)FSMC_BTR
FSMC访问模式的选择

这是BCR控制寄存器的32位分配图。注意其中第28~29位。手册如下解释:
Bits 29:28 ACCMOD: Access mode(访问模式选择:A\B\C\D)
Specifies the asynchronous access modes as shown in the timing diagrams. These bits are
taken into account only when the EXTMOD bit in the FSMC_BCRx register is 1.
00: access mode A
01: access mode B
10: access mode C
11: access mode D

这里的模式选择要与外部存储器相匹配。数据地址复用与否,读写控制信号的功用,信号变化。
后面会分别讲一下这四个访问模式。
(3)FSMC_BWTR
FSMC访问模式的选择
仔细对照BTR与BWTR不难发现,呵!除了字体顺时针旋转90°,这俩寄存器怎么一样啊~

没错,这两个寄存器都是包含与FSMC读写时序相关的位。
ADDSET: Address setup phase duration.地址建立时间
ADDHLD: Address-hold phase duration.地址保持时间
DATAST: Data-phase duration.数据建立时间

2.怎么解读模式时序图及寄存器配置
那么,初步了解这三个特殊寄存器后,问题就来了,他们什么关系,怎么选择一个模式来配置FSMC?下面举一个例子来分析一下。比如模式C。手册里如下描述:
FSMC访问模式的选择
FSMC访问模式的选择
FSMC访问模式的选择

FSMC访问模式的选择
读写时序图与相应的三个寄存器设置都完整的展现出来。

BCR中设置MUXEN为0,可见数据地址线不复用。手册里给的模式A\B\C\D都是不复用地址数据线的时序。这并非标示这四种模式下都不能复用,而是如果想复用,这一位MUXEN置1即可。只是限于页面篇幅,手册没有给出而已。同时EXTMOD为0X01。这个值非常关键。因为EXTMOD决定了后面的寄存器是仅有一个BTR,还是有BTR与BWTR同时起作用。
在例程中EXTMOD=0X01 读写时序参数独立,可以分别配置。
这是什么概念呢?就是读的时序参数由BTR寄存器里32位来设置。包括“读”时的数据建立时间,地址建立时间,地址保持时间(此模式没有)。而写的时序参数另用BWTR寄存器来设置。包括“写”时的数据建立时间,地址建立时间,地址保持时间(此模式没有)。图中很明显会发现读写时的数据建立时间是不相同的。更甚之,读和写的模式不一样也是允许的。如下面英语所表达。
● When extended mode is set, it is possible to mix modes A, B, C and D in read and write(it is for instance possible to read in mode A and write in mode B).)

倘若 EXTMOD=0X00 读写时序参数是相同的。
这是什么概念呢?就是读和写的时序参数都是由BTR寄存器里32位来设置。包括“读写”时的数据建立时间,地址建立时间,地址保持时间(此模式没有)。而BWTR寄存器被忽略、搁置、空闲。
一般情况下,我们对读写的时序配置没有那么严格。不必用两个寄存器,仅仅采用EXTMOD=0X00 BTR有效就足以满足要求。(哎~人家设计的严谨,我们用不到啊,害苦了初学的小小白)
3.不同模式的PK
FSMC访问模式的选择
上图是我在学习过程中查找到的,我个人认为构架是有了,但表述不够完整。如果你仔细把手册细读,会发现时序图的微妙差别。我自己总结如下:

FSMC访问模式的选择



注:
1.除去倒数2张图片,其他都是来自STM参考手册RM0033。
2.文章是学习笔记,有些内容是自己揣摩记下的,应该不可避免的会有错误。以后会进行完善修改。
3.与大家共享,有则改之。

我的更多文章

下载客户端阅读体验更佳

APP专享