2022-05-12 04:19 PM
The idea of opening this question is to achieve what I put in the title: understand the encoding of the hdmi/dvi signal, in a staggered manner. I don't want to define any microcontroller capable of it yet, but my intention is, if possible (I know it is), to do it without external dedicated circuits, my final goal is to make an OSD in some HDMI device, that is, about putting text on a device that generates video, but I have to start with basics.
I come from generating signals by vga, and in the way that I have proposed, is that I managed to do it, where my guide page was:
https://www.artekit.eu/vga-output-using-a-36-pin-stm32/
I have to mention that I got the ideas from his description, but I didn't use his code as such, since I program basically in C.
So, following my experience, we would start by trying to understand the generation of horizontal and vertical synchronies, did someone say me?
Initially, the generation I have seen is achieved with 8 rails:
clk+, clk-
dt0+, dt0-
dt1+, dt1-
dt2+, dt2-
What I have found is that the synchronies are encoded in BLUE, without understanding it yet.
Greetings, and I thank you in advance, if we could complement with images.
The initial objective is to generate synchronicities, the second, to generate a green line (the thickness does not matter).
2022-05-12 05:03 PM
2022-05-13 12:06 PM
Hi again @Community member ! Thx for the file, but i can´t see how the syncs are made... =(...
Here you can see an example made with an fpga:
2022-05-13 12:45 PM
Looks to use 2 bit pattern stuffed in the blue channel, ie as part of the 8-to-10 bit conversion 2-bits get XOR'd into the pattern indicating the horizontal/vertical sync signals.
https://pdfserv.maximintegrated.com/en/an/AN4306.pdf
2022-05-13 02:07 PM
Yes! Your document gives us a better idea:
"The timing sequence of the analog video signals is exactly followed in the digital video signal format. In HDMI format, pixels are sent from left to right with horizontal synchronization codes between every line; lines are sent from top to bottom with vertical synchronization codes between every screen. During the times corresponding to the blanking of the analog video signal between every line and between every screen, horizontal and vertical synchronization pulses are encoded in channel 0. Four 10-bit code words, 1101010100, 0010101011, 0101010100, and 1010101011, represent (H = 0, V = 0), (H = 1, V = 0), (H = 0, V = 1), and (H = 1, V = 1), respectively. Using these codes, the horizontal and vertical synchronization pulses can be represented in the time domain with the accuracy of the pixel clock"
2022-05-25 11:10 AM
Here we have a better idea:
This was created via dvi 640x480@60hz with a pico that i have programed today, we can see, the signals are paired, in complementary mode.
And here:
We can see, that ck´s signals, are consistent
and the screen recognizes the signal:
P.D.: My LA only works at 120 Mhz, we can´t see the sync´s signals...