|
MCU:STM32F429IIT6
SRAM: IS61WV25616BLL-10TLI
原理图如下:
SRAM原理图
FMC_NORSRAMInitStructure.FMC_Bank = FMC_Bank1_NORSRAM3; // From FMC_Bank1_NORSRAM1 -> 3 FMC_NORSRAMInitStructure.FMC_DataAddressMux = FMC_DataAddressMux_Disable;
FMC_NORSRAMInitStructure.FMC_MemoryType = FMC_MemoryType_SRAM; // Workaround for 'Free GPIO Pin' <- NOR
FMC_NORSRAMInitStructure.FMC_MemoryDataWidth = FMC_NORSRAM_MemoryDataWidth_16b;
FMC_NORSRAMInitStructure.FMC_BurstAccessMode = FMC_BurstAccessMode_Disable;
FMC_NORSRAMInitStructure.FMC_AsynchronousWait = FMC_AsynchronousWait_Disable;
FMC_NORSRAMInitStructure.FMC_WaitSignalPolarity = FMC_WaitSignalPolarity_Low;
FMC_NORSRAMInitStructure.FMC_WrapMode = FMC_WrapMode_Disable;
FMC_NORSRAMInitStructure.FMC_WaitSignalActive = FMC_WaitSignalActive_BeforeWaitState;
FMC_NORSRAMInitStructure.FMC_WriteOperation = FMC_WriteOperation_Enable;
FMC_NORSRAMInitStructure.FMC_WaitSignal = FMC_WaitSignal_Disable;
FMC_NORSRAMInitStructure.FMC_ExtendedMode = FMC_ExtendedMode_Disable;
FMC_NORSRAMInitStructure.FMC_WriteBurst = FMC_WriteBurst_Disable;
FMC_NORSRAMInitStructure.FMC_ReadWriteTimingStruct = &FMC_NORSRAMTimingInitStructure;
FMC_NORSRAMInitStructure.FMC_WriteTimingStruct = &FMC_NORSRAMTimingInitStructure;
// Configure FSMC
FMC_NORSRAMInit(&FMC_NORSRAMInitStructure);
// Enable Bank-1 / PSRAM-1
FMC_NORSRAMCmd(FMC_Bank1_NORSRAM3, ENABLE); // From FMC_Bank1_NORSRAM1 -> 3
按照原理来讲,应该是FMC_Bank1_NORSRAM1,但是却无法读写,改成FMC_Bank1_NORSRAM3 居然能读写,但是写入的数据似乎不正确,有人遇到过这样的问题吗?
我在网上查了一下,貌似有人遇到过类似的问题:
http://stackoverflow.com/questions/27852339/cannot-read-from-write-to-external-sram-using-fmc-on-stm32f429i-disco-board
望高手帮忙解决啊,SRAM做LCD的framebuffer,SRAM异常,LCD就无法工作啊。
好像就在stm32f429上会出现~ |
|