平台:STM32F4-Discovery(LQFP100,FSMC地址和数据线复用)+FPGA(被当做SRAM方式由MCU访问)
FSMC配置参数:地址和数据线16根复用,BANK1,NE1,PSRAM方式,使用异步访问,用到FSMC_NL(FSMC_NADV),
模式A,数据带宽16b,Timing 如下:
FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupTime = 10;//1; /* 地址建立时间 */
FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTime = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 10;//1; /* 数据建立时间 */
FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAroundDuration = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_A; /* FSMC 访问模式 */
SignalTapII捕捉到FSMC时序各信号图:
图上可以看出:
0x8001是我要写的地址,0xFFFF是我要写的数据,但是这地址和数据之间好乱, |