Skip to main content
WScot.1
Associate III
June 25, 2021
Solved

How to move from a LTDC-DSI project working on a stm32F769 disco board to a 5 inch display using LTDC-MIPI and RGB 24 pin?

  • June 25, 2021
  • 6 replies
  • 1422 views

Using a MIPI chip to replace the DSI functionality, I have removed DSI initialization, and configured LTDC for RGB 24 pin output, I have issues with LTDC initialization as it calls DSI? Also, in TouchGFX/target/STM32TouchController.cpp BSP_TS_Init makes calls to the driver ft6x06_ts_drv for the I2C sensor which I don't want? Is there some notes or a guide that would help me achieve this transition to a LTDC MIPI display?

This topic has been closed for replies.
Best answer by Alexandre RENOUX

Hello Will,

Yes you need to signalVSync for the TouchGFX loop to be triggered. For this, you need to implement HAL_LTDC_LineEventCallback().

Please refer to the F746-DISCO Application Template (more specifically the TouchGFXGeneratedHAL.cpp). This should help you understand.

/Alexandre

6 replies

WScot.1
WScot.1Author
Associate III
June 25, 2021

Thanks, Will.

Alexandre RENOUX
Visitor II
June 29, 2021

Hello WScot.1,

MIPI does not mean anything. It's an organization for standardizing interfaces for the mobile industry.

DSI is MIPI, LTDC is not part of the standard from MIPI. So I'm not sure I understand what you are trying to do.

Are you trying to switch from a DSI interface to a simple LTDC interface ?

/Alexandre

WScot.1
WScot.1Author
Associate III
June 29, 2021

Hi Alexandre,

Thanks for your reply. Yes, we're trying to switch from DSI interface to a simple 24bit RGB LTDC interface which will drive a MIPI chip. In the TouchGFXHAL::taskEntry I've been removing the calls to __HAL_DSI_ENABLE_IT in enableLCDControllerInterrupt leaving __HAL_LTDC_ENABLE_IT and NVIC_EnableIRQ(LTDC_ER_IRQn) in enableInterrupts. It's then waiting for a 'waitForVSync' and I think I need to send this from LTDC_IRQHandler is this the correct approach?

Thanks Will.

Alexandre RENOUX
Alexandre RENOUXBest answer
Visitor II
June 30, 2021

Hello Will,

Yes you need to signalVSync for the TouchGFX loop to be triggered. For this, you need to implement HAL_LTDC_LineEventCallback().

Please refer to the F746-DISCO Application Template (more specifically the TouchGFXGeneratedHAL.cpp). This should help you understand.

/Alexandre

WScot.1
WScot.1Author
Associate III
June 30, 2021

Hi Alexandre,

Thanks very much for your help, that's helped me a lot. I set up a F746 project and used the code in TouchGFXGeneratedHAL.cpp as a guide. I've enabled HAL_LTDC_LineEventCallback() and the line interrupt in enableLCD_ControllerInterrupt(). signalVSync is now sent from HAL_LTDC_LineEventCallback(), so I now have Vsync and Hsync signals coming out. This is definitely a step forward for us.

Thanks again,

Will.

Alexandre RENOUX
Visitor II
July 7, 2021

Hi Will,

Glad to hear it helped.

When your question is answered, please close this topic by choosing Select as Best.

/Alexandre