cancel
Showing results for 
Search instead for 
Did you mean: 

DSI in video mode + TouchGFX

KKlyn.1
Associate II

Hello!

We are developing a custom project with touchGFX for display with DSI and without GRAM.

Now we test it with f469-diso board. But we can`t customize touchGFX to DSI in video mode. We have read all topics about it, but still can`t find the solution.

Our startup picture looks very strange: it seems, that several copies of one picture try to overwrite each other.

But we can send pictures through the DSI in video mode and LTDC module without touchGFX. In this case, we think that the hardware settings are correct.

We got all hardware settings from stm32 cube repository, project "LCD_DSI_VideoMode_SingleBuffer".

In touchGFX settings, we choose Parallel RGB (LTDC) in display and LTDC in driver settings.

Now our goal to send just one picture from the internal flash with touchGFX software.

In the attachment, you can find the project. If you comment function osKernelStart() in main.c, you will see that display works fine!

But with touchGFX it works really strange...

Please, can anyone kindly check our project and help us to find the solution.

Best regards, Klynkin Kirill.

1 ACCEPTED SOLUTION

Accepted Solutions
KKlyn.1
Associate II

The problem was solved. Just change rgb888 to rgb565

View solution in original post

5 REPLIES 5
KKlyn.1
Associate II

The problem was solved. Just change rgb888 to rgb565

Imen.D
ST Employee

Hi @KKlyn.1​ and welcome to the STM32 Community =)

Glad to know that your issue is solved 😊 and thanks for sharing the solution, it should be helpful for the Community.

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen
LBaga.1
Associate II

Hello Klynkin Kirill,

I'm struggling with the same issue.

Can you expand a bit the way you have solved it? Where did you change rgb888 to rgb565?

Thanks in advance,

Luca

KKlyn.1
Associate II

Hello, dear Luca!

I have changed rgb888 to rgb565 in the LTDC settings, DSI settings, TouchGFX settings and in the BSP init code.

 VidCfg.ColorCoding = DSI_RGB565;

 pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;

 OTM8009A_Init(OTM8009A_FORMAT_RBG565 , OTM8009A_ORIENTATION_LANDSCAPE);

Best regards, Klynkin Kirill.

LBaga.1
Associate II

Thanks Klynkin Kirill for your prompt answer.

I tried to replicate what you suggested directly on the water_solutions.zip project to make sure I didn't add extra variables to the test...but with weird results.

I tried both to:

1) modify the line of codes you've mentioned without using the cubeMX. In that case, the TouchGFX didn't allow me to change the display color depth to 16bits. Only 24 bits was available. After compiling and downloading the code, the resulting image was the same as before.

2) achieve the above using the CubeMX. In this latter case the TouchGFX "noticed" that the project seetings were changed and the display color depth was automatically set to 16bits. After compiling and downloading the code, I could only see a gray screen with a blue rectangle which is the output form the call LCD_BriefDisplay() function.

Can you suggest what am I doing wrong/different form you. Could you share again the .zip with the working example?

FYI: for my project I'm following exactly the same steps.

I started form the LCD_DSI_VideoMode_SingleBuffer with the purpose to have the Video Mode working on another display (based on st7701s controller). This was easy done.

After I tried to get the DSI Video Mode working with TouchGFX with the STM32F469I-DISCO board original display.

I get an image which has pixel rows shifted a few pixels on the right with respect to the previous one, exaclty like in your example.

I suspected some sort of horizontal synchronization problems, but I use the same setting as the LCD_DSI_VideoMode_SingleBuffer and as I could see form your example you do the same.

Thanks in advance.

Luca