2024-05-26 09:34 PM - edited 2024-05-26 09:36 PM
I am using STM32H743IIT6 MCU to drive HDMI display using LTDC peripheral and Texas Instrument TFP410 for RGB to HDMI conversion. Issue I am facing is I use external crystal as clock source then I see disturbance on my HDMI monitor and its display blinks randomly, say screen is proper for some 5-10 sec then it will flicker and turn off and on then again be stable for some time and these repeats. My guess is that some HDMI timing related parameters are not matched and that's why this behavior on monitor. Surprisingly, this issue resolves if I use internal CSI RC oscillator as clock source. I even tried doing the PCB layout again using an external agency, but same issue persists in that layout as well. What could be the issue here that it works with internal CSI RC clock source and not external crystal ? Please find below related parameters configured in my project. I have also attached my projects CubeMX .ioc file for reference.
Solved! Go to Solution.
2024-07-05 11:11 PM
This issue got fixed as I have replaced External Crystal with External Oscillator in my PCB.
2024-05-27 12:15 AM
Aren't Sync and Back Porch concurrent?
2024-05-27 12:27 AM
>What could be the issue here that it works with internal CSI RC clock source and not external crystal ?
You adjusted PLL/clk for 4M CSI and 25M HSE absolutely to same speed (for core, LTDC, FMC, etc. ) ?
2024-05-27 12:33 AM
Yes, I have adjusted the PLL values such that the core. LTDC, FMC clock remains same in both case.
2024-05-27 12:38 AM
No, they are different.
2024-05-27 12:47 AM
So check with a scope : LTDC clock, HSync, VSync -> same timing with HSE or CSI ?
2024-05-29 12:40 AM
Please find attached short videos of LTDC Clock waveform as seen at the input on TI TFP410 HDMI IC. This signal is measured using DSO with probe up to 100MHz and sampling rate of 1Gps.
Observations:
2024-05-29 09:54 AM - edited 2024-05-29 09:57 AM
ok,
>In both case I observe a sine wave instead of square wave
Use 10:1 scope probe setting . Do you ?
+
set port/pin speed hi or very high , then you get sq.wave.
(for all pins with hi speed signal ! )
2024-05-29 10:25 AM
Tesla and your image mean , that sync is part of accu back porch, and your nums little miss.
for example
hltdc.Init.HorizontalSync = 4;
hltdc.Init.VerticalSync = 4;
hltdc.Init.AccumulatedHBP = 12;
hltdc.Init.AccumulatedVBP = 12;
hltdc.Init.AccumulatedActiveW = 812;
hltdc.Init.AccumulatedActiveH = 492;
hltdc.Init.TotalWidth = 820;
hltdc.Init.TotalHeigh = 506;
back porch here is 8 = 12-4
your nums miss
2024-05-29 10:54 AM
Concurrent in my vocabulary are "at the same time", the line totals are BP+ACTIVE+FP, not SYNC+BP+ACTIVE+FP.
If the peripheral has a single pixel counter for the line, and I'm doing a compare on that count, I hold SYNC until it hits it's count, no data goes out until it hits the ACTIVE count at BACK PORCH, and stops when it hits the FRONT PORCH