2020-07-22 06:43 AM
Hi,
I am working on STM32L4R9 Discovery kit and STM32L4R9 Evaluation kit , which has the 390x390 display.
I have created a simple project with 2 screens one is with analog clock and two buttons and another one is just with an image. Whenever screen transition happens(Slide or Cover) from screen 2 to screen 1 rendering time is around 36 ms. And as i add more images in the screen 1 rendering time is increasing more and animation is not looking good.
Below are the configurations used,
Is it because of the the single frame buffer usage? If so is there any way to configure Display RAM as second buffer?
Could you please help to obtain maximum display refresh speed.
Thanks in advance,
Bala
2020-07-23 01:55 AM
Hello,
With DSI, we only use a single buffer on the MCU side because the GRAM of the display is already used as the second buffer.
For slide transition, there's an animation buffer to enable, to allow the transition to be performed but as you see the animation, it should be done on your side.
If you are using the version 3.0.0 Application template available on TouchGFX Designer with a Disco or Eval board without having made any changes, this is currently the best performance you can get.
We will try to find out if we can improve it.
Please note that, when you do a screen transition, all the pixels of the screen are updated and this can take a lot of rendering power to do so.
/Alexandre
2020-07-26 12:14 AM
Hi @Alexandre RENOUX,
Thanks for the details.
I have used 13.0.0 TouchGFX application to generate project.
If i want to use 2 buffer which Interface do i need to use ? Since i am using only single buffer, Do I need to add any code to indicate touchgfx that i am using display GRAM as a second buffer ?
Could you please let me know how to enable Animation buffer for slide transition. Can i store the animation buffer in internal the RAM/ROM ?
In the Demonstration video given for STM32L4R9 Disco and Eval board, animation looks good. How many buffers are used in the demonstration code and will it be possible to get the full project of the demonstration example.
Thanks and Regards,
Bala
2020-07-27 01:44 AM
Hello,
No you don't need to do anything. The GRAM is used as the second framebuffer by default with DSI interfaces. Therefore if you saw a demo, it uses double buffering. However, I don't know what video you are talking about.
To enable Animation buffer, you need to write the following line in TouchGFXHAL.cpp in function void TouchGFXHAL::initialize()
setFrameBufferStartAddresses((void*)0x30000000, (void*)0, (void*)0x400000000 /* Set here the starting address of your animation buffer*/);
/Alexandre
2020-07-27 04:43 AM
Hi @Alexandre RENOUX,
Thank you so much for the quick response.
The demo code i mentioned above is in the below link,
https://www.youtube.com/watch?v=Yx23qABOMwU .
If possible, Could you please provide project the project shown in the video. It will help to understand more.
Do i need to store store the animation buffer in RAM only or can store in Flash also?
Thanks and Regards,
Bala
2020-07-28 05:58 AM
Hello,
This demo is not something we can share because there's a lot of alpha stage code and there's no version with graphics only.
On the other hand, I can tell you that it does not use the screen transition idea but the Swipe container feature plus some shifts that are manually made, so it would not help in your case.
The animation buffer should be stored in RAM preferably for performance matters.
/Alexandre