cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX "flickering" on cover transition

AMass.1
Associate II

Hi,

I am using TouchGFX with a STM32F4 MCU that is working pretty great and is quite awesome :)!

I am running into an issue where when transitioning (cover transition) from one screen to the other, the upper part of the screen is flickering the lower part seems ok.

When displaying a static screen, everything is perfect.

I am not sure that comes from TouchGFX though... (maybe it is a screen issue)

Here is my setup :

  • The screen is connected using the RGB interface 16 bit at 6.35MHz
  • The screen is a DT028CTFT
  • The frame buffer is internal in a dedicated 164KB memory bank inside the STM32F4
  • I am using the DMA2D with the LTDC built in controllers
  • I do not use double frame buffer nor animation storage (maybe here is the issue?)

I don't really know what kind of other information I could provide that can be useful here, please feel free to ask for more information.

Thanks in advance for the help,

AM.

1 ACCEPTED SOLUTION

Accepted Solutions
Alexandre RENOUX
Principal

Hello,

Your issue is probably the rendering time. I don't know the resolution of your screen but an F4 is not that powerful compared to an F7 or H7 MCU.

When you do a cover transition, the whole screen is updated which requires a lot of rendering depending on the resolution of your screen and the widgets displayed on the screen.

To improve it, you should use a double framebuffer (make sure you have enough RAM to do so).

Also, if you happen to have non static elements like a texture mapper on your screen, consider switching it to a fixed image for the transition so that rendering is easier for the MCU. Also, you can try removing widgets before the transition (fading out or simply set it to Visible(false)). The less widgets to be rendered the shorter the rendering time will be.

/Alexandre

View solution in original post

4 REPLIES 4
Alexandre RENOUX
Principal

Hello,

Your issue is probably the rendering time. I don't know the resolution of your screen but an F4 is not that powerful compared to an F7 or H7 MCU.

When you do a cover transition, the whole screen is updated which requires a lot of rendering depending on the resolution of your screen and the widgets displayed on the screen.

To improve it, you should use a double framebuffer (make sure you have enough RAM to do so).

Also, if you happen to have non static elements like a texture mapper on your screen, consider switching it to a fixed image for the transition so that rendering is easier for the MCU. Also, you can try removing widgets before the transition (fading out or simply set it to Visible(false)). The less widgets to be rendered the shorter the rendering time will be.

/Alexandre

AMass.1
Associate II

Hi Sir,

Thank you so much for your detailed answer.

Indeed, I​ have been able to check this using the debug pins of TouchGFX.

When transitioning from one screen to the other, the rendering time (MCU frame rate) goes down to 50-53Hz while my screen is at a steady 70Hz.

So it becomes clear that while sending data through the RGB interface to the screen the frame buffer is being modified creating that weird tearing effect.

Unfortunately, we only use the internal memory of the STM32F479NI and there is no way to fit another frame buffer (the screen is a 240x320 currently at 16 bit depth).

But fortunately we already planned to move to the newer STM32L4+ platform that will give us a 640kB SRAM, how great :)!

So we should be able to fit two frame buffers inside our MCU.

Thanks again for your help,

AM.​

Hi, I have a question, how is it possible to have 2 layers ( 2 layer LTDC )in touch gfx?

In its documentation has been stated that " TOUCH GFX WORKS WITH ONLY 1 LAYER" but I am wondering is it possible to enable 2 layer LTDC AND works with touch gfx?

Thanks in advance!

Hi,

It is still not possible to work with 2 layers and TouchGFX. It does not mean that it is not accessible though, so you can still write in the second layer by directly sending pixels to it, just not through TouchGFX. Never tried myself but I know some people have, to for example always have their logo shown on the display no matter what you do "under it" with TouchGFX, like transitions.

/Romain