单片机学习汇总资料-FSMC的三个配置寄存器

合集下载

FSMC配置

FSMC配置

一、基本概念(详细内容见st网站stm32应用笔记AN2784)1. FSMC配置控制一个NOR闪存存储器,需要FSMC提供下述功能:●选择合适的存储块映射NOR闪存存储器:共有4个独立的存储块可以用于与NOR闪存、SRAM和PSRAM存储器接口,每个存储块都有一个专用的片选管脚。

●使用或禁止地址/数据总线的复用功能。

●选择所用的存储器类型:NOR闪存、SRAM或PSRAM。

●定义外部存储器的数据总线宽度:8或16位。

●使用或关闭同步NOR闪存存储器的突发访问模式。

●配置等待信号的使用:开启或关闭,极性设置,时序配置。

●使用或关闭扩展模式:扩展模式用于访问那些具有不同读写操作时序的存储器。

因为NOR闪存/SRAM控制器可以支持异步和同步存储器,用户只须根据存储器的参数配置使用到的参数。

FSMC提供了一些可编程的参数,可以正确地与外部存储器接口。

依存储器类型的不同,有些参数是不需要的。

当使用一个外部异步存储器时,用户必须按照存储器的数据手册给出的时序数据,计算和设置下列参数:●ADDSET:地址建立时间●ADDHOLD:地址保持时间●DATAST:数据建立时间●ACCMOD:访问模式这个参数允许FSMC可以灵活地访问多种异步的静态存储器。

共有4种扩展模式允许以不同的时序分别读写存储器。

在扩展模式下,FSMC_BTR用于配置读操作,FSMC_BWR用于配置写操作。

(译注:如果读时序与写时序相同,只须使用FSMC_BTR即可。

)如果使用了同步的存储器,用户必须计算和设置下述参数:●CLKDIV:时钟分频系数●DATLAT:数据延时如果存储器支持的话,NOR闪存的读操作可以是同步的,而写操作仍然是异步的。

当对一个同步的NOR闪存编程时,存储器会自动地在同步与异步之间切换;因此,必须正确地设置所有的参数。

2. 时序计算如上所述,对于异步NOR闪存存储器或类似的存储,有不同的访问协议。

首先要确定对特定存储器所需要使用的操作协议,选择的依据是不同的控制信号和存储器在读或写操作中的动作。

STM32的FSMC灵活静态存储器控制器

STM32的FSMC灵活静态存储器控制器

STM32的FSMC灵活静态存储器控制器FSMC(Flexihie Static Memory Controller)模块只适用于大容量产品。

FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,主要将AHB传输信号转换到适当的外部设备协议,满足访问外部设备的时序要求。

存储器接口包括:①SRAM静态随机存储器②ROM只读存储器③NOR闪存④PSRAM(4个存储块)⑤两个NAND闪存块⑥16位PC卡STM32之所以能够支持NOR FLASH和NAND FLASH两类访问方式完全不同的存储器扩展,是因为FSMC内部实际包括NOR FLASH和NAND / PC Card两个控制器,分别支持两种截然不同的存储器访问方式。

在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展器的外部总线。

内核对外部存储器访问信号发送到AHB总线后,经FSMC转换为符合外部存储器通信规约的信号,送到外部存储器相应的引脚,实现数据交互。

FSMC起着桥梁作用,既能进行信号类型的转换,又能进行信号宽度和时序的调整,屏蔽掉不同存储类型的差异,使之对内核而言没有区别。

FSMC模块框图如下:存储块外设地址映射(具体说明请看数据手册,此处只用图表形式简单表示):下表为NOR/PSRAM存储块选择:三个存储块可用于NAND或PC:对于NAND闪存,空间可在低256K字节部分划分为三个区:时序参数:FSMC通过使用可编程的存储器时序参数寄存器,拓展了可选用的外部存储器的速度范围。

FSMC的NOR FLASH控制器支持同步和异步突发两种访问方式。

