Question
STM32F2, FSMC, SSD1963 Performance
Posted on June 12, 2012 at 02:43
I've recently created a prototype with a STM32F2 and a Solomon Systech SSD1963 interfaced via the FSMC (Resolution: 800 x 480). I've succeeded in getting things displayed on the screen, but I'm a little disappointed in performance. (Please note that I'm only referring to the amount of time it takes to write data to the SSD1963's frame buffer from the STM32F2, not the refresh rate of the LCD). I've only been able to get about 3 FPS and I was hoping for something in the teens.
Are my expectations too high? Please share your experience and offer your advice. Here's my FSMC init code. //--- FSMC Configuration ----------------------------------------------------- //FSMC Initialization FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef FSMC_NORSRAMTimingInitStructure; // Enable the FSMC Clock RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE); FSMC_NORSRAMDeInit(FSMC_Bank1_NORSRAM1); FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupTime = 0; // 1ns FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTime = 1; // 2ns FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 1; // 4ns FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_B; //?? don't know yet FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAroundDuration = 0; // Only used with NOR Flash FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 1; // Not used for Nor or SRAM FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 0; // Don't care with Nor or SRAM FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &FSMC_NORSRAMTimingInitStructure; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &FSMC_NORSRAMTimingInitStructure; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; // Only valid for flash memory in burst mode (just default) FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; // Only valid for burst memories (just default) FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; // Only valid for flash memory in burst mode (just default) FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; // Don't know yet FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; // Don't know yet FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; // Don't know yet FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; // Don't know yet FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; // Don't know yet FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); // Enable FSMC Bank1_SRAM Bank FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); Thanks #ssd1963-lcd #lmgtfy #st32f2-fsmc #ssd1963-stm32f4-lcd-fsmc