2025-09-13 4:26 AM
Hello, I am using my custom-developed STM32H7 PCB with an 800*480 TFT display connected via 24bpp RGB. Currently, I am only using external SDRAM (IS42S32800J) for the frame buffer, while my QSPI flash is inactive. For the configuration settings, I based them on the STM32H743I-EVAL board, which I also used as a template.
In the attachment, I shared the color difference issue. Does anyone have suggestions regarding this? Because when viewed with the naked eye, there is a noticeable difference between the tones I designed in TouchGFX and the colors displayed on the screen. Could this be related to the ARGB888 format? Where might I be making a mistake? I have checked all the RGB pins in hardware, and they are all active and working.
The comparative example in the image shows a color tone comparison made with the output taken from the STM32H735 DK.
2025-09-13 5:13 AM
Hi @dumo,
The color differences you’re seeing are likely due to a pixel format mismatch or LTDC configuration rather than hardware. A few things to check:
Pixel Format: Ensure TouchGFX and LTDC both use the same format (RGB888 for 24bpp). Using ARGB8888 incorrectly can shift colors.
Frame Buffer Alignment: Make sure the external SDRAM buffer is properly 32-bit aligned.
LTDC Layer & Timing: Verify layer settings, blending, and LTDC clock/timings match your reference board.
Test Pattern: Render full red/green/blue to see if the shift is per channel.
Most color issues on custom STM32H7 boards are resolved by matching TouchGFX output, LTDC pixel format, and frame buffer setup.
2025-09-14 10:34 PM
First of all, thank you very much for your response @Anna18_
Both TouchGFX and LTDC settings are configured with the RGB888 format.
I am not sure about this part—could you please explain what exactly you meant so that I can check it again ? And how should i check at this point?
I am working on Layer 1, and for the SDRAM FMC settings I am using the SDCKE0 + SDNE0 pins. The HCLK is 240 MHz, the SDRAM clock is 220 MHz but since it is divided by 2, it runs at 110 MHz, while the display runs at 33.3 MHz.
I tested the R-G-B colors separately by activating them individually and checked their hardware outputs. In the images, I divided the screen into colors to show you all of them.