2025-01-28 07:07 AM
I have been working on implementing TouchGFX in DSI Video Mode for a STM32H747-DISCO board. The LCD is a 5" 720x1280px panel, driven by a ILI9881C driver chip. After many issues with the DSI link, I have now successfully got something to display on the screen, but it is an absolute mess.
This is my GUI
And this is my display output (the diagonal red lines are on the screen protector)
A bit more info...
The driver IC is designed to be in portrait orientation, with 1280 lines at 720px width. This is how I have configured the DSI (720px video packet, 1280 VACT), LTDC (720 active width, 1280 active height & layer settings) and TouchGFX. I have set the desired orientation to landscape in TouchGFX.
The screen is updating. I have a 10s splash screen that just displays a logo and then switches to the GUI. I can see the screen change after 10s, and some activity which will be coming from my live GUI. However, the activity only ever changes a whole line (really a column in terms of the actual screen arrangement).
Is this more likely to be to do with the LTDC timings - horizontal and vertical blanking periods etc. - or down to the configuration of the frame buffer itself? There's also a chance there's something wrong in my driver initialisation, but I want to rule out micro-side issues first!
2025-01-28 07:57 AM
Start with HAL_DSI_PatternGeneratorStart and DSI part check... 1280x720 require big sense and RGB888 will imposs on 60Hz.
2025-01-28 08:10 AM
I'm only aiming for 30Hz, but I'm currently testing RGB565 and still no luck.
Is the kind of output I'm getting more likely to be due to a DSI/LTDC bandwidth issue or an incorrectly configured LTDC?
2025-01-28 08:15 AM
LTDC dot clock used MHz is more info as aiming 30Hz
2025-01-28 08:19 AM - edited 2025-01-28 11:10 AM
2025-01-30 02:14 AM
Hello @Iris-DM ,
I don't think you have an issue with your framebuffer. But to make sure, you could try to check if your data RAM is correct or not. Also, I would try to keep it simple and use portrait mode at first, and switch to landscape afterwards.
DSI screens have the disadvantages of complex protocols and drivers often. I would recommend to double check your implementation for enabling your screen, including checking that you're using the correct values mentioned in your previous message.
2025-01-30 07:58 AM
Nums seems ok, but primary ILI config on start is important. Check read MADCTL register about orientation, too set LANSEL reg for use only 2 lanes...