Optimizing ILI9488 SPI Display Performance with STM32G0B0VET6 – Too Slow?
Hi everyone,
I'm working on a project using the STM32G0B0VET6 microcontroller, and I have an ILI9488 TFT display (320x480) connected via SPI. There is no external display controller – the STM32 is driving the display directly.
Problem
The display works and renders correctly using custom drivers, but the refresh/update speed is very slow, especially when trying to render large bitmaps or full-screen updates. This is a major bottleneck in my application.
What I've Tried
- Using SPI1 at the highest possible baud rate (around 24–27 MHz).
- Optimizing HAL_SPI_Transmit() and buffering with DMA.
- Rendering images with a tile-based approach to avoid RAM overflow (since STM32G0B0 has only 144KB RAM).
- Converting and sending RGB565 bitmaps using a fast push function.
- Even tried lower-resolution images scaled up – no significant improvement.
Questions
- Is it realistically possible to achieve smooth full-screen updates with this MCU driving the ILI9488 directly over SPI?
- Am I wasting time trying to optimize this on an STM32G0 series chip without external display control?
- Has anyone had success with speeding up ILI9488 performance on low-power STM32s?
- Any tips on improving SPI display throughput or managing full-screen rendering more efficiently would be appreciated.
Thanks in advance!
