so i went ahead and built this:
http://yusoft.kulichki.com/english/pic/my_proj.htm
a VGA 640x480 pattern pattern generator based on a PIC program.
but it didn't work until i added a 555 timer to adjust the pulse-width of the Hsync.
i decided to adapt the programming to SVGA 800x600 @ 60Hz output.
my reasoning was that a 20MHz clock would yield exactly 100 instructions per visible horizontal line, 5 instructions for the horizontal front-porch, 16 instructions for the Hsync pulse, and 11 instructions for the back porch...26.4μs.
the nice part is that 628 of these lines (the number of lines in the SVGA standard) gets you pretty darn close to the needed 60Hz refresh rate : )
so this works just fine. + there was plenty of room to add outputs for blanking signals.
i don't know all that much about computer monitors, but my circuit works just fine at 17, 18, and 19MHz... at least on the monitors i tested. leads me to think that it's more the ratio between H and V sync pulse timing than exact values of one or the other which the monitor needs.
i tried to adapt the program for use at 1024x768 @ 60Hz but ran into some problems, i guess because of the H, V sync ratio:
skewed image at the top. oh well.
http://yusoft.kulichki.com/english/pic/my_proj.htm
a VGA 640x480 pattern pattern generator based on a PIC program.
but it didn't work until i added a 555 timer to adjust the pulse-width of the Hsync.
i decided to adapt the programming to SVGA 800x600 @ 60Hz output.
my reasoning was that a 20MHz clock would yield exactly 100 instructions per visible horizontal line, 5 instructions for the horizontal front-porch, 16 instructions for the Hsync pulse, and 11 instructions for the back porch...26.4μs.
the nice part is that 628 of these lines (the number of lines in the SVGA standard) gets you pretty darn close to the needed 60Hz refresh rate : )
so this works just fine. + there was plenty of room to add outputs for blanking signals.
i don't know all that much about computer monitors, but my circuit works just fine at 17, 18, and 19MHz... at least on the monitors i tested. leads me to think that it's more the ratio between H and V sync pulse timing than exact values of one or the other which the monitor needs.
i tried to adapt the program for use at 1024x768 @ 60Hz but ran into some problems, i guess because of the H, V sync ratio:
skewed image at the top. oh well.