cancel
Showing results for 
Search instead for 
Did you mean: 

Flickering on rendering of TouchGFX screen on STM32F429 board

andrea venturi
Associate III

i've got a "low cost" dev board with STM32F429BI SOC and 5inch touch LCD, and i'm praticing with the current CubeIde 1.3.1 / TouchGfx 4.13 CubeMX framework.

i followed the instruction for a new bring-up and they are pretty enlightning! the TouchGfx boys are pretty strong!

Now, i put all the stuff for FMC SDRAM and LTDC proper cfg (scanline and more), when i enabled the LTDC global interrupt i started seeing the light of the first screen in my TouchGfx mockup project.

The issue i'm facing now (before delving more in depth on the touch screen driver as next steps) is about a "flickering" starting to appear some 30 seconds later after program running.. see the video below (complete "idle" framework, Model.cpp tick() is called, empty, nicely..)

it looks to me some kind of "hardware FIFO/DMA" is trashing.. but i'm puzzled because it does NOT happen at start, but at a later time.. and it goes worst along time

i'm just wondering if you have seen something similar before.. and/or have a clue about where to look more in depth.. i'm planning to check the MCU instrumentation binding, just to check "how high is the CPU load".. what do you think?

thanx again for the hard work. this graphic framework is really great and powerful!

1 ACCEPTED SOLUTION

Accepted Solutions
andrea venturi
Associate III

thanx Alexandre for your reply.

as sometime happens, when one starts talking about, some light is shed on the right spot!

i checked the clock tree, it looks like i'm using the internal HSI (too high RC jittering when SOC warming?) and not the external HSE (a 25MHz crystal..)

when i moved to the HSE, indeed, the flickering is no more..

0693W000001qIyCQAU.png

now i've got also 30MHz of CPU cycles for free! 🙂

sorry for the noise on the forum..

View solution in original post

6 REPLIES 6
Alexandre RENOUX
Principal

Hello,

Maybe you can refer to the Application Template F429-DISCO available on TouchGFX Designer for input.

Indeed this is true that the flickering happening after 30 seconds is strange. Sometimes flickering can happen due to wrong linking at building time. Also make sure the pixel clock is correctly set for your LTDC.

/Alexandre

andrea venturi
Associate III

just to add some more info, the clock cfg in the CubeMX prj

0693W000001qIlwQAE.pngand another later short image about artifacts becoming worst.. still running and not stuck, anyway

0693W000001qInJQAU.jpg

let me finally add we are talking about a 800x480 display with RGB888 (3 byte) pixels.. so i know it's quite taxing the SDRAM.

i used the SDRAM params from the BSP of the vendor, and it works ok for the first 30 secs, so that's quite puzzling me..

andrea venturi
Associate III

thanx Alexandre for your reply.

as sometime happens, when one starts talking about, some light is shed on the right spot!

i checked the clock tree, it looks like i'm using the internal HSI (too high RC jittering when SOC warming?) and not the external HSE (a 25MHz crystal..)

when i moved to the HSE, indeed, the flickering is no more..

0693W000001qIyCQAU.png

now i've got also 30MHz of CPU cycles for free! 🙂

sorry for the noise on the forum..

Great ! I am glad to hear that.

If you happen to complete your project smoothly. It would interesting if you could share the project (CubeMX config, what you added as user code that is of importance). This way it can help others and I think being able to create a nice GUI for this price can be compelling.

Thank you in advance,

/Alexandre

yes, that would be my idea too. as soon as i have the touch screen more or less working, i plan to put the project up on github, for people to get an idea.

i'll leave the other embedded peripherals (like SD card and SPI flash..) as exercise to the reader! 🙂

overall, it looks like a pretty cute board for playing with TouchGFX as educational tool..

andrea venturi
Associate III

Here i am!

I put in place a quick and dirty Touch screen driver for the LCD 5inch Goodix GT911 touch controller and cleaned up a bit the sample code!

It works for me, and you can

  • compile/debug with CubeIde (last 1.3.0 updated online to 1.3.1)
  • edit the CubeMX IO cfg clicking on the *.ioc file
  • edit the TouchGFX screens clicking on the *.touchgfx prj file (on Designer 4.13.0)

And the, if you "customize" the files using the stub entries BEGIN/END, the added code should be preserved after regeneration

There's also a blinking led on a second task to show the core is running (not bound to refresh rate like in the good old STM32F429 Discovery sample)

Finally, the USART1 is bound to printf() so you can easily print debug msg over the serial in the service connector.

The github link is here: https://github.com/aventuri/fk429m1-lcd5-touchGfx-stub

let me know if you find it useful or difficult to use!