cancel
Showing results for 
Search instead for 
Did you mean: 

What Causes Artifacts in Displays Like the Following:

Richard Lowe
Senior III

I'm getting the following artifacts in the display and as of today, haven't tracked down the cause. I've adjusted DSI clock timings, LTDC clock timings, and SRAM timings. Caching is configured as off for the SRAM via MPU. Any ideas?

20230924_194425.jpg

 

20230924_194421.jpg

 

20230924_194442.jpg

 

11 REPLIES 11
Osman SOYKURT
ST Employee

Hello @Richard Lowe ,

Which board and which compiler do you use? Is your board running with an OS? Do you have a graphic accelerator in your project?

Osman SOYKURT
ST Software Developer | TouchGFX

Lacking a lot of specific detail to the parts used.

I would start by inspecting the frame buffer, from the static images this doesn't look to be a display timing issue.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

STM32H747i-Eval board.
STM32CubeIDE -> gcc.
FreeRTOS
DMA2D -> Not really a true accelerator, but never really had issues with it.

Osman SOYKURT
ST Employee

Hello @Richard Lowe,

Did you try to put your assets in another region of your memory? Have you inspected the framebuffer as @Tesla DeLorean suggested?

Osman SOYKURT
ST Software Developer | TouchGFX

Debugging the SDRAM on the FMC bus shows that it is functional.  Writting and reading to it passes.

Moving the framebuffer to another memory address had no effect. I did, however, have to move the framebuffer on the same SDRAM, the MCU doesn't have enough RAM for the framebuffer to be located on the die. 

Same fragmentation artifacts appearing. 

Hello @Richard Lowe ,

Ok I see, and what about if you change the framebuffer strategy? (single framebuffer instead of double)
And if you change bpp format?

Also, did you measure render time?

Osman SOYKURT
ST Software Developer | TouchGFX

Render time is looking like 40ms. That seems slow to me. 

Svenn Dahlstrom
Associate III

I have the same issue but it is not permanent, it comes once in a while... In my case I have verified that when this happen it's the frame buffer that is corrupt. 
My setup: custom board, STM32H743, external QUADSPI flash (memory mapped mode), single framebuffer internal RAM_D1, LTDC, DMA2D RGB888 Memory to Memory transfer mode.

/Svenn

I managed to solve my issue.
I had my QUADSPI clock prescaler at 1 (25MHz QSPI CLK).
Changing this to 0 (50MHz QSPI CLK) or 2 (16.6MHz QSPI CLK) then my QUDSPI data reads got flawless.
From the STM32H743 reference manual:

SvennDahlstrom_1-1696836379311.png