2021-01-11 07:07 AM
Hello! I have working system with LTDC + DMA2D run 800x600 at 32 MHz LTDC clock. In parallel there is configured SDMMC interrupt mode (no DMA) on 48 MHz and FatFs on it. And everything works fine. No glitches, no flickerings.
Now I need to use 1024x768 resolution and to meet the display frequency I've increased LTDC clock to 48 MHz and got flickerings while DMA2D operations run in parallel with SDMMC reads.
It is definately inside DMA2D operation because while I continuously draw a square with DMA2D and read SD card in other task -- screen flickers. But when I draw a square with pixels in the loops -- everything is OK and picture is absolute stable.
Seems that there is a problem inside DMA2D/LTDC and SDMMC clock domains. I even connected SDMMC to PLL clock (not to PLLSAI) with the same bad results.
How I could solve this issue or it is an internal MCU problem?
2021-01-11 08:51 AM
What kind of colour depth are we talking about?
The 800x600 and 1024x768 are pretty close to the bandwidth ceiling.
How wide is your SDRAM memory bus?
Are you using the DTCM for SDMMC? Can you use DMA on SDMMC?
2021-01-11 09:31 AM
16-bit pixel width.
SDRAM cols 9 rows 13, mem bus width 16. 16-bit SDRAM access. SDRAM is okay. MPU is configured with different cache and buffering modes for video and 'normal' memory banks.
And no DTCM for SDMMC. I use DTCM for some runtime data but not the one loaded from SD card.
But memory works well. Any direct pixel operations don't cause any glitches.
Seems that when DMA2D operation is running and in parallel some SDMMC operations run something happens with LTDC.
You know, everything was working fine until I switched LTDC clock from 32 to 48 MHz.