选用同步突发访问方式时,FSMC将系统时钟HCLK分频后,发送给外部存储器作为同步时钟信号FSMC_CLK。

此时需要设置的时间参数有两个:CLK的分频系数和访问中获得第1个数据所需要的等待延迟(DATLAT)。

选用异步突发访问方式时,FSMC主要设置3个时间参数:地址建立时间(ADDSET),数据建立时间(DATAST)和地址保持时间(ADDHLD)。

FSMC静态存储器控制器

FSMC静态存储器控制器

STM32 FSMC学习笔记FSMC全称“静态存储器控制器”。

使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线。

(1)当存储数据设为8位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth =FSMC_MemoryDataWidth_8b)地址各位对应FSMC_A[25:0],数据位对应FSMC_D[7:0](2)当存储数据设为16位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth =FSMC_MemoryDataWidth_ 16b)地址各位对应FSMC_A[24:0],数据位对应FSMC_D[15:0]FSMC 包括4个模块:(1)AHB接口(包括FSMC配置寄存器)(2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一个PSRAM的里面只有2个16位的存储空间,一个是DA TA RAM 一个是CMD RAM)(3)NAND闪存和PC卡控制器(4)外部设备接口注:FSMC可以请求AHB进行数据宽度的操作。

如果AHB操作的数据宽度大于外部设备(NOR或NAND或LCD)的宽度,此时FSMC将AHB操作分割成几个连续的较小的数据宽度,以适应外部设备的数据宽度。

FSMC对外部设备的地址映像从0x6000 0000开始,到0x9FFF FFFF结束,共分4个地址块,每个地址块256M字节。

可以看出,每个地址块又分为4个分地址块,大小64M。

对NOR的地址映像来说,我们可以通过选择HADDR[27:26]来确定当前使用的是哪个64M的分地址块,如下页表格。

而这四个分存储块的片选,则使用NE[4:1]来选择。

数据线/地址线/控制线是共享的。

NE1 ->Bank1 NE2->Bank2 NE3->Bank3 NE4->Bank4若 NE1 连接,则每小块NOR/PSRAM 64M第一块:6000 0000h--63ff ffffh (DATA长度为8位情况下,由地址线FSMC_A[25:0]决定;DATA长度为16位情况下,由地址线FSMC_A[24:0]决定)第二块:6400 0000h--67ff ffffh第二块:6800 0000h--6bff ffffh第三块:6c00 0000h--6fff ffffh注:这里的HADDR是需要转换到外部设备的内部AHB地址线,每个地址对应一个字节单元。

FSMC

FSMC

定时器多少个定时器,分几种。

看门狗的作用:待机和保持模式。

三种:定时中断,输出PWM,输入捕获(两种)。

RTC,秒中断,闹钟中断,以及其作用。

外部中断引脚。

多少个外部中断。

FSMC全称“灵活静态存储器控制器”。

FSMC 包括4个模块。

(1)AHB接口(包括FSMC配置寄存器)(2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一个PSRAM的里面只有2个16位的存储空间,一个是DATA RAM 一个是CMD RAM)(3)NAND闪存和PC卡控制器(4)外部设备接口每个模块通过片选信号控制FSMC与外设连接好以后,就等于对于使用者屏蔽了对外设备的具体操作,只要对应类型的映射地址空间写入数据,这些数据+地址就会被自动翻译,并写入外围存储设备。

初始化问题:1位宽:主要是AHB到NOR/PSRAM位宽的,比如如果AHB设为32位,NOR为16位,他会分两次传输。

2:设置地址手册是这样写的:在NOR/PSRAM模式下HADDR[27:26](HADDR are internal AHB address lines that are translated to external memory)用来片选NOR/PSRAM的四个分区。

A[25:0]是地址线,因为HADDR是字节地址但是存取其按字编址,所以根据位宽的不同由以下情况。

