您的位置 首页 方案

STM32 FSMC学习笔记

FSMC全称灵活静态存储器控制器。FSMC包括4个模块:(1)AHB接口(包括FSMC配置寄存器)(2)NOR闪存和PSRAM控制器(驱动LCD的时候LCD就好像一

FSMC全称“灵敏静态存储器操控器”。
FSMC 包含4个模块:

(1)AHB接口(包含FSMC装备寄存器)
(2)NOR闪存和PSRAM操控器(驱动LCD的时分LCD就好像一个PSRAM的里边只需2个16位的存储空间,一个是DATA RAM 一个是CMD RAM)
(3)NAND闪存和PC卡操控器
(4)外部设备接口
每个模块经过片选信号操控
————————————————————————————————–
硬件电路(这儿给出的对错复用衔接)

能够这样接
地址线A0 接 RS
NE接 CS
NEW –WR
NOE –RD

FSMC与外设衔接好今后,就等于关于使用者屏蔽了对外设备的具体操作,只需对应类型的映射地址空间写入数据,这些数据+地址就会被主动翻译,并写入外围存储设备。
关于写LCD来说,STM官方库里有一些常用写法:
#define LCD_BASE((u32)(0x60000000 | 0x0C000000))//我解释一下,地址是BANK1 的 第四块
#define LCD((LCD_TypeDef *) LCD_BASE)

void LCD_WriteReg(u8 LCD_Reg,u16 LCD_RegValue)
{

LCD->LCD_REG = LCD_Reg;

LCD->LCD_RAM = LCD_RegValue;
}

u16 LCD_ReadReg(u8 LCD_Reg)
{

LCD->LCD_REG = LCD_Reg;

return (LCD->LCD_RAM);
}
当然也能够自己操作,彻底在于自己。
————————————————————————————————–
初始化问题:
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]。
————————————————————————————————–
————————————————————————————————–
FSMC的优点便是你一旦设置好之后,WR、RD、DB0-DB15这些操控线和数据线,都是FSMC主动操控的。打个比方,当你在程序中写到:
(volatile unsigned short int*)(0x60000000)=val;
那么FSMC就会主动履行一个写的操作,其对应的主控芯片的WE、RD这些脚,就会出现出写的时序出来(即WE=0,RD=1),数据val的值也会经过 DB0-15主动出现出来(即FSMC-D0:FSMC-D15=val)。地址0x60000000会被出现在数据线上(即A0-A25=0,地址线的对应最费事,要依据具体状况来,好好看看FSMC手册)。
衔接好之后,读写时序都会被FSMC主动完结。可是还有一个很要害的问题,便是RS没有接,CS没有接。由于在FSMC里边,根本就没有对应RS和CS的脚。怎么办呢?这个时分,有一个好办法,便是用某一根地址线来接RS。比方咱们挑选了A16这根地址线来接,那么当咱们要写寄存器的时分,咱们需求RS,也便是A16置高。软件中怎么做呢?也便是将FSMC要写的地址改成0x60020000,如下:
(volatile unsigned short int*)(0x60020000)=val;
这个时分,A16在履行其他FSMC的一起会被拉高,由于A0-A18要出现出地址0x60020000。0x60020000里边的Bit17=1,就会导致A16为1。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/257594.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部