2025-01-25 07:17 AM
Hi,
I noticed on the GUI Silicon Portfolio that the SPI is used by quite a few micro families for resolutions of up to 480 x 272.
I was wondering:
1. Do you know if SPI for those micros allows refresh without the tearing effect (i.e. refresh of the whole screen at once)?
2. If so, at what colour depth? Do they assume 8 bits per colour?
3. Finally, are small animations supported without seeing the tearing effect?
Thank you
2025-01-25 10:41 AM - edited 2025-01-26 05:59 AM
Hi,
for small TFT , maybe 3" , 320x240 pix , i use only SPI ;
speed with an F303 at 18 Mbit on spi to TFT , for full screen write ("cls") is 68 ms , but 6 ms with DMA->SPI (but overclocked at destruction limit - so just a funny test ; display did stop working some seconds after this.
(But recovered some minutes later. So better dont try too much overclocking.)
for big TFT , 7" , i use Riverdi TFT , with EVE graphics onboard, about same price as "naked" TFT.
https://riverdi.com/de/produkt-kategorie/intelligente-anzeigen/bt817q-de?_sft_pa_size-inch=7-0-5
also from Matrix Orbital .
10" at mouser, with cap.touch:
https://www.mouser.de/ProductDetail/Riverdi/SM-RVT101HVDNWC00
These kind of display has the high-level graphics controller EVE series onboard;
so you send for lets say : a menu -> just the position, size, shape, color, for a button, and its text, needs maybe 200 bytes to transfer; then 8 more buttons...so maybe 2kB to send on spi, needs less than 3 ms for the full new picture with the menu; and you can set even the buttons to get an INT from the display , "button 3 pressed" .
If you have an industrial or informative (...menu etc.) application, this is perfect.
If you want a 3d game display or live HD-video ...spi TFT is not the choice.
2025-01-25 01:25 PM
Thank you @AScha.3
the DMA -> SPI timing is very interesting...!
(As a side note... "intelligent" displays like the Riverdi are not an option because they are way to expensive. The cheapest one is more expensive than the finished product I am designing.)
The application I am working on needs displaying graphics (not photos) and basic animations like progress circles. But when changing screen it must be extremely fast, like in a mobile phone, so you don't see any screen erasing and redrawing. Just immediate screen change. And obviously no tearing either.
Couple of questions:
1. Do you get that with the 320 x 240 pix setup you mentioned? If so, how high of a resolution can you go while maintaining having the performance I just mentioned?
2. Because I have many screens with various graphics, am I correct in thinking that I would get that same 6ms refresh if I store the graphic assets on an SDMMC and then use direct SDMMC -> DMA -> SPI ? Or would you suggest some other solution to meet my requirements mentioned above with the 6ms DMA timing you suggested?
Thank you
2025-01-26 01:54 AM
1. pic is with 320 x 240 pix TFT ; the speed is limited by the speed from SPI : see ds of TFT chip, ILI9341 ,
has max. 10Mbit
I drive it with 18Mbit , it works also at 24Mbit...but i didnt want to kill it. So 60% overclocking...
Now think simply : how many pix (cls -> 320x240 = 76800 ; RGB, 565 format -> 16bit/pixel -> 1,2 mio bits ;
/10Mbit -> 122 ms , to set all pix on TFT at normal speed ; you cannot overclock it, like i did just for fun, for a product, that should work . (btw the 6ms refresh it did one time - then a pin on the H743 died...so was far over all limits! So forget anything with 6ms screen update .)
Even the 18Mbit overclocking i would never do in any product, that should be sold.
For fast screen full update ( 10ms or so) need something like the EVE graphics on TFT , then no problem.
With simple controller on TFT your limited by spi-speed + number of pixels. Thats it.
2. So you have to drive the pixel update faster: spi with EVE , or (fast) cpu with double frame buffer and direct parallel access to TFT.
Reading data from SD card is possible, but (i do for audio player) sd-cards have some 1...100ms delay, until response; (good, new SanDisk 0,5..1ms, old cheap card 1....40ms. )
So dont expect wonders with sd-cards.
this is R/W test from a 16 GB Transcend card, about 1 year in use:
Transfer/Interface speed is always about 400Mbit here, so all dips are some delay, until data coming.
And on a STM32 you have no (native) UHS mode, so ... i got max. 8MB/s effective read speed.