初学STM32 --- 外部SRAM

目录

SRAM简介

SRAM特性:

[XM8A51216 功能框图](#XM8A51216 功能框图)

8080并口读时序​编辑

8080并口写时序

[SRAM 读写操作步骤](#SRAM 读写操作步骤)

FSMC介绍

FSMC时序介绍

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

[FSMC HAL库相关驱动](#FSMC HAL库相关驱动)

SRAM驱动步骤


SRAM****简介

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

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

SRAM特性:

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

低功耗:80MHz时55mA,待机电流 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、设置获取数据方式: 掩码信号BLE和BHE指示要访问目标地址的高、低字节部分

5、获取数据:

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

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

FSMC****介绍

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

FSMC时序介绍

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

异步时序:

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

FSMC****控制器对内核地址映射

FSMC HAL库相关驱动

cpp 复制代码
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空间 全局变量

cpp 复制代码
uint32_t g_test_buffer[250000] __attribute__((at(SRAM_BASE_ADDR)));

g_test_buffer[i] = i;

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

相关推荐
szxinmai主板定制专家6 小时前
驱控一体新范式:RK3576+FPGA+CODESYS工业实时AI控制架构全解
人工智能·嵌入式硬件·计算机视觉·fpga开发·架构·工业ai·驱控一体
国科安芯7 小时前
ASC0101S自动双向电平转换原理深剖
单片机·嵌入式硬件·fpga开发·云计算·信息与通信
李永奉7 小时前
中科蓝讯SDK开发-开启串口Debug打印调试教程
单片机·嵌入式硬件·mcu·物联网·电脑
LCG元7 小时前
STM32硬件SPI驱动OLED SSD1306显示屏全流程实战:从CubeMX配置到中英文显示
stm32·单片机·嵌入式硬件
sukalot8 小时前
windows网络适配器驱动开发-双 STA 连接(下)
windows·驱动开发·stm32
飞凌嵌入式8 小时前
性能翻倍·功耗减半!RK3572八核核心板,重构嵌入式计算新标杆
人工智能·嵌入式硬件·飞凌嵌入式
zcmodeltech8 小时前
智慧农业沙盘模型物联网控制系统设计:基于STM32与Modbus RTU的传感器-执行器闭环方案
服务器·分布式·stm32·嵌入式硬件·物联网·能源
WD1372980155719 小时前
WD5030L,超高集成度、大电流输出、高效率低发热,限流24V转12V,6A
stm32·单片机·嵌入式硬件·51单片机
~光~~21 小时前
【xv6学习】L0_环境配置
单片机·嵌入式硬件·学习
映翰通网络1 天前
TI开发板上的边缘AI工具链:先认清OpenCV、GStreamer和TIDL
人工智能·嵌入式硬件·opencv·计算机视觉·ti