本博客为本人学生时代的技术博客,工作后10年已经不再更新,需要关注可以访问geekpm.com,点击访问!

STM32访问外部存储器-NOR-Flash

 

基本说明

STM32访问外部存储器是需要配置FSMC的相关函数,在STM32固件库函数说明的中文翻译版中并没有这部分的说明,因此需要参考库函数的相关说明和库中自带的例程。

以下内容来自AN2784应用笔记:

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闪存编程时,存储器会自动地在同步与异步之间切换;因此,必须正确地设置所有的参数

 

 

 

程序分析

 

实际例程

以下例程来自  stm3210e_eval_fsmc_nor.c具体信息参加固件库中源文件。

 

 

posted @ 2011-01-05 09:46  emouse  阅读(4184)  评论(0编辑  收藏  举报