(1)当存储数据设为8位时,地址各位对应FSMC_A[25:0],数据位对应FSMC_D[7:0](存储大小64MB * 8 = 512MB)(2)当存储数据设为16位时,地址各位对应FSMC_A[25:1]>>1(即FSMC_A[24:0]),数据位对应FSMC_D[15:0] (存储大小(64MB / 2) * 16 = 512MB)注意:在16位外部存储宽度下,FSMC内部会用A[25:1]去生成A[24:0]。

不论8位或16位的情况,FSMC_A[0]必需连接外部存储的A[0]。

STM32F103ZE学习笔记(通过FSMC总线控制LCD)

STM32F103ZE学习笔记(通过FSMC总线控制LCD)

STM32F103ZE学习笔记(通过FSMC总线控制LCD)实验内容:通过FSMC总线来操作LCD屏的显示实验目的:掌握FSMC总线的操作使用方法,为下一步操作触摸屏提前做好准备。

关于FSMC总线的介绍前面已经略有介绍,在此不作赘述。

只是简单说一下其配置过程既需要注意的几点问题:一、 FSMC内部结构和映射地址空间FSMC包含AHB接口、NOR Flash和PSRAM控制器、NANDflash和PC卡控制器、外部设备接口4个主要模块。

在ST吗内部,FSMC的一端通过内部高速总线AHB连接内核,另一端则是面向扩展存储器的外部总线。

内核对外部存储器的访问信号发送到AHB 总线后,经过FSMC转换为符合外部存储器规约的信号,送到外部存储器响应的管脚,视线内河鱼数据交换。

FSMC起到了桥梁的作用,既能够进行信号类型的转换,有能够进行信号宽度和时序的调整,屏蔽掉不同存储器之间的差异。

FSMC内部包含NOR Flash和NAND /PC Card两个控制器,可以分别支持两种截然不同的存储器访问方式,本实验选用的是前者。

FSMC管理1GB的映射地址空间。

该空间氛围4个大小256k d 的bank ,每个bank又分为4个大小为64K的子bank 。

这个问题牵扯到缩扩展的外部存储器的地址问题,务必要注意仔细选择。

各bank 相互独立,均拥有独立的片选线和控制器。

二、FSMC总线配置步骤(1)确定映射地址空间:本例程选用的是bank1 的第四个子bank ,前面也提到过,选择的BANK不同则外设对应的地址不同:我们选择的是BANK1,NE4对应的两个地址为:LCD_REG寄存器地址:0x6C00 0000 ;LCD_Data数据地址:0x6C00 0000 | (1《《(n+1))。

将AFIO的A0接至LCD的C/D(Command/data)脚就自动切换了命令和数据。

如果RS接到地址线的A0上,当RS为0时对应寄存器地址0x6C00 0000;当RS为1时,对应数据地址0x6C00 0002;若选择的的是bank1的NE1,则寄存器地址0x6000 0000;数据地址:0x6000 0002.(2)确定扩展使用的映射地址空间后进而:1、确定硬件电路中用于选中该存储器的片选线FSMC_NEx,2、FSMC配置中用于配置该外部存储器的特殊功能寄存器号,(3) 配置存储器基本特征根据选用的存储器芯片确定需要配置的存储器特征:1确定存储器类型(SRAM)2确定存储器芯片的数据和地址引脚是否复用,3确定存储器芯片的数据线宽度,4对于NOR Flash,确定是否采用同步突发访问方式,5对于NOR Flash,NWIT信号的特性说明,6对于该存储器芯片的读写操作,确定是否采用相同的时许参数来确定时序关系。

STM32单片机FSMC的使用解析

STM32单片机FSMC的使用解析

STM32单片机FSMC的使用解析STM32单片机FSMC的使用解析在做项目的过程中遇到了这个问题,感觉文章写得不错,共享给对FSMC的使用怀有疑惑的同伴们!LCD有如下控制线:CS:Chip Select片选,低电平有效RS:Register Select寄存器选择WR:Write写信号,低电平有效RD:Read读信号,低电平有效RESET:重启信号,低电平有效DB0-DB15:数据线假如这些线,全部用普通IO口控制。

