In Reply to: TV Test Pattern Generator and use of Memory posted by Tommy on 10/21/02 at 9:31 AM:
I recently resurrected a pattern generator project that I started while working at another company some years back. In the ensuing "restructuring" shambles, I found the circuit boards I had made for the project in a dumpster plus a lot of the parts, but so schematics or board layout, so I'm slowly reconstructing these.
(This was designed for PAL TV, but I did make provision for NTSC on the PC board, although I never got that far originally).
The basic design was as follows:
There are two 27512 EPROMS (ie 64K * 8) whose address lines are driven by two 74HC4040 counters.
The master clock frequency was 4MHz, which is exactly 256 times the PAL line frequency. That means that the first 8 bits of a 4040 driven by the master clock will continually count through 0 to 255. If these outputs drive eight of the address lines of an EPROM, the EPROM will then continuously cycle through 256 different 8-bit memory locations.
This gives you eight outputs which can be used for R,G, & B, sync, intensity, blanking and other functions.
If I remember correctly, for a standard line colour bars, I started with 4 bytes of "0000 0000" which is blanking level, 20 bytes of "1000 0000" which gives about 5uS of sync, then another block of "0000 0000" for the horizontal blanking, then 26 bytes each of "0000 0111" (White) "0000 0110" (yellow), "0000 0011" (Cyan) etc etc, giving a total of 208 bytes for the visible picture area.
If you just used that same block of 256 bytes you'd get a single line of colour bars repeated over and over with no vertical sync.
However, by accessing the other 256 address lines of the EPROM, you can access up to 256 DIFFERENT lines of video. Thus you can have all the different lines that make up a proper interlaced vertical sync sync block, single colour screens, crosshatch, colour bars plus all sorts of other patterns.
This accessing is the job of the second EPROM, whose counter is clocked at line rate. To make a complete interlaced frame of PAL video, you merely have to store the string of 625 8-bit numbers that point to the correct lines of video stored in the "Line EPROM"
The basic circuit only used six chips: the EPROMS, two HC4040 counters, an HC7400 for the oscillator and a HC574 8-bit latch.
The first 4040 basically "free runs" while the second uses simple diode gating to make it reset at 625 (Actually, it counts from 0 to 624). The outputs of this "frame" EPROM connect directly to the eight highest order address lines of the "line" EPROM.
This is of course all pretty simple, however the computer program that generates all the patterns to put in the EPROMS is not!
I also worked out a way to make a "main" screen where you could scan in a monochrome bitmap image with your company logo, so that it appeared as part of the test pattern. To do this I had to develop a "simple" compression algorithm that identifies duplicated (or nearly duplicated) lines of video, to keep the "different line" count under 200.
It does work, but I don't know how I could package it so that ANYBODY could use it:-)