欢迎来到天天文库
浏览记录
ID:10234200
大小:572.04 KB
页数:8页
时间:2018-06-12
《fsmc访问模式的选择》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、FSMC访问模式的选择1.首先要了解三个服务于FSMC的特殊功能寄存器FSMC_BCR SRAM/NOR_FLASH片选控制寄存器FSMC_BTR SRAM/NOR_FLASH 片选时序寄存器FSMC_BWTR SRAM/NOR_FLASH 写时序寄存器(1)FSMC_BCR 这是BCR控制寄存器的32位分配图。(寄存器都是32位,四个字节)注意其中第14位。EXTMOD即固件库里stm32f2xx_fsmc.h结构体中一个使能控制成员变量。uint32_tFSMC_Exten
2、dedMode//是否使能扩展模式,即读写时序参数不同,相互独立。其他位都与stm32f2xx_fsmc.h结构体中成员变量相对应,不在赘言。(2)FSMC_BTR 这是BCR控制寄存器的32位分配图。注意其中第28~29位。手册如下解释:Bits29:28ACCMOD:Accessmode(访问模式选择:ABCD)Specifiestheasynchronousaccessmodesasshowninthetimingdiagrams.Thesebitsaretakenintoaccount
3、onlywhentheEXTMODbitintheFSMC_BCRxregisteris1.00:accessmodeA01:accessmodeB10:accessmodeC11:accessmodeD 这里的模式选择要与外部存储器相匹配。数据地址复用与否,读写控制信号的功用,信号变化。后面会分别讲一下这四个访问模式。(3)FSMC_BWTR 仔细对照BTR与BWTR不难发现,呵!除了字体顺时针旋转90°,这俩寄存器怎么一样啊~没错,这两个寄存器都是包含与FSMC读写时序相关的位。ADD
4、SET:Addresssetupphaseduration.地址建立时间ADDHLD:Address-holdphaseduration.地址保持时间DATAST:Data-phaseduration.数据建立时间 2.怎么解读模式时序图及寄存器配置 那么,初步了解这三个特殊寄存器后,问题就来了,他们什么关系,怎么选择一个模式来配置FSMC?下面举一个例子来分析一下。比如模式C。手册里如下描述: 读写时序图与相应的三个寄存器设置都完整的展现出来。 BCR中设置MUXEN为0,可见数
5、据地址线不复用。手册里给的模式ABCD都是不复用地址数据线的时序。这并非标示这四种模式下都不能复用,而是如果想复用,这一位MUXEN置1即可。只是限于页面篇幅,手册没有给出而已。同时EXTMOD为0X01。这个值非常关键。因为EXTMOD决定了后面的寄存器是仅有一个BTR,还是有BTR与BWTR同时起作用。 在例程中EXTMOD=0X01读写时序参数独立,可以分别配置。 这是什么概念呢?就是读的时序参数由BTR寄存器里32位来设置。包括“读”时的数据建立时间,地址建立时间,地址保持时间
6、(此模式没有)。而写的时序参数另用BWTR寄存器来设置。包括“写”时的数据建立时间,地址建立时间,地址保持时间(此模式没有)。图中很明显会发现读写时的数据建立时间是不相同的。更甚之,读和写的模式不一样也是允许的。如下面英语所表达。●When extendedmode isset,itispossibletomixmodesA,B,CandDinreadandwrite(itisforinstancepossibletoreadinmodeAandwriteinmodeB).) 倘若EXTMOD=0X
7、00读写时序参数是相同的。 这是什么概念呢?就是读和写的时序参数都是由BTR寄存器里32位来设置。包括“读写”时的数据建立时间,地址建立时间,地址保持时间(此模式没有)。而BWTR寄存器被忽略、搁置、空闲。 一般情况下,我们对读写的时序配置没有那么严格。不必用两个寄存器,仅仅采用EXTMOD=0X00 BTR有效就足以满足要求。(哎~人家设计的严谨,我们用不到啊,害苦了初学的小小白)3.不同模式的PK上图是我在学习过程中查找到的,我个人认为构架是有了,但表述不够完整。如果你仔细把手册细
8、读,会发现时序图的微妙差别。我自己总结如下: 注:1.除去倒数2张图片,其他都是来自STM参考手册RM0033。2.文章是学习笔记,有些内容是自己揣摩记下的,应该不可避免的会有错误。以后会进行完善修改。3.与大家共享,有则改之。
此文档下载收益归作者所有