根据LCD控制芯片手册(大部分控制芯片时序差不多):如果情况如下:DB0-DB15的IO全部为1(表示数据0xff),也可以为其他任意值,这里以0xff为例。

CS为0(表示选上芯片,CS拉低时,芯片对传入的数据才会有效)RS为1(表示DB0-15上传递的是要被写到寄存器的值),如果为0,表示传递的是数据。

WR为0,RD为1(表示是写动作),反过来就是读动作。

RESET一直为高,如果RESET为低,会导致芯片重启。

这种情况,会导致一个值0xff被传入芯片,被LCD控制芯片当作写寄存器值去解析。

LCD 控制芯片收到DB0-15上的值之后,根据其他控制线的情况,它得出结论,这个0xff是用来设置寄存器的。

一般情况下,LCD控制芯片会把传入的寄存器值的高8位当做寄存器地址(因为芯片内部肯定不止一个寄存器),低8位当做真正的要赋给对应寄存器值。

这样,就完成了一个写LCD控制芯片内部寄存器的时序。

如果上述情况不变,只将RS置低,那么得到的情况如下:LCD控制芯片会把DB0-15上的数据当做单纯的数据值来处理。

那么假如LCD处在画图状态,这个传入的值0xff,就。

灵活的静态存储控制器FSMC

灵活的静态存储控制器FSMC

15
NAND/PC Card地址映射(2)
NAND的Common和Attribute空间又可细分为
Data section(第一个64KB空间)
软件从这个空间的任何地方执行读、写数据操作
Command section(第二个64KB空间)
软件往这个空间里任何地方写入命令字节 这个空间任何地址都是Addr[16]=1(CLE为高电平)
NAND/PC card控制器
19
FSMC模块的AHB接口
AHB总线上的主设备通过它访问外部静态存储器
32位的AHB读写访问转换成连续的
8位读写操作,如果访问8位宽度存储器 16位读写操作,如果访问16位宽度存储器
FSMC模块的参考时钟:HCLK
所有输出控制信号都在HCLK的上升沿改变
可以在这些外部存储执行代码
LCD接口
支持8080和6800模式
NANDFlash和16位PCCard
NAND Flash具有硬件ECC
4
FSMC框图
四个子模块:
1. 包含FSMC配置寄存器的 AHB接口 2. NOR Flash/PSRAM控制 器 3. NAND Flash/PC Card控 制器 4. 和外部存储器的接口信号
13
NOR/PSRAM地址映射的使用(2)
举例1:在Bank1的region2挂了一个16位宽度的NOR Flash
FSMC_NOR_WriteByte(u32 WriteAddr, u8 Data)
/* 1. */ NOR_WRITE(ADDR_SHIFT(0x5555), 0xAA); NOR_WRITE(ADDR_SHIFT(0x2AAA), 0x55); NOR_WRITE(ADDR_SHIFT(0x5555), 0xA0); /* 2. 往目标地址写入目标数据 */ NOR_WRITE((Bank1_NOR2_ADDR + WriteAddr), Data); /* 3. 等待NOR内部写逻辑完成 */ ……

单片机笔记-寄存器、引脚及其英文名称缩写

单片机笔记-寄存器、引脚及其英文名称缩写

单片机笔记-寄存器、引脚及其英文名称缩写在单片机开发过程中,我们常常会涉及到寄存器和引脚的使用。

寄存器是用于存储和处理数据的重要组成部分,而引脚则是用于连接外部设备和单片机的接口。

了解寄存器、引脚及其英文名称缩写是学习和理解单片机编程的重要一步。

一、寄存器寄存器是单片机中的一种特殊功能寄存器,它们用来存储特定的信息,如状态、控制和数据等。

寄存器的使用是通过对其地址进行读/写操作来实现的。

