你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2264|回复: 0

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第四十二章 外部SRAM实验

[复制链接]

50

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-4-2 23:08:22 | 显示全部楼层 |阅读模式

<div style="padding-bottom: 5px; line-height: 1.5; background-color: rgb(255,255,255); margin: 0px; padding-left: 5px; padding-right: 5px; color: rgb(0,0,0); font-size: 12px; padding-top: 5px"><a name="_Toc342394325">42.1 IS62WV51216简介
IS62WV51216是ISSI(Integrated Silicon Solution, Inc)公司生产的一颗16位宽512K(512*16,即1M字节)容量的CMOS静态内存芯片。该芯片具有如下几个特点:
l  高速。具有45ns/55ns访问速度。
l  低功耗。
l  TTL电平兼容。
l  全静态操作。不需要刷新和时钟电路。
l  三态输出。
l  字节控制功能。支持高/低字节控制。
IS62WV51216的功能框图如图42.1.1所示:

图42.1.1 IS62WV51216功能框图

       图中A0~18为地址线,总共19根地址线(即2^19=512K,1K=1024);IO0~15为数据线,总共16根数据线。CS2和CS1都是片选信号,不过CS2是高电平有效CS1是低电平有效;OE是输出使能信号(读信号);WE为写使能信号;UB和LB分别是高字节控制和低字节控制信号;
战舰STM32开发板使用的是TSOP44封装的IS62WV51216芯片,该芯片直接接在STM32的FSMC上,IS62WV51216原理图如图42.1.2所示:

图42.1.2 IS62WV51216原理图

       从原理图可以看出,IS62WV51216同STM32的连接关系:
            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
本章,我们使用FSMC的BANK1 区域3来控制IS62WV51216,关于FSMC的详细介绍,我们在第十八章已经介绍过,在第十八章,我们采用的是读写不同的时序来操作TFTLCD模块(因为TFTLCD模块读的速度比写的速度慢很多),但是在本章,因为IS62WV51216的读写时间基本一致,所以,我们设置读写相同的时序来访问FSMC。关于FSMC的详细介绍,请大家看第十八章和《STM32参考手册》。
IS62WV51216就介绍到这,最后,我们来看看实现IS62WV51216的访问,需要对FSMC进行哪些配置。步骤如下:
1)使能FSMC时钟,并配置FSMC相关的IO及其时钟使能。
    要使用FSMC,当然首先得开启其时钟。然后需要把FSMC_D0~15,FSMCA0~18等相关IO口,全部配置为复用输出,并使能各IO组的时钟。
2)设置FSMC BANK1 区域3的相关寄存器。
此部分包括设置区域3的存储器的工作模式、位宽和读写时序等。本章我们使用模式A、16位宽,读写共用一个时序寄存器。
3)使能BANK1区域3
最后,只需要通过FSMC_BCR寄存器使能BANK1,区域3即可。
通过以上几个步骤,我们就完成了FSMC的配置,可以访问IS62WV51216了,这里还需要注意,因为我们使用的是BANK1的区域3,所以HADDR[27:26]=10,故外部内存的首地址为0X68000000。      
<a name="_Toc342394327">42.3 软件设计
打开上一章的工程,首先在HARDWARE文件夹下新建一个SRAM的文件夹。然后新建sram.c和sram. h两个文件,将他们保存在SRAM文件夹下,并将这个文件夹加入头文件包含路径。
       打开sram.c文件,输入如下代码:
#include "sram.h"    
#include "usart.h"
//使用NOR/SRAM的 Bank1.sector3,地址位HADDR[27,26]=10
//对IS61LV25616/IS62WV25616,地址线范围为A0~A17
//对IS61LV51216/IS62WV51216,地址线范围为A0~A18
#define Bank1_SRAM3_ADDR    ((u32)(0x68000000)) 
//初始化外部SRAM
void FSMC_SRAM_Init(void)
{                                          
       RCC->AHBENR|=1CRH|=0XBBBBBBBB; //PORTE复用推挽输出  
       GPIOE->CRL&=0X0FFFFF00;
       GPIOE->CRL|=0XB00000BB;    
       GPIOF->CRH&=0X0000FFFF;
       GPIOF->CRH|=0XBBBB0000;     //PORTF复用推挽输出      
       GPIOF->CRL&=0XFF000000;
       GPIOF->CRL|=0X00BBBBBB;         
       GPIOG->CRH&=0XFFFFF0FF;
       GPIOG->CRH|=0X00000B00;     //PORTG复用推挽输出 PG10->NE3    
      GPIOG->CRL&=0XFF000000;
       GPIOG->CRL|=0X00BBBBBB; 
       //寄存器清零
       //bank1有NE1~4,每一个有一个BCR+TCR,所以总共八个寄存器。
       //这里我们使用NE3 ,也就对应BTCR[4],[5]。                             
       FSMC_Bank1->BTCR[4]=0X00000000;
       FSMC_Bank1->BTCR[5]=0X00000000;
       FSMC_Bank1E->BWTR[4]=0X00000000;
       //操作BCR寄存器       使用异步模式,模式A(读写共用一个时序寄存器)
       //BTCR[偶数]:BCR寄存器;BTCR[奇数]:BTR寄存器
<div style="margin: 5px 0px">       FSMC_Bank1->BTCR[4]|=1

《STM32开发指南》第四十二章 外部SRAM实验.rar

下载

575.77 KB, 下载次数: 8, 下载积分: ST金币 -1

实验37 外部SRAM实验.rar

下载

185.05 KB, 下载次数: 7, 下载积分: ST金币 -1

回复

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版