cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX Screen flickers when another screen is selected

GS1
Senior III

Hi TouchGFX users,

I have a flicker problem which obviously exists since Release 4.14 (maybe already 4.13. as I scipped this release)

Appx. after every 20 ... 30 power cycles the screen initialisation and updates to included widgets flickers. Powering up the system again clears this effect and everything works perfectly.

Please see below video on how this effect looks like. The flicker is only once per screen update.

Of course I use double buffering.

Has anybody an idea of what might be the reason?

P.S: This effect is also seen once when another screen is selected, which does not update values every 0.5 sec like seen in the screen from the video. 

Best regards

GS

14 REPLIES 14
EEuge
Senior

Looks like low SDRAM and FSMC speed

But? if you wrote "exists since Release 4.14 (maybe already 4.13. as I scipped this release)", and "Of course I use double buffering.", I think, that your problem has another reason:

Open file TouchGFXGeneratedHAL, look at

void TouchGFXGeneratedHAL::initialize()
{
    HAL::initialize();
 
    registerEventListener(*(Application::getInstance()));
    enableLCDControllerInterrupt();
    enableInterrupts();
    setFrameBufferStartAddresses((void*)0xD0000000, (void*)0xD0200000, (void*)0);
	  lockDMAToFrontPorch(true);
}

Have your code string " lockDMAToFrontPorch(true);" ??? Try to set this parameter to true

MM..1
Chief III

How you update your values, who is master? Check CAN communication IRQ priority level,

Your issue seems as conflict between LCD refresh and other hw , Levels in IRQ is top RTOS then LTDC then .. then lower CAN.

Hi ,

thank your for your suggestion, in fact it was set to false, however setting it to true, did not help.

Still there after appx 20 reboots.

on double buffer is default and recomm false

GS1
Senior III

The presented values are updated every 0.5 seconds via handleTickEvent. Values are received via UART every 0.1 sec. from other internal processor which handles reception of CAN data independently.

IRQ levels checked already and are set as proposed.

And I did not change the setting of interrupt priorities since it was working in Version 4.12.0.

The problem occurs only after every 20... 30 reboots.

And in case it happens, it also happens when I simply switch to another screen (which does not change any values while it is active). Then I see just one flicker when the screen is drawn.

Try use 4.13 . How work your UART ? DMA IRQ speed how many data? How you update in handleTick ?

UART is done via DMA reception. But as already said:

The flicker also happens when only the screen is changed. In this case UART is not involved. Only RTOS, TouchGFX and LCD.

In this case handleTick also is not involved.

I certainly can try with 4.13., but the only thing which I can tell then is: It is working with 4.13. or not. The problem would then still be to solve the issue in 4.16. as switching back from 4.16. to 4.12/4.13 is not an option for my solution.

I see too some troubles and result 4.13 as best and locate source of troubles to files in TouchGFX\target\generated\

Then you can store this files from 4.13 and try use it in 4.x, but yes better is oficial solved bug. But i see TouchGFX devel create new version some half year and every have new trouble.

Ok, thank you for your input!

I will give it a try and lets see if I can find something...

I was hoping that including TouchGFX into the ST company would not harm the product quality. I use TouchGFX already since 2017 with release 4.8.0 and actually was really really happy - except with this flicker which now is present.