cancel
Showing results for 
Search instead for 
Did you mean: 

Display Flickering When Changing Screens on STM32H753 with Parallel NOR Flash, SRAM, and 10-inch RGB Display

smj-11
Associate III

Hello STM32 Community,

I am using the STM32H753 microcontroller in a project with the following setup:

  • Display: 10-inch RGB display (1280x800 resolution).
  • External Memory: Parallel NOR flash and SDRAM.
  • TouchGFX: For GUI development.

The system is configured to use external SDRAM for the framebuffer and NOR flash for storing images and other assets.

Problem:
When switching screens in the GUI, the display flickers briefly. The flickering is particularly noticeable during transitions with animations or large screen changes.

What I Have Tried:

  1. Double Buffering: Enabled double buffering in TouchGFX to reduce tearing and flickering.
  2. LTDC Configuration: Checked the LTDC clock settings to ensure proper synchronization.
  3. DMA2D: Verified that DMA2D operations are correctly configured for image transfers.
  4. External Memory Timing: Adjusted the timing configuration for the NOR flash and SDRAM to match the datasheet specifications.

Despite these efforts, the flicker persists.

Additional Information:

  • LTDC and DMA2D: Both are configured as per STM32CubeMX.
  • NOR Flash: Holds large GUI assets loaded on demand.
  • SRAM: Acts as the framebuffer for the display.

Could this be related to memory access conflicts between the NOR flash and the framebuffer in SDRAM? Or is there something specific to the LTDC or DMA2D configuration that I might be missing?

Any advice, suggestions, or example configurations to resolve this issue would be greatly appreciated!

4 REPLIES 4
MM..1
Chief III

You choice display resolution on edge your MCU power. Your code must be perfectly optimal to handle this size of displays. How RGB bit depth ? LTDC clk ? 

any example

Try reply some my     ? And maybe too show code for example model.cpp  

ferro
Senior III

Hi @smj-11 

Did you try to change screen from software, simulating a user inteaction ? Maybe try using NoTransition ?