在单片机中,存在着许多不同的寄存器,下面是一些常见的寄存器及其英文名称缩写:1. 状态寄存器(Status Register) - SR状态寄存器用于存储和显示一些跟运算或处理结果有关的标志位,如进位标志位、溢出标志位、零标志位等。

通过对状态寄存器的读写,可以获取或设置这些标志位的值。

2. 数据寄存器(Data Register) - DR数据寄存器用于存储临时数据,如中间计算结果或输入/输出数据等。

读写数据寄存器时,可以进行数据的读取或写入操作。

3. 控制寄存器(Control Register) - CR控制寄存器用于控制某些外设或特定功能的工作方式,如时钟控制寄存器、中断控制寄存器等。

写入或读取控制寄存器可以实现对相应功能的配置和控制。

4. 地址寄存器(Address Register) - AR地址寄存器用于存储指令和数据的地址信息。

在程序执行过程中,地址寄存器可以用于指示当前要执行的指令或要读取/写入数据的地址。

二、引脚引脚是单片机的外部接口,通过引脚可以与其他电子元件或设备进行连接和通信。

引脚的使用通常包括输入输出、中断触发、时钟输入等功能。

下面是一些常见的引脚及其英文名称缩写:1. 电源引脚(Power Pin) - VCC、GND电源引脚用于提供单片机的供电电源。

其中,VCC用于给单片机提供正电源,而GND则是单片机的接地端。

2. 输入引脚(Input Pin) - IN输入引脚用于接收外部信号。

基于STM32单片机FSMC接口驱动LCD的配置与分析

基于STM32单片机FSMC接口驱动LCD的配置与分析

基于STM32单片机FSMC接口驱动LCD的配置与分析STM32单片机的FSMC(Flexible Static Memory Controller)接口是一种灵活的静态存储器控制器,可以用于连接外部存储器设备,如LCD显示屏。

本文将对基于STM32单片机FSMC接口驱动LCD的配置与分析进行详细介绍。

首先,我们需要了解FSMC接口的基本原理和功能。

FSMC接口是一种高性能、低功耗的外部总线接口,可以连接到SRAM、PSRAM、NOR Flash、NAND Flash、LCD显示屏等外部存储器设备。

FSMC接口提供了多种数据传输模式(如并行、串行)和多种数据总线宽度选择,以满足不同应用的需求。

要实现FSMC接口驱动LCD,首先需要配置FSMC接口的相关寄存器。

在STM32单片机中,FSMC的配置主要包括以下几个方面:1.时序配置:通过设置FSMC_RCC和FSMC_BTR寄存器来定义访问存储器的时序。

时序配置非常重要,需要根据外部存储器的时序规格进行调整,以确保数据的正确传输。

2.地址配置:通过设置FSMC_BANK1或FSMC_BANK2寄存器来定义存储器的基地址和各种地址范围。

3.数据总线配置:根据外部存储器的数据宽度,设置FSMC_BCR和FSMC_BWTR寄存器来选择数据总线宽度(比特数)。

4.控制信号配置:通过设置FSMC_BCR、FSMC_BTR和FSMC_BWTR寄存器来配置控制信号,如写使能信号、读使能信号、片选信号等。

配置完成后,就可以使用FSMC接口进行数据的读写操作。

读取操作可以通过读取FSMC_BANK1或FSMC_BANK2的数据寄存器来实现。

写入操作可以通过写入FSMC_BANK1或FSMC_BANK2的数据寄存器来实现。

对于LCD显示屏的驱动,可以通过FSMC接口的并行模式来实现。

在并行模式下,数据总线的宽度由FSMC_BCR和FSMC_BWTR寄存器的设置决定,可以通过并行总线同时传输多个像素数据和控制信号,从而提高数据传输速度。

灵活的静态可变存储器控制器FSMC

灵活的静态可变存储器控制器FSMC

