How to determine proper DSI, LTDC and HDMI timings?
This is my first time working with any DSI/LTDC/HDMI related stuff, so I'm still figuring a lot of this stuff out and could use some help figuring out how times and clock speeds all interact.
I'm using the STM32H757 Eval board. I have it working with the on board 800x480 display and purchased one of the HDMI adapters they make for this board. Using one of the example projects I got that displaying at 720x480 to a standard computer monitor (a 1080p capable BENQ). I now want to increase the resolution and... can't figure out what I need to change.
The example code sets:
DSI to 40625 Khz
LTDC to 27083 Khz
And it uses these timings
Timing->HSYNC = 62U;
Timing->HBP = 60U;
Timing->HFP = 30U;
Timing->VSYNC = 6U;
Timing->VBP = 19U;
Timing->VFP = 9U;
Timing->HACT = 720U;
Timing->VACT = 480U;
I have no idea how they computed those timings.
I found this website: https://tomverbeure.github.io/video_timings_calculator which has very similar timings, but not exactly the same. It has numerous columns (that I assume are standards of some kind?), but the closest was CEA-861 with the values
Timing->HSYNC = 62U;
Timing->HBP = 60U;
Timing->HFP = 16U;
Timing->VSYNC = 6U;
Timing->VBP = 30U;
Timing->VFP = 9U;
Timing->HACT = 720U;
Timing->VACT = 480U;
I plugged in those timings and those seem to work. I don't know why there is a slight discrepancies between the example code and that website, but both seem to work so I guess it's close enough.
Using the same website, I switched to 1280x720 @30Hz and all the frequencies go up and so do the timings. So I guess I have to change my DSI and LTDC frequencies... but how exactly do those two interact? Does the DSI just always need to be higher than the LTDC? Do they have to be at a certain ratio? The column that was closets to the values in the example code for 720x480 came from the CEA-961 column. For 720p @30Hz that column has running at more than twice the pixel clock speed of the others (74.25MHz). The DSI goes up to 62MHz per lane (1Ghz total... which I don't really know how either of those two numbers interact, but I know they're a thing). 62 is less than 74, which is what the LTDC would have to be running at if I used that column. Is that allowed? Should I be using a different column?
I know that to do certain resolutions at certain frequencies you need X amount of bandwidth, but I don't really know how those numbers are computed and how that corresponds to requisite clock speeds.
Basically, any direction at all would be greatly appreciated. With displays things often either work or they don't so it can be difficult to figure out exactly what's wrong Thanks!
