cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H747 - DSI overflow error, no video output

VHEMaster
Associate II

Greetings!

I have a board with STM32H747XI and SN65DSI84-Q1 as a converter from DSI to LVDS.

The issue is that I can not get video output from MCU to 2ch LVDS panel 1920x720 with any configuration I'm trying. The main issue is that I'm getting HAL_DSI_ERROR_OVF error code on DSI side, and no any LTDC interrupts. It behaves the same regardless LTDC/DSI clocks.

When I init DSI and configure SN65DSI84 through I2C and enable Test Pattern generation (register 0x3C) I can see it, so DSI clock and the converter itself works.

Another issue is that when test pattern generation on converter side is disabled, on most configurations I'm getting CHA_SYNCH_ERR error read through I2C: When the DSI channel A packet processor detects an HS or VS synchronization error, that is, an unexpected sync packet.

Also, I tried to enable test pattern generation by DSI itself by calling HAL_DSI_PatternGeneratorStart. No effect.

Please help me to configure these properly. Thanks!~

Current CubeIDE project and schematics are attached. Thanks!

 

2 REPLIES 2
KDJEM.1
ST Employee

Hello @VHEMaster;

 

Could you please check the DSI settings and the LTDC timing.

I recommend you to look at AN4860 Introduction to DSI host on STM32 MCUs and MPUs.  This application note describes the DSI host interface on STM32 MCUs. It also provides practical examples on how to configure the DSI host depending on the operating mode.

I think also, these examples can help you to check you project:

-  LCD_DSI_VideoMode_SingleBuffer

LCD_DSI_VideoMode_DoubleBuffering

 

I hope this help you.

Kaouthar

 

 

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.

Hi @KDJEM.1 

Thank you for response.

Unfortunately, it doesn't help. Those examples are for TFT LCD with it's own controller that works in Command mode, not the Video one. 

I have already checked LTDC timings multiple times and used related function that converts LTDC timings to DSI. Nothing works.

Application note also doesn't provide any clarification. 

Besides, theres some magic multiplication on DSI timings on those examples and nothing explains that.

Thanks!