Skip to main content
MEder
Associate III
June 2, 2020
Question

Optimizing Framebuffer Fetching, Touchgfx

  • June 2, 2020
  • 4 replies
  • 1061 views

I am following AN4861, and reading 4.5.2.

I have a 800x480 display, so I need the closest 64 byte multiple. 832

1) In CubeMX, DMA2D-Basic Parameters- DMA2D Output Offset. (832-800) = 32

2) In CubeMX, Additional Software-TouchGFX Width(LTDC) = 832

3) in main.c at end of MX_LTDC_INIT() add: HAL_LTDC_SetPitch(&hltdc, 832, 0);

Device config compile.

Touchgfx Generate code.

Project build.

With these changes it appears to work.

The Touchgfx editor now displays the 832 pixel screen.

Is this the correct configuration for implementing Optimized burst read accesses?

Thanks

Martin

This topic has been closed for replies.

4 replies

Martin KJELDSEN
Principal III
June 2, 2020

Hi,

You're right to choose the closest multiple of 64 (832).

The Canvas does not need to be 832 - This would be weird since your display is only 800 px wide. As long as the underlying memory access is 64 byte aligned.

If you look at the STM32F769-DISCO (800x480 DSI) Application Template you'll notice that the end of refresh interrupt configures LTDC->CFBLR to be 832 wide. We actually transfer the framebuffer in two 448 wide chunks. Currently, CubeMX can't help us with TouchGFX configurations when display interface is DSI ("Custom").

/Martin

MEder
MEderAuthor
Associate III
June 3, 2020

Hi Martin,

Yes it is weird for the canvas to be 832, Thats why I posed the question.

So using 832 will get the 64byte alignment.

With some weirdness (832 width) in the Designer, if you use CubeMX.

I will look at the example769-DISCO example

Thanks for the pointer.

Martin

Thanks

Martin

Martin KJELDSEN
Principal III
June 4, 2020

I won't rule out that you have to "adjust" some values after generating with CubeMX. It's difficult to abstract "rules" like these since normally, the width of the framebuffer matches the width of the canvas. Let me know how you do : )

Kingfishj8
Visitor II
June 15, 2021

Pulling the file "ApplicationTemplate.touchgfx.part into the editor and manually tweaking the screen width value after doing generate code inside CubeMX enabled editing without having to put up with that 32 pixel dead-zone in the editor.