cancel
Showing results for 
Search instead for 
Did you mean: 

Inquiry for Pin-to-Pin Alternative MCU to Improve SPI Display Performance

Aldrin
Associate II

We are currently using the STM32G0B0VET6 microcontroller (100-pin LQFP package) in our design for interfacing a 480x320 ILI9488 TFT display via the SPI interface. Our hardware is already finalized and PCBs have been fabricated accordingly.

During our development and testing phase, we encountered significant performance limitations when attempting to render full frames to the display over SPI. Despite optimizations, the SPI interface on this MCU does not meet our display refresh requirements for smooth and responsive graphics.

Is there any pin to pin alternate MCU that can replace the current mcu for better display performance through SPI without changing the pcb design.

Thank you.

3 REPLIES 3
KnarfB
Principal III

If your project was started with STM32CubeMX/IDE, you may use the STM32CubeMX Pinout > List Compatible MCUs (Alt+L) function and check if you can pick from a faster MCU series.

SPI throughput also depends on the software / abstraction layers (HAL ?) you have chosen. Maybe it is worth looking into DMA / register level implementations here. 

hth

KnarfB

 

Thanks for the insight, Knarf. I'll look into it.

AScha.3
Chief III

About max speed on this display: 480x320 ILI9488 

- pixels : 135600

- SPI max speed clock: 20 MHz (ili9488 max. write clock)

- color mode : 565 , 2 Byte/pixel needed

--> 123 ms for full display write (just the pixel color data) + time for command

So about 125ms is the absolute maximum (any cpu !), you could get with SPI for full screen write (CLS or so).

With your G0 cpu, at 64MHz , if you set 16M as SPI clock, you have (try always with -O2 optimizer, or -Ofast) about ((64/16)x8) 32 cpu cycles time , to calculate + transfer next pixel to the SPI data register; should be not too difficult, to come close to this, and its close to the max speed you could reach with this display at all.

To give some example , on a ILI9343 , 2.8 IPS 240x320 TFT

(this is 1/2 the pixels you have to write, so your time will be double) :

- CLS (full screen write "black", at start) needs about :

- 187 ms , on H743 cpu at 200MHz, just plain HAL used, without any optimized code (or DMA)

- 68 ms , on F303 at 64Mhz, with HAL and (optimized) direct register write (no DMA)

and here on F303 writing a grid on full screen (like on a DSO screen) :

- 305 ms with plain HAL and "draw line"

- 19 ms with some optimizing ("fast ..line") and direct register write

- 6 ms with more optimized access and overclocking the ILI , 24 MHz iirr . (no good idea for a product to sell !) - just for fun

- 3 ms with overclocking everything (cpu at 128M , ILI 32 M) - funny, but just as a test.

 

If you feel a post has answered your question, please click "Accept as Solution".