FSMC框图
FSMC 的bank 分布
4个Bank各占256M字节
Bank1分为4个region
用来连接NOR、PSRAM、LCD
Bank2和Bank3
每个Bank连接一块NAND Bank4 用来连接PC Card 每个Bank和Region有独立的寄存器 对所连存储器进行配置
NOR/PSRAM地址映射
NOR/PSRAM是”static memory map”设备:256M 字节的空间需要28根地址线寻址。
无论外接8位/16位宽度设备,FSMC_A[0]永远连接外 部设备的地址A[0]
FSMC控制读写SRAM
From: 北方工业大学嵌入式实验室
FOR: 新闻 分类信息
灵活的静态存储控制器(F实验室
FOR: 新闻 分类信息
指导老师 :吴 # 报 告 人 :李##
版权所有,未经授权请勿改动
目录
FSMC特性简介
FSMC框图 FSMC 的bank 分布 NOR/PSRAM地址映射 STM32的FSMC应用例子
版权所有,未经授权请勿改动
2012-12-10
可以在这些外部存储执行代码
LCD接口
支持8080和6800模式
NANDFlash和16位PCCard
NAND Flash具有硬件ECC
FSMC特性简介
FSMC框图
四个子模块: 1. 包含FSMC配置寄存器的AHB接口 2. NOR Flash/PSRAM控制器 3. NAND Flash/PC Card控制器 4. 和外部存储器的接口信号
FSMC控制读写SRAM FSMC连接LCD
FSMC特性简介
FSMC管理1GB空间,拥有4个Bank连接外 部存储器 每个Bank有独立的片选信号 每个Bank有独立的时序配置 同步批量传输访问最高频率可达60MHz

单片机的结构和原理-寄存器与片内存储器

单片机的结构和原理-寄存器与片内存储器

读/写操作与数据保护
1
写操作
2
将数据写入存储器,以便永久保存
3
读操作
从存储器中读取数据,供CPU使用
数据保护
采用校验码或电源电压监测等方式保护 数据的完整性
存储器的地址表示
物理地址
存储器芯片的实际物理位置
地址寄存器
存储当前访问的地址
存储单元
存储一个字节(8位)的数据
存储器的性能指标
1 读写速度
单片机的结构和原理-寄 存器与片内存储器
简介单片机的概念、应用和内部结构,介绍了CPU与寄存器之间的关系以及寄 存器的组成和功能。
寄存器组成与功能
通用寄存器
储存临时数据,可进行算术运算
程序计数器
存放下一条指令的地址
状态寄存器
记录条件标志和中断使能状态
堆栈指针
指向堆栈的栈顶
片内存储器概述
介绍了单片机内部的片内存储器,包括ROM、RAM、EEPROM和Flash等类型。
总线接口
通过总线传输数据和指令
存储器映射

2 存储容量
存储器可以容纳的数据量
3 寿命
存储器使用的时间
4 可靠性
存储器的稳定性和可靠性
5 价格
存储器的成本
存储器选择与使用原则
用途
根据具体应用场景选择存储器 类型
成本
根据预算选择合适的存储器
容量
根据数据需求选择适当的存储 容量
存储器与其他模块的接口
引脚接口
通过引脚与其他模块连接

单片机各寄存器汇总

单片机各寄存器汇总

地址功能介绍符号B F0H B寄存器ACC E0H 累加器PSW D0H 程序状态字IP B8H 中断优先级控制寄存器P3 B0H P3口锁存器IE A8H 中断允许控制寄存器P2 A0H P2口锁存器SBUF 99H串行口锁存器SCON 98H串行口控制寄存器P1 90H P1口锁存器TH1 8DH定时器/计数器1(高8位)TH0 8CH 定时器/计数器1(低8位)TL1 8BH 定时器/计数器0(高8位)TL0 8AH 定时器/计数器0(低8位)TMOD 89H定时器/计数器方式控制寄存器TCON 88H 定时器/计数器控制寄存器DPTR82H 83H 83H数据地址指针(高8位)PCSP 81H 堆栈指针P0 80H P0口锁存器PCON 87H电源控制寄存器、PSW-----程序状态字。

D7D6D5D4D3D2D1D0CY AC F0 RS1 RS0 OV P下面我们逐一介绍各位的用途CY:进位标志。

AC:辅助进、借位(高半字节与低半字节间的进、借位)。

F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。

RS1、RS0:工作寄存器组选择位。

这个我们已知了。

0V:溢出标志位。

运算结果按补码运算理解。

有溢出,OV=1;无溢出,OV=0。

什么是溢出我们后面的章节会讲到。

P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。

若为奇数,则P=1,否则为0。

运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。

例:某运算结果是78H (01111000),显然1的个数为偶数,所以P=0。

定时/计数器寄存器1.工作方式寄存器TMOD(P134)TMOD 为T0.T1的工作方式寄存器,其各位的格式如下:TMODD7 D6 D 5 D4 D3 D2 D1 D0 GATEC/-TM1M0GATEC/-TM1M0定时器1 定时器0位7 GATE ——T1的门控位。

当GATE=0时,只要控制TR1置1,即可启动定时器T1开始工作;当GATE=1时,除需要将TR1置1外,还要使INT1引脚为高电平,才能启动相应的定时器开始工作。

FSMC访问模式的选择

FSMC访问模式的选择

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_t FSMC_ExtendedMode//是否使能扩展模式,即读写时序参数不同,相互独立。

其他位都与stm32f2xx_fsmc.h结构体中成员变量相对应,不在赘言。

(2)FSMC_BTR这是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 aretaken into account only when the EXTMOD bit in the FSMC_BCRx register is 1.00: access mode A01: access mode B10: access mode C11: access mode D这里的模式选择要与外部存储器相匹配。

数据地址复用与否,读写控制信号的功用,信号变化。

后面会分别讲一下这四个访问模式。

(3)FSMC_BWTR仔细对照BTR与BWTR不难发现,呵!除了字体顺时针旋转90°,这俩寄存器怎么一样啊~没错,这两个寄存器都是包含与FSMC读写时序相关的位。

ADDSET: Address setup phase duration.地址建立时间ADDHLD: Address-hold phase duration.地址保持时间DATAST: Data-phase duration.数据建立时间2.怎么解读模式时序图及寄存器配置那么,初步了解这三个特殊寄存器后,问题就来了,他们什么关系,怎么选择一个模式来配置FSMC?下面举一个例子来分析一下。

FSMC学习笔记

FSMC学习笔记

FSMC TFTLCD接口配置学习笔记一、FSMC概要:灵活的静态存储器控制器。

使用FSMC的优点:1、支持多种静态存储器类型。

2、支持代码从FSMC扩展的外部存储器中直接运行。

3、代码书写简单。

FSMC有两种控制器1、NOR memory control2、NAND/PC CARD memory control100脚和144脚100脚FSMC 只能使用BANK1或BANK2 只有PD7144脚FSMC 则有BANK1-4都可以。

BANKx由NEx来配置。

FSMC包含四个主要模块:1)、AHB接口(包含FSMC配置寄存器)2)、NOR闪存和PSRAM控制器3)、NAND闪存和PC卡控制器4)、外部设备接口二、LCD接口LCD目前大多是接到SRAM/NOR控制器上的非地址锁存,所以不能接到NAND 直接用。

