cancel
Showing results for 
Search instead for 
Did you mean: 

Exact steps to configure TouchGFX

VLau
Associate III

Hey!

I've been struggling to understand TouchGFX engine. I tried Discovery board and examples provided by TouchGFX Designer - everything works out of the box.

However playing with high level app software on discovery boards won't help me on the product boards, so I tried build project from scratch and failed. After that I reduced my task to pick small I2C B/W display, working LCD driver and draw a square on it with TouchGFX framework. Just to see that engine "ticks" as expected. Still no luck.

Things I tried so far:

  • follow https://support.touchgfx.com scenario on SPI interface
  • NUCLEO-G071 board example
  • some guy's blog who was able to run TouchGFX with SPI display
  • without/with RTOS

Maybe anyone saw EXACT steps on how connect TouchGFX framework to hardware. Like what signals/interrupts framework needs, which file to put it (ex. step 1: you should provide this instruction here for this and this flag there for that). I guess I'm talking about "Touch AL" layer which seems to be the hardest part. Theoretically I kinda understand what is rendering, when flushing buffer takes place and such things, yet no able to run it.

For now I always stuck at

    virtual void backPorchExited()
    {
        swapFrameBuffers();
        tick();   // <- here
    }

Worth mention that tried I provide Vsync flag with Timer interrupt. I tried different timer rates and different places to start it, also tried to emulate Vsync flag.

extern "C" void touchgfx_signalVSyncTimer(void)
{
  HAL::getInstance()->vSync();
  touchgfx::OSWrappers::signalVSync();
}

Any suggestions appreciated! Thanks

10 REPLIES 10

Ok, thx

Any idea why flushFrameBuffer() called twice?

Of course it doesn't matter on my B/W display, but on colored high-res SPI interface display this can unnecessarily load MCU and reduce achievable FPS.

If I manage to solve this I can provide instructions on how set-up touchGFX on SPI display, similar to what I did with DISCO-F429 (if by any chance anyone would need it :))