使用大容量 STM32F10xxx 的 FSMC驱动外部的存储器' i: ^6 W& G9 w3 [+ G5 j 前言 % |/ ^8 J% |3 K- @, O) L 这个应用笔记说明了如何使用大容量的STM32F10xxx的FSMC(灵活的静态存储器控制器)驱动一组外部的存储器。文中首先简要地介绍了STM32F10xxx的FSMC控制器,然后给出了包含典型的FSMC配置的存储器接口实例,以及时序计算和硬件连接方法。 $ ?. h; X3 R2 k, U " m7 S0 f4 _% A, [7 p 本应用笔记的实例是基于STM3210E-EVAL评估版上的存储器,这是大容量STM32F10xxx的评估版。使用的存储器是一个16位的异步NOR闪存存储器,一个8位的NAND闪存存储器和一个16位的异步SRAM存储器。 : r7 f9 Z" `4 S* J i9 S; z 文中实例用到的固件库函数和不同存储器的驱动程序,可以在STMicroelectronics的网站上下载:www.st.com/mcu。 1 STM32F10xxx灵活的静态存储器控制器简介 灵活的静态存储器控制器(FSMC)是内置于大容量STM32F10xxx的外部存储器控制器。使用这个控制器,STM3210xxx微控制器可以与许多存储器连接,包括SRAM、NOR闪存和NAND闪存等。 ; | q4 O: ?- M, m # Z5 z1 F1 T% ^* ], d; v, s FSMC包含2类控制器: ● 一个NOR闪存/SRAM控制器,可以与NOR闪存、SRAM和PSRAM存储器接口。5 N$ d) |$ b* z) e& X ● 一个NAND闪存/PC卡控制器,可以与NAND闪存、PC卡、CF卡和CF+存储器接口。控制器产生所有驱动这些存储器的信号时序: ● 16个数据线,用于连接8位或16位存储器2 D5 U6 g5 K2 j7 P% _" k ● 26个地址线,最多可连接64M字节的存储器(译注:这里不包括片选线) ● 5个独立的片选信号线) o% k j6 u6 T- |' Z1 A ● 一组适合不同类型存储器的控制信号线: ─ 控制读/写操作/ ~& @, n h/ y8 G1 z ─ 与存储器通信,提供就绪/繁忙信号和中断信号3 u9 u7 y" d1 j4 }& R ─ 与所用配置的 PC 卡接口: PC 存储卡、PC I/O 卡和真正的 IDE 接口 下面是FSMC的框图。 & p, E" H! ~1 u7 L0 O' Z$ y! v# q 图1 FSMC框图" k& o7 Z% a' ]& D 从FSMC的角度看,外部存储器分为4个固定大小为256M字节的存储块,如图2所示。 5 i9 x: s, e7 Q* o8 L- f8 G ● NOR闪存/SRAM控制器使用存储块1访问4个存储器设备,这个存储块被划分为4个区域,具有4个专用的片选信号。 2 M. J# j/ J7 o5 m( i1 J ● NAND闪存/PC卡控制器使用存储块2和3访问NAND闪存设备。 ) c9 b! ~4 p+ y ● NAND闪存/PC卡控制器使用存储块4访问PC卡设备。 对于每个存储块,使用的存储器类型是用户通过配置寄存器定义的。 7 b, h8 ~1 Y6 r# t" r" d) a0 ^4 q6 D! d% F2 W! J: I% y |
小马哥STM32F103开源小四轴RoboFly全部资料大放送
STM32固件库分享,超全系列整理
【MCU实战经验】+STM32F107的USB使用
基于STM32F103两轮平衡小车设计(开源)
STM32F107VCT6官方原理图和PCB
【福利】用STM32库的朋友有福了:STM32F10x_StdPeriph_Lib_V3.5.0chm...
基于STM32F10xx存储器和系统架构经验分享
基于STM32F1的CAN通信之BH1750
基于STM32F1的CAN通信之OLED
基于STM32F1的CAN通信之之串口IAP