Mini AV Test Box

Jump To:
The VGA Theory
           Since I've already explained VGA theory in the project write-up for the VGA Test Box, I'll give a brief overview and explanation here.
           VGA alone stands for: Video Graphics Array and it is a (non-interlaced) video standard for displays that came about in the late 1980's. For the past decade a lot of other video standards like DVI and DisplayPort have tried their best to overtake VGA and while they've gained some ground, VGA still remains a very widely used standard.
           The VGA standard is an analog signal standard, although it was made so that even pure digital systems can make use of it and this is why the PIC microcontroller can by itself output VGA a display.

VGA Timing Diagram

           The Timing Diagram seen above gives all the numbers, sync delays and data output times necessary for getting 800x600 VGA to work. Most important are the Sync Pulse signals. These two signals tell the display when to start outputing data to the next line and when all lines have been displayed. Once you get Hsync and Vsync working, the Red/Green/Blue data lines are just an after thought of how you want things to look on the display.

PIC Instruction Cycles

           One important thing to notice is that all of the delays and times in the VGA Timing Diagram are divisible by 0.2us. This is an important observation to make because the PIC is running at 20 MHz which means that every instruction executed by the PIC takes exactly 200 nanoseconds (from the first page of the 16f84A datasheet).

Since every instruction is 0.2us, we can create the exact VGA signal if we count the assembly instructions correctly in the software! This is perfect for what we want to do in building the AV test box.