『』Stm32F103R6之FSMC( 二 )


文章图片

文章图片

图 2FSMC存储块NOR和PSRAM地址映像
HADDR[27:26](片选信号)位用于选择四个存储块之一:
『』Stm32F103R6之FSMC
文章图片

文章图片

图 3NOR/PSRAM存储块选择
(1) HADDR是需要转换到外部存储器的内部AHB地址线 。HADDR[25:0]包含外部存储器地址 。HADDR是字节地址 , 而存储器访问不都是按字节访问 , 因此接到存储器的地址线依存储器的数据宽度有所不同 , 如下表:
图 4外部存储器地址
(1) 对于16位宽度的外部存储器 , FSMC将在内部使用HADDR[25:1]产生外部存储器的地址FSMC_A[24:0] 。不论外部存储器的宽度是多少(16位或8位) , FSMC_A[0]始终应该连到外部存储器的地址线A[0] 。
NOR闪存和PSRAM的非对齐访问支持
每个NOR闪存或PSRAM存储器块都可以配置成支持非对齐的数据访问 。在存储器一侧 , 依据访问的方式是异步或同步 , 需要考虑两种情况:
● 异步模式:这种情况下 , 只要每次访问都有准确的地址 , 完全支持非对齐的数据访问 。
● 同步模式:这种情况下 , FSMC只发出一次地址信号 , 然后成组的数据传输通过时钟CLK顺序进行 。
某些NOR存储器支持线性的非对齐成组访问 , 固定数目的数据字可以从连续的以N为模的地址读取(典型的N为8或16 , 可以通过NOR闪存的配置寄存器设置) 。此种情况下 , 可以把存储器的非对齐访问模式设置为与AHB相同的模式 。
如果存储器的非对齐访问模式不能设置为与AHB相同的模式 , 应该通过FSMC配置寄存器的相应位禁止非对齐访问 , 并把非对齐的访问请求分开成两个连续的访问操作 。NAND和PC卡地址映像
三个存储块可以用于NAND或PC卡的操作 , 每个存储块被划分为下述访问空间:
『』Stm32F103R6之FSMC
文章图片

文章图片

图 5存储器映像和时序寄存器
对于NAND闪存存储器 , 通用和属性空间又可以在低256K字节部分划分为3个区 。
● 数据区(通用/属性空间的前64K字节区域)
● 命令区(通用/属性空间的第2个64K字节区域)
● 地址区(通用/属性空间的第2个128K字节区域)
『』Stm32F103R6之FSMC
文章图片

文章图片

图 6NAND存储块选择
应用软件使用这3个区访问NAND闪存存储器:
● 发送命令到NAND闪存存储器:软件只需对命令区的任意一个地址写入命令即可 。
● 指定操作NAND闪存存储器的地址:软件只需对地址区的任意一个地址写入命令即可 。因为一个NAND地址可以有4或5个字节(依实际的存储器容量而定) , 需要连续地执行对地址区的写才能输出完整的操作地址 。
● 读写数据:软件只需对数据区的任意一个地址写入或读出数据即可 。
因为NAND闪存存储器自动地累加其内部的操作地址 , 读写数据时没有必要变换数据区的地址 , 即不必对连续的地址区操作 。NOR闪存和PSRAM控制器
FSMC可以产生适当的信号时序 , 驱动下述类型的存储器:
● 异步SRAM和ROM ─ 8位 ─ 16位 ─ 32位
● PSRAM(Cellular RAM) ─ 异步模式 ─ 突发模式
● NOR闪存
─ 异步模式或突发模式
─ 复用模式或非复用模式 FSMC对每个存储块输出一个唯一的片选信号NE[4:1] , 所有其它的(地址、数据和控制)信号则是共享的 。
在同步方式中 , FSMC向选中的外部设备产生时钟(CLK) , 该时钟的频率是HCLK时钟的整除因子 。每个存储块的大小固定为64M字节 。每个存储块都有专门的寄存器控制 。可编程的存储器参数包括访问时序(见下表)、是否支持非对齐数据存取和等待周期管理(只针对突发模式下访问PSRAM和NOR闪存) 。


推荐阅读