Download presentation
Presentation is loading. Please wait.
Published byἸοῦστος Αυγερινός Modified 6年之前
1
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话: ddddd ALIENTEK 淘宝店铺: 技术论坛:
2
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 外部SRAM实验 适用平台 STM32 开发板 (正点原子) ddddd 淘宝店铺: 技术论坛:
3
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
本视频重点参考资料 参考资料: 1,战舰STM32F1开发板 《STM32F1开发指南-库函数版本》第四十一章 外部SRAM实验 2,探索者STM32F4开发板 《STM32F4开发指南-库函数版本》第四十一章 外部SRAM实验 3,FSMC参考资料 《STM32中文参考手册_V10》-第19章 灵活的静态存储器控制器(FSMC) 《STM32F4xx中文参考手册》-第32章 灵活的静态存储控制器(FSMC) 4,SRAM参考资料: 光盘:硬件资料芯片资料 IS62WV51216.pdf 淘宝店铺: 技术论坛:
4
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
目录 IS62WV51216简介 1 SRAM简介 1 硬件连接 2 FSMC简介 2 硬件连接 3 源码讲解&例程测试 3 源码讲解&例程测试 4 淘宝店铺: 技术论坛:
5
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、IS62WV51216简介-什么是IS62WV51216? IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512*16,即1M字节)容量的CMOS静态内存(SRAM)芯片。 淘宝店铺: 技术论坛:
6
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、IS62WV51216简介-IS62WV51216特点 ①高速。具有45ns/55ns访问速度。 ②低功耗。操作时:36mW;待机时:12uW。 ③兼容TTL电平。 ④全静态操作。不需要刷新和时钟电路。 ⑤三态输出。 ⑥字节控制功能。支持高/低字节控制。 淘宝店铺: 技术论坛:
7
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、IS62WV51216简介-IS62WV51216框图 图中A0~18为地址线,总共19根地址线(即2^19=512K,1K=1024);I/O0~15为数据线,总共16根数据线。CS2和CS1都是片选信号,不过CS2是高电平有效CS1是低电平有效;OE是输出使能信号(读信号);WE为写使能信号;UB和LB分别是高字节控制和低字节控制信号; 淘宝店铺: 技术论坛:
8
1、IS62WV51216简介-读时序 IS62WV51216读时序 右图为:IS62WV51216芯片的8080并口读时序,详见:IS62WV51216.pdf 重点时序: 读周期时间(tRC) 地址建立时间(tAA) OE建立时间(tDOE) 我们开发板使用55ns的IS62WV51216,tRC=55ns tAA=55ns(Max),tDOE=25ns(Max) 淘宝店铺: 技术论坛:
9
1、IS62WV51216简介-写时序 IS62WV51216写时序 右图为:IS62WV51216芯片的8080并口写时序,详见:IS62WV51216.pdf 重点时序: 写周期时间(tWC) 地址建立时间(tSA) WE脉宽(tPWE) 我们开发板使用55ns的IS62WV51216,tWC=55ns tSA=0ns,tPWE=45ns(min) 淘宝店铺: 技术论坛:
10
2、FSMC简介-FSMC介绍 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存储器。FSMC的框图如下图所示: 在TFTLCD显示实验,我们给大家详细介绍了FSMC,所以本视频只做概要性介绍,详细的,请看TFTLCD显示实验 淘宝店铺: 技术论坛:
11
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-FSMC驱动IS62WV51216原理 FSMC驱动外部SRAM时,外部SRAM的控制一般有:地址线(如A0~A25)、数据线(如D0~D15)、写信号(WE,即WR)、读信号(OE,即RD)、片选信号(CS),如果SRAM支持字节控制,那么还有UB/LB信号。 而IS62WV51216的信号我们在前面介绍过,包括:I/O0~I/O15、A0~A18、OE、WE、CS、UB、LB等,我们将这些信号依次连接STM32 FSMC接口的D0~D15、A0~A18、OE、WE、CS、UB、LB等信号即可。 淘宝店铺: 技术论坛:
12
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-NOR PSRAM外设接口 STM32的FSMC支持8/16位数据宽度,我们这里用到的SRAM是16位宽度的,所以在设置的时候,选择16位宽就OK了。FSMC的外部设备地址映像,STM32的FSMC将外部存储器划分为固定大小为256M字节的四个存储块 淘宝店铺: 技术论坛:
13
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-存储块1 操作简介 STM32的FSMC存储块1(Bank1)用于驱动NOR FLASH/SRAM/PSRAM,被分为4个区,每个区管理64M字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。Bank1的256M字节空间由28根地址线(HADDR[27:0])寻址。 这里HADDR,是内部AHB地址总线,其中,HADDR[25:0]来自外部存储器地址FSMC_A[25:0],而HADDR[26:27]对4个区进行寻址。如下表所示: 当Bank1接的是16位宽度存储器的时候:HADDR[25:1] FSMC_A[24:0] 当Bank1接的是8位宽度存储器的时候:HADDR[25:0] FSMC_A[25:0] 不论外部接8位/16位宽设备,FSMC_A[0]永远接在外部设备地址A[0] 淘宝店铺: 技术论坛:
14
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-存储块1 操作简介 STM32的FSMC存储块1 支持的异步突发访问模式包括:模式1、模式A~D等多种时序模型,驱动SRAM时一般使用模式1或者模式 A,这里我们使用模式A来驱动SRAM,其他模式说明详见:STM32中文参考手册-FSMC章节。 模式A读时序图 模式A写时序图 模式A支持读写时序分开设置! 对STM32F4仅写时序DATAST需要+1 淘宝店铺: 技术论坛:
15
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-寄存器介绍 对于NOR FLASH/PSRAM控制器(存储块1),通过FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器设置(其中x=1~4,对应4个区)。通过这3个寄存器,可以设置FSMC访问外部存储器的时序参数,拓宽了可选用的外部存储器的速度范围。 SRAM/NOR闪存片选控制寄存器(FSMC_BCRx) EXTMOD:扩展模式使能位,控制是否允许读写不同的时序,设置为0 WREN:写使能位。我们需要向SRAM写数据,故该位必须设置为1 MWID[1:0]:存储器数据总线宽度。00,表示8位数据模式;01表示16位数据模式;10和11保留。我们的SRAM是16位数据线,所以设置WMID[1:0]=01。 MTYP[1:0]:存储器类型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。我们驱动的芯片为SRAM,所以需要设置MTYP[1:0]=00。 MBKEN:存储块使能位。需设置为1 淘宝店铺: 技术论坛:
16
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-寄存器介绍 SRAM/NOR闪存片选时序寄存器(FSMC_BTRx) ACCMOD[1:0]:访问模式。00:模式A;01:模式B;10:模式C;11:模式D。 DATAST[7:0]:数据保持时间,等于: DATAST(+1)个HCLK时钟周期,DATAST最大为255。对IS62WV51216来说,其实就是OE/WE低电平持续时间,最大为55ns。对STM32F1,一个HCLK=13.8ns (1/72M),设置为3;对STM32F4,一个HCLK=6ns(1/168M) ,设置为8。 ADDSET[3:0]:地址建立时间。表示:ADDSET (+1)个HCLK周期,ADDSET最大为15。对IS62WV51216来说,访问周期最快位55ns,而我们前面的设置,已经可以保证访问周期不小于55ns,因此这个地址建立时间,我们可以直接设置为0即可。 因为设置了EXTMOD位,所以读写时序共用这个时序寄存器! 淘宝店铺: 技术论坛:
17
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、FSMC简介-寄存器介绍 寄存器组合说明 在ST官方库提供的的寄存器定义里面,并没有定义FSMC_BCRx、FSMC_BTRx、FSMC_BWTRx等这个单独的寄存器,而是将他们进行了一些组合。规律如下: FSMC_BCRx和FSMC_BTRx,组合成BTCR[8]寄存器组,他们的对应关系如下: BTCR[0]对应FSMC_BCR1,BTCR[1]对应FSMC_BTR1 BTCR[2]对应FSMC_BCR2,BTCR[3]对应FSMC_BTR2 BTCR[4]对应FSMC_BCR3,BTCR[5]对应FSMC_BTR3 BTCR[6]对应FSMC_BCR4,BTCR[7]对应FSMC_BTR4 FSMC_BWTRx则组合成BWTR[7],他们的对应关系如下: BWTR[0]对应FSMC_BWTR1,BWTR[2]对应FSMC_BWTR2, BWTR[4]对应FSMC_BWTR3,BWTR[6]对应FSMC_BWTR4, BWTR[1]、BWTR[3]和BWTR[5]保留,没有用到。 淘宝店铺: 技术论坛:
18
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、硬件连接-战舰 V3 STM32F1开发板 战舰V3 STM32F103开发板,IS62WV51216与STM32F103ZET6的连接原理图左图: 具体连接关系: A[0:18]接FMSC_A[0:18] D[0:15]接FSMC_D[0:15] UB接FSMC_NBL1 LB接FSMC_NBL0 OE接FSMC_OE WE接FSMC_WE CS接FSMC_NE3 淘宝店铺: 技术论坛:
19
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、硬件连接-探索者STM32F4开发板 探索者STM32F407开发板,IS62WV51216与STM32F407ZGT6的连接原理图左图: 具体连接关系: A[0:18]接FMSC_A[0:18] D[0:15]接FSMC_D[0:15] UB接FSMC_NBL1 LB接FSMC_NBL0 OE接FSMC_OE WE接FSMC_WE CS接FSMC_NE3 淘宝店铺: 技术论坛:
20
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-源码说明 1,战舰V3 STM32F103开发板源码 光盘程序源码标准例程(库函数/寄存器)实验36 外部SRAM实验 2,探索者STM32F407开发板源码 淘宝店铺: 技术论坛:
21
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-驱动代码 1, FSMC_SRAM_Init函数 2, FSMC_SRAM_WriteBuffer函数 3, FSMC_SRAM_ReadBuffer函数 淘宝店铺: 技术论坛:
22
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-main函数 战舰 V3和探索者STM32F407开发板,本例程main函数都大同小异,代码几乎一模一样。 重点以战舰V3 本例程的main函数为例讲解,探索者STM32F4开发板参考着看即可。 淘宝店铺: 技术论坛:
23
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-例程测试 例程测试 淘宝店铺: 技术论坛:
24
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 淘宝店铺: 技术论坛:
Similar presentations