It’s been a long time since I last updated about this project, but I have been working slowly in the background. The current plan is to use a TVP7002 from Texas Instruments which is a triple 10-bit video digitiser. It is a little bit over-kill for my needs – it is able to handle three RGB video signals and I only need one monochrome video signal – but nonetheless it is an interesting chip and will achieve what I need.
This chip takes HSYNC, VSYNC and Video as an input, which are the same signals the oscilloscope outputs to the display. It then outputs a pixel clock and 10 bits of red-, green- and blue-data. Because I am only using one channel, I feed my video signal into the green input and only look at the 10 bits for the green output.
In order to reconstruct the video signal, the chip needs to know a number of parameters of the video signal, such as number of pixels per line, the length of the hsync pulse, the number of lines and the length of the vsync signal. These details aren’t given in the repair manual for the oscilloscope, therefore I needed to find them out myself.
The oscilloscope contains an LM1882 “Programmable Video Sync Generator” from National Semiconductor. By probing the vsync, hsync, pixel clock and blanking signals from this chip I was able to determine a number of properties of the signal.
The properties are as follows:
- Pixel clock = 20MHz
- 800 dots per line
- 576 dots per line
- Hsync of 64 dots
- Horizontal front/back porch is 136 and 24 dots
- 417 lines in total
- 378 active lines
- Vsync of 3 lines
- Vertical front/back porch is 25 and 11 lines
These properties could then be programmed into the TVP7002 over the I2C interface from the Atmel ATtiny87.
Finally, I connected the TVP7002 video board to the oscilloscope output cable and connected the output of the board to the logic analyser of the Rohde& Schwartz RTB2004 Oscilloscope. I then captured the output signals for a full frame and saved this to usb.
I transferred this data to my computer and processed it in Matlab.
And look! It actually looks almost correct.
There are clearly some issues with the settings on the video digitiser. The data only uses the bottom 7 bits of the 10 available bits and there seems to be some phase error on the pixel clock, but this can be corrected in register settings.
Obviously this whole process is very manual. The next step is to develop the FPGA code using my Digilent Nexys DDR 4 development board so that I can feed the video signal directly into my LCD panel over VGA.