Showing results for 
Search instead for 
Did you mean: 

Video mode printing another frame on screen

Associate II

Using STM32F469I-DISCO in video mode, the testing screen created in TouchGFX Designer is being printed to the DISCO board in video mode. The issue I am encountering is the start of the frame is being printed again and I am not sure how to solve this issue, I have tried change different porch values but the problem persists, would anyone know what could be creating this issue and a method to solve it? Below is my method of creating video mode from a fresh TouchGFX Designer project, would this creation method be the reason for this issue?


TouchGFX Designer testing screen

 Testing screen being printed to STM32F469I-DISCO in video mode for otm8009a


Methodology to creating the project.

Using STM32F469I-DISCO in video mode:

1. Built the project in TouchGFX Designer for STM32F469I-DISCO.

2. Opened the generated project's STM32CubeMX .ioc file to convert to video mode.

2.1. Changed LTDC's Parameter Settings porch values to the values found in otm8009a.h file.

2.2. Changed LTDC's Layer Settings to have the correct screen size 800x480.

2.3. Changed DSIHOST to Video Mode.

2.4. Changed DSIHOST's Commands to Low Power.

2.5. Changed DSIHOST's Display Interface to Burst Mode and enabled all Low-Power Transitions.

2.6. Changed X-CUBE-TOUCHGFX to use Parallel RGB (LTDC) for the interface and LTDC for the Application Tick Source.

2.7. Generated the new code.

3. Opened the generated project into STM32CubeIDE where I commented out all the code in MX_LTDC_Init's USER CODE BEGIND LTDC_Init 2 except for 'HAL_DSI_START', 'OTM8009A_Init' and 'HAL_LTDC_SetPitch'.

4. Edited the TouchGFXHAL.hpp and removed the '+ 32' from 'width + 32' regarding the TouchGFXHAL class.

Associate II

Pushing the porch values of HBP and HFP to the value of 120 seems to have solved this issue, I am not sure if this is the correct thing to do based on LTDC App Notes suggesting pixel clock is (2 + 120 + 800 + 120) * (1 + 15 + 480 + 16) * 60 which is 32 MHz and my LTDC clock is 30 MHz. I am not tagging this reply as a solution in-case this was not the appropriate thing to do.

ST Employee

Hello @JSime.1 

I suggest you taking a look to the provided example : STM32Cube\Repository\STM32Cube_FW_F4_V1.27.1\Projects\STM32469I-Discovery\Examples\LCD_DSI\LCD_DSI_VideoMode_SingleBuffer

You can check the timings configuration and clock configuration in stm32469i_discovery_lcd.c also table 6 in AN4861

I hope it would be helpful!


To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.