当前位置: 首页 > news >正文

初学STM32 --- 外部SRAM

目录

SRAM简介

SRAM特性:

XM8A51216 功能框图

 8080并口读时序​编辑

 8080并口写时序

SRAM 读写操作步骤

FSMC介绍

 FSMC时序介绍

 FSMC控制器对内核地址映射​编辑

 FSMC HAL库相关驱动

 SRAM驱动步骤


SRAM简介

静态随机存取存储器(Static Random-Access Memory,SRAM)

1M字节容量的SRAM芯片XM8A51216为例介绍。

SRAM特性:

高速:具有最高访问速度15ns

低功耗:80MHz55mA,待机电流 20mA

TTL电平兼容

全静态操作:不需要刷新和时钟电路

三态输出

字节控制功能:支持高/低字节控制

XM8A51216 功能框图

每个地址存放16Bit数据,总容量1MB

A0~18:19根地址线,2^19 = 512K

DQ0~15:16根数据线,输入/输出

CEn:芯片使能信号,低电平有效

OEn:输出()使能信号,低电平有效

WEn:写使能信号,低电平有效

BLEn:低字节控制信号(DQ0~7有效)

BHEn:高字节控制信号(DQ8~15有效)

 8080并口读时序

 这里要注意,tRC读周期时间最小为15ns

tACE地址建立时间,也就是从接收到地址信号到给有效数据的时间。最大为12ns

tDOE OE建立时间,也就是从接收到读使能信号到给有效数据的时间。最大3.4ns

 8080并口写时序

 这里要注意,tWC读周期时间最小为15ns

tSA地址建立时间,也就是从发送地址信号到给写使能信号的时间。最大为12ns

tPWE WE建立时间,也就是从接收到写使能信号到数据采集的时间。最大3.4ns

SRAM 读写操作步骤

1、设置地址信号线:        发出要访问的存储器目标地址

2、控制片选信号:        选中器件

3、决定数据操作方式

读操作,控制读使能信号OE表示读数据

写操作,控制写使能信号WE表示写数据

4、设置获取数据方式:        掩码信号BLEBHE指示要访问目标地址的高、低字节部分

5、获取数据:        

读过程,存储器通过数据线向主机输出目标地址数据

写过程,使用数据线向存储器目标地址写入目标数据

FSMC介绍

FSMC,灵活的静态存储控制器,能驱动SRAMNOR/NAND Flash等存储器。

 FSMC时序介绍

FSMCFlexible灵活的,可以产生多种时序来控制外部存储器。

 异步时序:

 

注意:A[0:18] 并不是顺序连接FSMC_A[0:18],不影响正常使用SRAM,因为地址具有唯一性。 

 FSMC控制器对内核地址映射

 FSMC HAL库相关驱动

HAL_StatusTypeDef HAL_SRAM_Init ( 
SRAM_HandleTypeDef *hsram, 
FSMC_NORSRAM_TimingTypeDef *Timing, 
FSMC_NORSRAM_TimingTypeDef *ExtTiming )                                                    

SRAM_HandleTypeDef 中,设置

FSMC_NORSRAM_TypeDef *Instance; 为        FSMC_NORSRAM_DEVICE;

FSMC_NORSRAM_EXTENDED_TypeDef *Extended;FSMC_NORSRAM_EXTENDED_DEVICE

FSMC_NORSRAM_InitTypeDef Init;为SRAM初始化结构体。

 

 SRAM驱动步骤

1、配置FSMC:        使能FSMC时钟,并配置FSMC相关的IO(复用输出)及其时钟使能

2、设置FSMC相关参数:        设置Bank1第三区的存储器 工作模式、位宽和读写时序参数

3、进行数据访问:根据区域,决定操作外部内存的首地址

直接指定变量存储到SRAM空间        全局变量

uint32_t g_test_buffer[250000] __attribute__((at(SRAM_BASE_ADDR)));g_test_buffer[i] = i;

注意CPU通过AHB总线访问FSMC上的设备,可以按字/半字/字节访问,AHB自动转化控制FSMC访问。


http://www.mrgr.cn/news/82340.html

相关文章:

  • 模型 九屏幕分析法
  • EPS32基础篇开发
  • 量子行走的干涉性和叠加性
  • 解决 ssh connect to host github.com port 22 Connection timed out
  • 《塑战核心》V1.0.0.9952官方中文版
  • 基于51单片机(STC32G12K128)和8X8彩色点阵屏(WS2812B驱动)的小游戏《贪吃蛇》
  • USB 中断传输的 PID 序列
  • golang后台框架总结
  • 【PostgreSQL】PG多实例部署
  • 算法题(23):只出现一次的数字
  • win32汇编环境,对话框中显示bmp图像文件
  • linux常用命令合集
  • 2025/1/2
  • MQ-导读
  • 设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析
  • Windows下使用bat实现端口映射进程守护
  • 【技术新浪潮】DeepSeek-V3:中国AI的开源巨浪,全球AI格局的破局者
  • 使用Python,networkx构造有向图及无向图以及图合并等api
  • vue设计与实现-框架设计
  • FPGA随记——过约束
  • WPF的一些控件的触发事件记录
  • 我在广州学 Mysql 系列——有关数据表的插入、更新与删除相关练习
  • 在DJI无人机上运行VINS-FUISON(PSDK 转 ROS)
  • 人脑处理信息的速度与效率:超越计算机的直观判断能力
  • win32汇编环境,窗口程序显示bmp图像文件
  • Structured-Streaming集成Kafka