2025-02-11 03:33 AM - edited 2025-02-11 03:34 AM
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!
2025-02-12 03:20 AM
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.
2025-02-12 04:27 AM
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!
2025-02-15 12:23 AM
Unfortunatelly, the issue is still relevant.
2025-02-15 02:56 AM - edited 2025-02-15 03:06 AM
2025-02-17 12:27 PM
2025-02-17 10:30 PM
I have ported this project to test on STM32H747I-DISCO board (just changed the PLL configuration) and got the same result: still HAL_DSI_ERROR_OVF occured. Also, checked HAL_DSI_PatternGeneratorStart function with LTDC disabled on demo project - it works without LTDC.
Regarding my own board - still no changes, nothing helps:
2025-02-18 12:16 AM
Hello @VHEMaster;
Which STEM32CubeH7 Firmware version are you using?
Could you please try to update your STM32Cube firmware and your toolchain.
I noticed that the STM32CubeMX shows an error in the RCC configuration. So, please check the parameter settings?
Thank 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.
2025-02-18 12:19 AM
@KDJEM.1 Thanks for an answer!
The CubeMX configuration is not relevant, because it's a pain to regenerate code each time after some field changed. And this particular error is a known bug of CubeMX: it doesn't allow to select PWR_DIRECT_SMPS_SUPPLY although it is used in original examples and works fine @480MHz.
2025-02-18 12:28 AM
Hello @VHEMaster,
This FAQ can help you on How to reach 480MHz on system clock for STM32H7xx MCUs using STM32CubeMX?
Please update your toolchain and the STM32Cube firmware and let me know if the issue is solved or not?
Thank 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.