LCD8080和6800接口比较8080模式:RSCSRDWRD0-D156800模式:RSCSER/WD0-D15比较明显8080和6800接口上,仅仅是读写线的差别。

参考AN2790E脚接与非门或者用普通IO口连接使用!还没有应用过6800的液晶,字符型液晶用的口没有CS脚,只有V o 、E 、RS 、RW和A、K。

三、下面根据程序做讲解:当RS接FSMC_A16 , CS接FSMC_NE1那么(*((volatile unsigned short *) 0x60000000)) /* RS = 0 */(*((volatile unsigned short *) 0x60020000)) /* RS = 1 */因为CS接FSMC_NE1 所以HADDR[27:26]为00因为RS接FSMC_A16,第17位置1,所以RS=0为0x60000000, RS=1 0x60020000。

对应的程序也是需要修改:FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;。

FSMC讲解

FSMC讲解
#define rFSMC_BWTR3 (*(volatile unsigned *)0xA0000114) // SRAM/NOR写时序寄存器3
#define rFSMC_BWTR4 (*(volatile unsigned *)0xA000011C) // SRAM/NOR写时序寄存器4
#define rFSMC_BTR1 (*(volatile unsigned *)0xA0000004) // SRAM/NOR片选时序寄存器1
#define rFSMC_BTR2 (*(volatile unsigned *)0xA000000C) // SRAM/NOR片选时序寄存器2
#define rFSMC_PIO4 (*(volatile unsigned *)0xA00000B0) // I/O存储空间时序寄存器4
// BANK1
#define RFSMC_BCR1 (*(volatile unsigned *)0xA0000000) // SRAM/NOR片选控制寄存器1
#define rFSMC_BCR2 (*(volatile unsigned *)0xA0000008) // SRAM/NOR片选控制寄存器2
#define rFSMC_PMEM2 (*(volatile unsigned *)0xA0000068) // 通用存储空间时序寄存器2
#define rFSMC_PATT2 (*(volatile unsigned *)0xA000006C) // 属性存储空间时序寄存器2
// BANK3
不知道ST为什么把FSMC搞的如此复杂,说白了就和ARM7或是9的几个BANK的配置一样,但是好像STM32的配置更加详细一点(不知道具体有无用处)。

