在这里 我们分析一下 FSMC 的BANK的一些知识 并且以SRAM为历程
硬件单片机: stm32F407
下图是FSMC的图 我们来分析一下他们接口的作用
下图是BANK1存储选择表我们的SRAM是连在了FSMC_NE3 所以SRAM的ADDr是0x68000000
当Bank1 接的是16bit宽度存储器的时候: HADDR[25:1]->FSMC_A[24:0]
当Bank1 接的是8bit宽度储存器的时候:HADDR[25:1]->FSMC_A[25:0]
也就是说当Bank1接的16位地址的时候 外接的地址需要左移一位是FSMC的地址。
SRAM的控制:
SRAM的控制一般有: 地址线(A0~A18)、数据线(D0~D15)、写信号(WE)、读信号(OE)、片选(CS)、如果SRAM支持字节控制 那么还有UB/LB
我们的SRAM有OE 所以我们选择ModeA的模式。
FSMC的核心在于计算地址的建立地址的时间
ADDSET:address setup time
DATAST:data setup time
ACCMOD: access mode
CLKDIV:clock divide ratio
DATLAT: data latency
计算方法如下:
((ADDSET + 1) + (DATAST + 1)) × tHCLK more than Write access time
tWP= DATAST × tHCLK more than Write Enable signal low to high
((ADDSET + 1) + (DATAST + 1)) × tHCLK= max (tWC)
DATAST more than (tAVQV+ tsu(Data_NE)+ tv(A_NE))/tHCLK– ADDSET – 4
DATAST × HCLK = tWP