STM32F4xx FMC外部扩展SDRAM做显存使用

参考资料:《stm32f4xx中文参考手册》《stm32f4xx规格书》

使用背景:使用LTDC接口显示大容量图片时,FMC驱动SDRAM用作显存

一、SDRAM基本介绍

SDRAM芯片PIN脚图

SDRAM引脚说明

信号线 类型 说明 CLK I 同步时钟信号,所有输入信号都在CLK为上升沿的时候被采集 CKE I 时钟使能信号,禁止时钟信号时SDRAM会启动自刷新操作 CS# I 片选信号,低电平有效 CAS# I 列地址选通,为低电平时地址线表示的是列地址 RAS# I 行地址选通,为低电平时地址线表示的是行地址 WE# I 写入使能,低电平有效 DQM[0:1] I 数据输入/输出掩码信号,表示DQ信号线的有效部分 BA[0:1] I Bank地址输入,选择要控制的Bank A[0:11] I 地址输入 DQ[0:15] I/O 数据输入输出信号

二、FMC接口说明

1.FMC简介

STM32F429使用FMC外设来管理扩展的存储器,FMC是Flexible Memory Controller的缩写,译为可变存储控制器。它可以用于驱动包括SRAM、SDRAM、NOR FLASH以及NAND FLSAH类型的存储器。在其它系列的STM32控制器中,FSMC控制器(Flexible Static Memory Controller),译为可变静态存储控制器,所以它们不能驱动SDRAM这样的动态存储器,因为驱动SDRAM时需要定时刷新,STM32F429的FMC外设才支持该功能,且只支持普通的SDRAM,不支持DDR类型的SDRAM。

2.FMC SDRAM控制器引脚说明

FMC引脚名称 对应SDRAM芯片引脚名 说明 FMC_NBL[3:0] DQM[3:0] 数据掩码信号 FMC_A[12:0] A[12:0] 行/列地址线 FMC_A[15:14] BA[1:0] Bank地址线 FMC_D[31:0] DQ[31:0] 数据线 FMC_SDCLK CLK 同步时钟信号 FMC_SDNWE WE# 写入使能 FMC_SDCKE[1:0] CKE SDCKE0:SDRAM 存储区域 1 时钟使能 SDCKE1:SDRAM 存储区域 2 时钟使能 FMC_SDNE[1:0] CS# SDNE0:SDRAM 存储区域 1 芯片使能 SDNE1:SDRAM 存储区域 2 芯片使能 FMC_NRAS RAS# 行地址选通信号 FMC_NCAS CAS# 列地址选通信号

其中FMC_A[15:14]引脚用作Bank的寻址线;而FMC_SDCKE线和FMC_SDNE都各有2条,FMC_SDCKE用于控制SDRAM的时钟使能,FMC_SDNE用于控制SDRAM芯片的片选使能。它们用于控制STM32使用不同的存储区域驱动SDRAM,使用编号为0(FMC_SDNE0)的信号线组会使用STM32的Bank1,使用编号为1(FMC_SDNE1)的信号线组会使用存储器区域Bank2。使用不同存储区域时,STM32访问SDRAM的地址不一样,Bank1的起始地址为0xC0000000,Bank2为0xD0000000

经验分享 程序员 微信小程序 职场和发展