51单片机串口通信相关寄存器及设置指引

51单片机串口通信相关寄存器及设置指引

51单片机串口通信相关寄存器及设置指引关键字SBUF:串口数据缓存寄存器SCON:串口通信状态控制寄存器Fosc:晶振的震荡频率PSW:程序状态字寄存器1、SBUF数据缓存寄存器SBUF可直接寻址专用寄存器,是个8位寄存器,不可进行位操作。

字节地址99H。

物理上它是两个寄存器,一个发送寄存器,一个接收寄存器。

写数据到SBUF中时(SBUF = 0x52;),单片机自己会判断是写到发送寄存器。

读取SBUF中数据时(rReg = SBUF;),单片机自己会判断是读取接收寄存器。

接收寄存器是双缓冲的,以避免在接收下一帧数据之前,单片机还来不及响应接收中断,没有把上一帧的数据读取走,而产生两次帧数据重叠问题。

发送寄存器,没有缓冲,发送时单片机直接主动发出数据,不会产生重叠问题。

(扩展知识:为了保持最大的传输速率,一般不需要发送寄存器建立双缓冲功能。

双缓冲功能有别于发送数据队列缓存区。

)2、SCON串口通讯状态控制寄存器SCON可直接寻址专用寄存器,是个8位寄存器,可以进行位操作。

SCON用于控制串行通信的模式选择、接收和发送,标识串口的状态。

SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。

系统复位时,SCON的所有位都被清除。

SCON串口通讯状态控制寄存器的格式及各位的功能定义如下:●SM0、SM1SM0和SM1是串口模式选择位。

SM0和SM1编码对应串口4种模式,如下表:●SM2SM2在模式2和模式3中是多机通信的使能位。

在模式0中,SM2必须为0。

在模式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。

在模式2和模式3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。

此功能可用于多处理机通信。

●RENREN为允许串行接收位,由软件置位或清除。

置位时允许串行接收,清除时禁止串行接收。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机学习汇总资料:FSMC的三个配置寄存器
 1、在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。

 内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。

 2、FSMC中的DATASET和ADDSET的设置需要参看外部存储器的时序图来确定。

 一般而言,DATASET指的是数据建立时间,也就是读/写信号开始到读/写信号停止(上升沿存储数据)的持续时间。

(一般来说写比读快!)。

相关文档
最新文档