cancel
Showing results for 
Search instead for 
Did you mean: 

Change from DSI interface to RGB parallel interface

Ebun.1
Senior

Thank you for helping.

environment:

MCU: STM32F769BI

Board: Custom

STM32CubeIDE Ver1.5.0

TouchGFX Ver4.15.0

Import the project created using the STM32F769I-DISCO template with TouchGFX with STM32CubeIDE,

After setting the LCD clock with GUI

I disabled DSI in the GUI and set the parameters for LTDC and TouchGFX.

The HSYNC, VSYNC, and DE signals are now output, but they are out of sync with the color signals.

What should I do to get in sync?

Also, is the initial setting of DMA2D correct as follows?

 hdma2d.Instance = DMA2D;

 hdma2d.Init.Mode = DMA2D_M2M;

 hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888;

 hdma2d.Init.OutputOffset = 0;

 hdma2d.LayerCfg [1] .InputOffset = 0;

 hdma2d.LayerCfg [1] .InputColorMode = DMA2D_INPUT_ARGB8888;

 hdma2d.LayerCfg [1] .AlphaMode = DMA2D_NO_MODIF_ALPHA;

 hdma2d.LayerCfg [1] .InputAlpha = 0;

 if (HAL_DMA2D_Init (& hdma2d)! = HAL_OK)

 {

  Error_Handler ();

 }

 if (HAL_DMA2D_ConfigLayer (& hdma2d, 1)! = HAL_OK)

 {

  Error_Handler ();

 }

The waveform observed by the oscilloscope is attached.

A white image is pasted only on the left 1/4 of the screen.

Light blue (top) is DE and purple (bottom) is the R5 color signal.

You can see that it is shifting little by little.

Thank you. 

1 ACCEPTED SOLUTION

Accepted Solutions
MM..1
Chief

Configuation on F7xx is more complicated, you need perfect config on clock, memory manager, bus speed, caching usw.

Too i see maybe source for your trouble is your steps create project for DSI with TE clocking and then change it.

Try start from scratch clean IDE wizard select MCU and configure all parts.

View solution in original post

16 REPLIES 16
MM..1
Chief

This shifting is equal to horizontal sync porch intervals.

Edit: I make next see on your image and seems your config is not correct.

Maybe you setup quick dot clock and memory cant read at this speed...

Ebun.1
Senior

Hi MM..1

Thank you for your reply.

The LCD resolution is 1024 * 768.

Load the project created with TouchGFX with Cube IDE

I set the parameters according to the liquid crystal as shown in the attached image.

The LCD clock is 56MHz.

(At least 52MHz, so it can't be too slow)

I would appreciate it if you could tell me in detail where the problem might be.

Thank you.

MM..1
Chief

When your custom board have SDRAM 32bit this clock can work , but with 16bit try 33MHz max

Ebun.1
Senior

Hi MM ..1

Thank you for your reply.

The SDRAM interface is based on STM32F769I-DISCO and has a bus width of 32 bits.

Is there any problem?

Is this problem likely to be in hardware, not software?

MM..1
Chief

Configuation on F7xx is more complicated, you need perfect config on clock, memory manager, bus speed, caching usw.

Too i see maybe source for your trouble is your steps create project for DSI with TE clocking and then change it.

Try start from scratch clean IDE wizard select MCU and configure all parts.

Ebun.1
Senior

Hi MM ..1

I created a project by selecting the template of STM32F769I-DISCO with TouchGFX Ver4.15.0.

I loaded the project with STM32CubeIDE, opened the ioc file and made the following settings using the GUI.

・ Set the LCD clock to 56MHz

・ Disable DSI

・Change to RGB parallel interface

・Set the Display Interface of TouchGFX to Parallel RGB (LTDC)

・Set TouchGFX Application Tick Source to LTDC

I'm going to start with a clean wizard.

Is it something wrong with the settings?

Ebun.1
Senior

Hi MM ..1

If I start with a clean IDE wizard

I don't think I can set the parameters because TouchGFX doesn't appear on the IDE.

you need open software packages and add touchgfx to project

Ebun.1
Senior

Hi MM ..1

Thank you for your reply.

When I created a scratch project in the IDE, set the peripherals, and added TouchGFX to the IDE project, the following error occurred.

Could you please tell me the cause of this error?

Thank you.