How to get 30 FPS+ on MCU (not MPU)

I dev smart display with 800x480 resolution, low cost, easy to dev with ESP32-S3 i use 6800 interface 8 bits with Octal SPI at 40 MHz clock and i found this speed is enough for run 30 FPS+

but when i use with LVGL the display is slowly i got 12 FPS in music demo. Maybe ESP32-S3 cpu is slowly and it impossible i can get 30 FPS ?

I find new MCU for get more fps and think STM32H7 is enough because CPU speed of ESP32-S3 is 240MHz but STM32H7 is 480MHz, CoreMark of ESP32-S3 is 613 but STM32H7 is 2424 the performance of STM32H7 about 4 times of of ESP32-S3 so if ESP32-S3 got 12 FPS maybe STM32H7 will get 12 x 4 = 48 FPS !

and i things some future of STM32 maby help to get more FPS

  • DMA (ESP32-S3 have DMA but it slower then CPU polling so i don’t use DMA)
  • More internal high speed SRAM (ESP32-S3 OPI PSRAM is slower then internal SRAM)

but i check LVGL Certified boards, the STM32H7B3I-DK got only 32 FPS on display low resolution 480x272 … ? why low resolution in big and high speed memory with GPU can got only 32 FPS ? mayby CPU is slower to get more ? meybe SRAM is slow ? meybe GPU can’t help ?

I waiting STM32H7 ship to me i will test Music demo on real device for check FPS if i can’t get 30 FPS, anyone can recommend new MCU for i can test ?

Does anyone have additional comments?

Little basic school match
800x480x2x30 is data amount need handle on bus mcu etc.
23MB/s For example for full screen animation you need read calc and write back simply x3 = 69MB/s
Your 8bit OSPI at 40 is real 20 for RGB565 etc.
Primary you need understand how LCD bus is handled in MCU SW or HW? …

if i use STM32​H7 clock is not pain point (if i got slowly)​? because i have free to select clock and i can use DMA. Is that right?

STM32H7 GPU (DMA2D) is well supported with current lvgl hal driver, and you can check its source code.

As shown above, driver creates periodic timer to redraw the screen. Value of LV_DISP_DEF_REFR_PERIOD is normally defined within lv_conf.h and is likely defined as 30[ms]. I believe this is the reason demo gets 32 to 33 FPS.

You may able to get faster FPS rate with smaller interval. But I feel 33FPS is fast enough for normal application.

1 Like

Max report 12FPS and i try explain if your LCD bus is setup to 12FPS , then is irelevant how MCU clk you have…

Successful ! I got 32 FPS of music demo with STM32H743, enable I-cache, D-cache, FMC with 25 MHz / 33.33 MHz clock (for I8080 LCD interface), DMA2D (for stream LVGL display buffer to FMC), I use only ~177 kB SRAM ! (D1 has 512 kB), Use 567 kB flash (from 2 MB)