
前言 这个应用笔记说明了如何使用大容量的STM32F10xxx的FSMC(灵活的静态存储器控制器)驱动一组外部的存储器。文中首先简要地介绍了STM32F10xxx的FSMC控制器,然后给出了包含典型的FSMC配置的存储器接口实例,以及时序计算和硬件连接方法。 本应用笔记的实例是基于STM3210E-EVAL评估版上的存储器,这是大容量STM32F10xxx的评估版。使用的存储器是一个16位的异步NOR闪存存储器,一个8位的NAND闪存存储器和一个16位的异步SRAM存储器。 1 STM32F10xxx灵活的静态存储器控制器简介 灵活的静态存储器控制器(FSMC)是内置于大容量STM32F10xxx的外部存储器控制器。使用这个控制器,STM3210xxx微控制器可以与许多存储器连接,包括SRAM、NOR闪存和NAND闪存等。 FSMC包含2类控制器: ● 一个NOR闪存/SRAM控制器,可以与NOR闪存、SRAM和PSRAM存储器接口。 ● 一个NAND闪存/PC卡控制器,可以与NAND闪存、PC卡、CF卡和CF+存储器接口。 控制器产生所有驱动这些存储器的信号时序: ● 16个数据线,用于连接8位或16位存储器 ● 26个地址线,最多可连接64M字节的存储器(译注:这里不包括片选线) ● 5个独立的片选信号线 ● 一组适合不同类型存储器的控制信号线: ─ 控制读/写操作 ─ 与存储器通信,提供就绪/繁忙信号和中断信号 ─ 与所用配置的 PC 卡接口: PC 存储卡、PC I/O 卡和真正的 IDE 接口 下面是FSMC的框图。 ![]() ● NOR闪存/SRAM控制器使用存储块1访问4个存储器设备,这个存储块被划分为4个区域,具有4个专用的片选信号。 ● NAND闪存/PC卡控制器使用存储块2和3访问NAND闪存设备。 ● NAND闪存/PC卡控制器使用存储块4访问PC卡设备。 对于每个存储块,使用的存储器类型是用户通过配置寄存器定义的。 ![]() 2 与非总线复用模式的异步16位NOR闪存接口 2.1 FSMC配置 控制一个NOR闪存存储器,需要FSMC提供下述功能: ● 选择合适的存储块映射NOR闪存存储器:共有4个独立的存储块可以用于与NOR闪存、SRAM和PSRAM存储器接口,每个存储块都有一个专用的片选管脚。 ● 使用或禁止地址/数据总线的复用功能。 ● 选择所用的存储器类型:NOR闪存、SRAM或PSRAM。 ● 定义外部存储器的数据总线宽度:8或16位。 ● 使用或关闭同步NOR闪存存储器的突发访问模式。 ● 配置等待信号的使用:开启或关闭,极性设置,时序配置。 ● 使用或关闭扩展模式:扩展模式用于访问那些具有不同读写操作时序的存储器。 因为NOR闪存/SRAM控制器可以支持异步和同步存储器,用户只须根据存储器的参数配置使用到的参数。 FSMC提供了一些可编程的参数,可以正确地与外部存储器接口。依存储器类型的不同,有些参数是不需要的。 当使用一个外部异步存储器时,用户必须按照存储器的数据手册给出的时序数据,计算和设置下列参数: ● ADDSET:地址建立时间 ● ADDHOLD:地址保持时间 ● DATAST:数据建立时间 ● ACCMOD:访问模式 这个参数允许 FSMC可以灵活地访问多种异步的静态存储器。共有4种扩展模式允许以不同的时序分别读写存储器。 在扩展模式下,FSMC_BTR用于配置读操作,FSMC_BWR用于配置写操作。(译注:如果读时序与写时序相同,只须使用FSMC_BTR即可。) 如果使用了同步的存储器,用户必须计算和设置下述参数: ● CLKDIV:时钟分频系数 ● DATLAT:数据延时 如果存储器支持的话,NOR闪存的读操作可以是同步的,而写操作仍然是异步的。 当对一个同步的NOR闪存编程时,存储器会自动地在同步与异步之间切换;因此,必须正确地设置所有的参数。 图3和图4示出了对于一个典型的NOR闪存不同的读写时序。 ![]() ![]() 2.1.1 与NOR闪存存储器接口的典型应用 STM32F10xxx的FSMC有4个各为64M字节的不同存储块,支持NOR闪存、PSRAM存储器和相同的外部存储器。 所有外部存储器共用控制器的地址、数据和控制信号线,每个外部设备由唯一的片选信号区分,而FSMC在任一时刻只访问一个外部设备。 每个存储块都有一组专用的寄存器,配置不同的功能和时序参数。 本文以M29W128FL存储器作为参考。M29W128FL是一个16位、异步、非总线共享的NOR闪存存储器,因此FSMC应按下述方式配置: 选用存储块2驱动这个NOR闪存存储器: ● 使能存储块2:设置BCR2_MBKEN位为’1’ ● 存储器类型为NOR:设置BCR2_MTYP为’10’,选择NOR存储器类型 ● 数据总线宽度为16位:设置BCR2_MWID为’01’,选择16位宽度 ● 这是非总线共享存储器:清除BCR2_MUXEN为’0’ 保持其它的所有参数为清除状态。 完整版请查看:附件 |
CD00200423_ZHV1.pdf
下载781.48 KB, 下载次数: 6