码迷,mamicode.com
首页 > 其他好文 > 详细

STM32F103X datasheet学习笔记---Flexible static memory controller (FSMC)

时间:2017-08-29 13:04:41      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:支持   宽度   用户   同步   信号   完成   执行   log   设置   

1.前言

FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是:

  • 将AHB传输信号转换到适当的外部设备协议 
  • 满足访问外部设备的时序要求

所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。FSMC在任一时刻只访问一个外部设备。

2.FMSC的主要功能

  • 与具有静态存储器接口的器件接口,包括:

─ 静态随机存储器(SRAM)

─ 只读存储器(ROM)

─ NOR闪存

─ PSRAM(4个存储器块)

  • 两个NAND闪存块,支持硬件ECC并可检测多达8K字节数据
  • 16位的PC卡兼容设备
  • 支持对同步器件的成组(Burst)访问模式,如NOR闪存和PSRAM
  • 8或16位数据总线
  • 每一个存储器块都有独立的片选控制
  • 每一个存储器块都可以独立配置
  • 时序可编程以支持各种不同的器件:

─ 等待周期可编程(多达15个周期)

─ 总线恢复周期可编程(多达15个周期)

─ 输出使能和写使能延迟可编程(多达15周期)

─ 独立的读写时序和协议,可支持宽范围的存储器和时序

  • PSRAM和SRAM器件使用的写使能和字节选择输出
  • 将32位的AHB访问请求,转换到连续的16位或8位的,对外部16位或8位器件的访问
  • 具有16个字,每个字32位宽的写入FIFO,允许在写入较慢存储器时释放AHB进行其它操作。

注:[1]如果当前FIFO正在被占用,此时其他的FIFO操作将等待,直到当前的FIFO操作完成

       [2]通常在系统复位或上电时,应该设置好所有定义外部存储器类型和特性的FSMC寄存器,并保持它们的内容不变;当然,也可以在任何时候改变这些设置。

3. FMSC框图

技术分享

图 FMSC框图

FSMC包含四个主要模块:

● AHB接口(包含FSMC配置寄存器)

● NOR闪存和PSRAM控制器
● NAND闪存和PC卡控制器

● 外部设备接口

4. AHB接口

AHB接口为内部CPU和其它总线控制设备访问外部静态存储器提供了通道。 AHB操作被转换到外部设备的操作。

当选择的外部存储器的数据通道是16或8位时,在AHB上的32位数据会被分割成连续的16或8位的操作。 AHB时钟(HCLK)是FSMC的参考时钟。

4.1 支持的存储器和操作

  • 一般的操作规则

请求AHB操作的数据宽度可以是8位、16位或32位,而外部设备则是固定的数据宽度,此时需要保障实现数据传输的一致性。 因此,FSMC执行下述操作规则:

● AHB操作的数据宽度与存储器数据宽度相同:无数据传输一致性的问题。

● AHB操作的数据宽度大于存储器的数据宽度:此时FSMC将AHB操作分割成几个连续的较小数据宽度的存储器操作,以适应外部设备的数据宽度。 
● AHB操作的数据宽度小于存储器的数据宽度: 依据外部设备的类型,异步的数据传输有可能不一致。

─ 与具有字节选择功能的存储器(SRAM、ROM、PSRAM等)进行异步传输时,FSMC执行读写操作并通过它的字节通道BL[1:0]访问正确的数据。

─ 与不具有字节选择功能的存储器(NOR和16位NAND等)进行异步传输时,即需要对16位宽的闪存存储器进行字节访问;显然不能对存储器进行字节模式访问(只允许16位的数据传输),因此:

  a. 不允许进行写操作

  b. 可以进行读操作(控制器读出完整的16位存储器数据,只使用需要的字节)。

  •  配置寄存器

FSMC由一组寄存器进行配置

 5. 外部设备地址映像

 

 图 FMSC存储BANK

从FSMC的角度看,可以把外部存储器划分为固定大小为256M字节的四个存储块。

● 存储块1用于访问最多4个NOR闪存或PSRAM存储设备。这个存储区被划分为4个NOR/PSRAM区并有4个专用的片选。

● 存储块2和3用于访问NAND闪存设备,每个存储块连接一个NAND闪存。

● 存储块4用于访问PC卡设备 每一个存储块上的存储器类型是由用户在配置寄存器中定义的。

 5.1 NOR和PSRAM地址映像

STM32F103X datasheet学习笔记---Flexible static memory controller (FSMC)

标签:支持   宽度   用户   同步   信号   完成   执行   log   设置   

原文地址:http://www.cnblogs.com/smartjourneys/p/7447449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!