The goal of this project is to create a device that is capable of outputing VGA signals to a CRT monitor inorder to display figures, text and characters.
Timing is a core essential in this project. If the signal is off by even 1 microsecond, the signal synchronization with the CRT display will be lost and forced to resync.
This will be done using a Microchip PIC microcontroller at 4 MHz clock speed. The programming required to achieve the VGA timing signals must be done in low level assembly because of the high level of precision that is necessary. The hardware assembly is just basic buttons, switches & wire that you can purchase from local electronics stores.
PIC 18F452 Microcontroller
Female DB-15 VGA Connector
4 MHz Oscillator
30 pin SIP
Knob for the switch
540 point Breadboard
4x 10KΩ Resistors
Wire 22 AWG
Wire 30 AWG (aka Wirewrap; multiple colors is better)
8 small nails
5 minute E-poxy
Fancy Door Hinge
MPLAB IDE (installed on Laptop)
Parts List Details
You may or may not be familiar with the parts above so a picture of each item has been included to clear up any possible questions. The only truely necessary parts for this project are the electrical parts, a wire wrap tool, computer & MPLAB IDE installed. Making the wooden enclosure is not necessary however it often looks nice to have the electronics hidden and just the electric input/output components (buttons, vga port, switches, etc..) exposed.
Luckily the schematic for this project is plain & simple. There are actually very few electronic components necessary for this project as the PIC Microcontroller is the powerhouse doing most the work. The few components necessary like, buttons, switches & power circuit are trivial forms of I/O which makes understanding how the project works even easier.
Buttons & Pull-up Resistors
The SPST buttons are tied to ground so when the button is pushed the I/O pin it is attached to is effectively tied to ground. To avoid having a short circuit when the button is pushed, 4.7KΩ or 10KΩ pull-up resistors are used.
The SPTT Switch is a non-standard 3 way switch. It can be substituted with any other type of button(s) or switch(es) that will allow 1 input to go to one of 3 outputs. It is optional but you can just tie the wire directly from the PIC to one of the the CRT R/G/B inputs. It’s just a matter of which color will display, Red, Green or Blue.
MCLR*/Vpp – Pin 1 on the PIC
This is tied high (logic 1; +5v) once again using a pull-up resistor. Pin 1 is effectively a reset pin. The PIC will restart-Memory Clear-when this pin is low (logic 0, +0v). For this project I did not include a reset button so I just have the pin tied high always, so the PIC will always be running as long as it is powered.
For more Detail: The VGA Test Box using pic18f452 Microcontroller