1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-10-01 09:59:48 +03:00
ben-blinkenlights/ubb-vga
Werner Almesberger dab839ab66 ubb-vga.c: moved line length and timing to variables
- ubb-vga.c (line_pairs, line, frame, tricolor, grid, session): line
  length is now kept in a variable, instead of hard-coding its value
  and the values derived from it
- ubb-vga.c (line_cycles, line, hdelay): the total line duration is now
  kept in a variable, instead of hard-coding it all over the place
2011-04-24 20:01:12 -03:00
..
Makefile renamed "video" to ubb-vga 2011-04-24 02:56:56 -03:00
README ubb-vga/README: added title and compatibility list 2011-04-24 12:02:48 -03:00
ubb-vga.c ubb-vga.c: moved line length and timing to variables 2011-04-24 20:01:12 -03:00
ubb-vga.pro renamed "video" to ubb-vga 2011-04-24 02:56:56 -03:00
ubb-vga.sch renamed "video" to ubb-vga 2011-04-24 02:56:56 -03:00

UBB-VGA - VGA-like output via UBB
=================================

Sources
-------

Timing and the idea for the voltage divider is from:
http://faculty.lasierra.edu/~ehwang/public/mypublications/VGA Monitor Controller.pdf

More timing parameters:
http://tinyvga.com/vga-timing/640x480@60Hz


Signal	8:10	VGA
-------	-------	---
R	DAT2	1
VSYNC	DAT3	14
HSYNC	CMD	13
G	DAT0	2
B	DAT1	3
GND	GND	5

http://en.wikipedia.org/wiki/VGA_connector


Timing
------

Since the Ingenic CPUs take about 8.5 PCLK cycles for a GPIO set or clear,
and we can only set or clear a set of signals in GPIO operation, but not
set some and clear others, we cannot have a real 320 horizontal pixels.

Instead, set and clear operations alternate. This means that the best-case
resolution is equivalent to 320 pixels (if the original pixel boundaries
coincide with the set/clear phases), but it can be as low as 160 pixels if
the boundaries don't match.

Furthermore, timing is still a bit too tight. We therefore use a pixel
clock that's about 10% slower than the original. Luckily, most monitors
don't mind.


Compatibility
-------------

ubb-vga has been tested with the following monitors:

Display			Size		Quality
-----------------------	---------------	----------------------------------
Xenon XEN-1510T		15", 1024x768	good
Samsung 206NW		20", 1680x1050	poor (horizontal instability)
LG W2243C		22", 1920x1080	acceptable (slight instability)
LG W2243L		22", 1920x1080	acceptable (slight instability)