一、支持FSMC的有哪些型号?
144pin,XC\XD\XE,256KB flash以上
二、STM32的FSMC管理存储空间是1G,分为Bank1、bank 2、bank 3、bank 4,每个bank大小伟256MB,而bank 1又分为4个子bank,每个子bank的大小为64MB。
FSMC是一个控制器,可以管理SRAM、ROM、PSRAM、NOR Flash、NAND Flash以及PC控制卡;支持8/16/32位数据异步读写操作,而且支持对Nor和PSRAM的同步突发访问方式。
bank 1 用于控制Nor以及PSRAM,bank 1有4个子bank,可以管理4个外部nor/psram存储器,使用NE1、NE2、NE3、NE4分别选择4个外部设备,同时读写时序独立控制。
bank 2和3用于访问nand闪存设备,每个bank链接一个nand闪存;
bank 4用于访问PC卡设备。
控制器产生驱动存储器的信号时序:1、16bit的数据线,用于8bit或是16bit存储器;2、26bit的地址线,最多可连续64MB的存储;3、5位独立的片选信号。
FSMC对外部设备的地址映像从0x6000 0000开始,到0x9FFF FFFF结束,共分4个地址块,每个地址块256M字节。可以看出,每个地址块又分为4个分地址块,大小64M。对NOR的地址映像来说,我们可以通过选 择HADDR[27:26]来确定当前使用的是哪个64M的分地址块,如下页表格。而这四个分存储块的片选,则使用NE[4:1]来选择。数据线/地址线 /控制线是共享的。 NE1 ->Bank1 NE2->Bank2 NE3->Bank3 NE4->Bank4 若 NE1 连接, 则每小块NOR/PSRAM 64M 第一块:6000 0000h--63ff ffffh (DATA长度为8位情况下,由地址线FSMC_A[25:0]决定;DATA长度为16位情况下,由地址线FSMC_A[24:0]决定) 第二块:6400 0000h--67ff ffffh 第二块:6800 0000h--6bff ffffh 第三块:6c00 0000h--6fff ffffh 注:这里的HADDR是需要转换到外部设备的内部AHB地址线,每个地址对应一个字节单元。因此,若外部设备的地址宽度是8位的,则 HADDR[25:0]与STM32的CPU引脚FSMC_A[25:0]一一对应,最大可以访问64M字节的空间。若外部设备的地址宽度是16位的,则 是HADDR[25:1]与STM32的CPU引脚FSMC_A[24:0]一一对应。在应用的时候,可以将FSMC_A总线连接到存储器或其他外设的地 址总线引脚上。 使用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] 参考: 1、http://bbs.elecfans.com/jishu_470285_1_1.html FSMC-LCD 2、http://blog.csdn.net/artmcu/article/details/8162510 FSMC总线研究 | |