FSMC 全称“静态存储器控制器”
使用 FSMC 控制器后,可以把 FSMC 提供的 FSMC_A[25:0]作为地址线,而把 FSMC 提供的 FSMC_D[15:0]作为数据总线
(1)当存储数据设为 8 位时,(FSMC_NANDInitStructure
FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b) 地址各位对应 FSMC_A[25:0],数据位对应 FSMC_D[7:0] (2)当存储数据设为 16 位时,(FSMC_NANDInitStructure
FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b) 地址各位对应 FSMC_A[24:0],数据位对应 FSMC_D[15:0] FSMC 包括 4 个模块: (1)AHB 接口(包括 FSMC 配置寄存器) (2)NOR 闪存和 PSRAM 控制器(驱动 LCD 的时候 LCD 就好像一个PSRAM 的里面只有 2 个 16 位的存储空间,一个是 DATA RAM 一个是 CMD RAM) (3)NAND 闪存和 PC 卡控制器 (4)外部设备接口 注:FSMC 可以请求 AHB 进行数据宽度的操作
如果 AHB 操作的数据宽度大于外部设备(NOR 或 NAND 或 LCD)的宽度,此时 FSMC将AHB 操作分割成几个连续的较小的数据宽度,以适应外部设备的数据宽度
FSMC 对外部设备的地址映像从 0x 6000 0000 开始,到 0x 9FFF FFFF结束,共分4 个地址块,每个地址块 256M 字节
可以看出,每个地址块又分为 4 个分地址块,大小64M
对 NOR 的地址映像来说,我们可以通过选择 HADDR[27:26]来确定当前使用的是哪个64M 的分地址块,如下页表格
而这四个分存储块的片选,