cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H750 LCD flickering

Dinushka
Associate II

Hello,

I am working on a custom board with STM32H750XBH6 MCU.

In my project I am time to time getting LCD flickering issues. First it was only visible in release version. Then after switching off the compiler optimizations, it worked. Again I have got a similar issue when I have updated the application logic without doing any changes to UI. I have attached a video with flickering problem. There it was not handling any touch events. 

Any idea about possible root cause or a way to solve this issue?

https://youtu.be/-bUHPWluGaQ

5 REPLIES 5

Hello @Dinushka ,

It is very difficult to judge with the amount of information you provided but based on the video, it appears that you are facing an underrun, which means the LTDC falls behind and cannot keep up with the MCU. Could you please clarify what compiler and version of TouchGFX you are using? 
Plus, it would be much better if you can share some of the logic that you mentioned

Mohammad MORADI
ST Software Developer | TouchGFX

Hi Morad,

Thanks for responding. Touchgfx 4.15 and GNU tools for STM32 (9-2020-q2-update).

We have a configuration tool to enable outputs based on button touches. In this particular case, we have increased the width of output mask(uint16 to uint32) to support more outputs. In our application, frontend tasks(GUI) and backend is communicated through two queues. Therefore we have a somewhat good separation of application logic from GUI. This time the glitch occurred when we modify the backend(I can guarantee that this modification does not make any changes to UI). This device is a stable device over 2 years. We got same glitching issue around 1 year back. Even at that time, glitches were not visible in debug version. Therefore, we removed the compiler optimization and continued. 

I understand. Unfortunately, there is not much that I can do for you, however, I suggest to debug your application by STM32 CubeIDE and enabling error interrupt for your LCD to see when or how this glitch happens. Underrun can be caused by the logic as well, and it is not only related to GUI.

I hope I can help you more in the future 

Mohammad MORADI
ST Software Developer | TouchGFX

Hi,

Thank you for your response. I have tried few method to debug. But I couldn't identify the exact place and reason causing this glitch. I am not aware of any error interrupt which I could trigger based on the glitch condition. is there any way to trigger and break the code if glitch occur? if so could you kindly share the steps to follow

Yes, if your project is in CubeMX, you can enable the LTDC global error interrupt by going to Multimedia -> LTDC -> NVIC Settings. After generating the code, set a breakpoint on the function "LTDC_ER_IRQHandler" in the stm32h7xx_it.c file.

Here are the screenshots of the process:

Enabling LTDC Interrupt in CubeMXEnabling LTDC Interrupt in CubeMXSetting the breakpointSetting the breakpoint

If the issue is an underrun, the breakpoint will be triggered with these settings. You can then check the LTDC registers or call stack to identify the source of the problem.

Mohammad MORADI
ST Software Developer | TouchGFX