1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-09-30 00:46:21 +03:00
ben-blinkenlights/ubb-vga
Werner Almesberger 77adf43551 ubb-vga/README: moved old content away and added new compatibility test results
- README.old: moved old content here
- README: updated and extended compatibility chart
2011-05-02 20:06:46 -03:00
..
ccube.c ubb-vga2: replaced threshold-based color mapping with color cube model 2011-04-28 01:18:03 -03:00
grabfb.c ubb-vga2: non-contiguous allocation of frame buffer memory 2011-04-29 13:04:02 -03:00
Makefile renamed ubb-vga.c to ubb-vga-old.c, ubb-vga2.c to ubb-vga.c; updated Makefile 2011-04-29 14:03:07 -03:00
mapping.fig renamed ubb-vga/res.fig to mapping.fig 2011-04-24 23:56:29 -03:00
physmem.c physmem.c: improved correctness and efficiency of alignment 2011-05-02 04:43:18 -03:00
ppm.c ubb-vga2: added support for showing a PPM image 2011-04-28 00:38:13 -03:00
ppm.h ubb-vga2: added support for showing a PPM image 2011-04-28 00:38:13 -03:00
ppmimg.c ubb-vga2: non-contiguous allocation of frame buffer memory 2011-04-29 13:04:02 -03:00
README ubb-vga/README: moved old content away and added new compatibility test results 2011-05-02 20:06:46 -03:00
README.old ubb-vga/README: moved old content away and added new compatibility test results 2011-05-02 20:06:46 -03:00
regs4740.h ubb-vga: use a free-running counter instead of resetting it for each line 2011-05-02 06:11:29 -03:00
tstimg.c tstimg.c (tstimg): adjust size and position of parameters according to yres 2011-05-01 23:19:57 -03:00
ubb-vga-old.c renamed ubb-vga.c to ubb-vga-old.c, ubb-vga2.c to ubb-vga.c; updated Makefile 2011-04-29 14:03:07 -03:00
ubb-vga.c ubb-vga: housekeeping 2011-05-02 07:10:52 -03:00
ubb-vga.h ubb-vga: test image now shows detailed horizontal and vertical timing 2011-05-01 21:50:20 -03:00
ubb-vga.pro ubb-vga.pro: commit pcbnew preferences (from local layout experiments) 2011-04-28 02:10:58 -03:00
ubb-vga.sch ubb-vga.sch: fixed typo in comment 2011-04-28 16:45:29 -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

For the signal assignment, see ubb-vga.sch
Also available as a PDF:
http://projects.qi-hardware.com/schhist/ubb-vga/pdf_ubb-vga.pdf
http://en.wikipedia.org/wiki/VGA_connector


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

Tested with the timing of commit 36861539431445b80e64f03218f352752338de52
Timings will change in the future and may get better or worse. The
purpose of this compatibility chart is to indicate what kind of results
one can expect with different types of monitors.


Display			Monitor size	Age (estimated)
-----------------------	---------------	---------------
Xenon XEN-1510T		15", 1024x768	~9 years
Samsung 206NW		20", 1680x1050	~4 years
LG W2243C		22", 1920x1080	~1 year
LG W2243L		22", 1920x1080	a few months

Mode		Monitor		Image   Hor. noise	Cleanliness
				  Stable Pixel FIFO
---------------	---------------	--------------------------------------------
640x480		XEN-1510T	y y	1     20, 25%	very distorted
		206NW		y y	2-3   20, 20%	very distorted
		W2243C		y y	2-3   20, 25%	very distorted
		W2243L		y y	2-3   20, 20%	very distorted
640x480/58	XEN-1510T	y y	1     large	very distorted
		206NW		y y	2-3   large	distorted
		W2243C		y y	2-4   large	very distorted
		W2243L		y y	2-3   large	very distorted
640x480/70	XEN-1510T	y (2)	1     10, 25%	distorted, flickery
		206NW		y (2)	3-8   -		very jittery
		W2243C		n -	"out of range"
		W2243L		n -	"out of range"
800x600/54	XEN-1510T	n -
		206NW		y n	(only flashes)
		W2243C		n -	(screen stays dark)
		W2243L		n -	(screen stays dark)
800x600/56	XEN-1510T	y (3)	1-2   -		good
		206NW		y (1)	1-3   -		jittery
		W2243C		y y	3-4   20, 50%	unusable
		W2243L		y  y	304   -		very jittery with waves
800x600/72	XEN-1510T	y y	1-3   -		good, slight flicker
		206NW		y y	2-6   -		jittery with bounces
		W2243C		n -	(DMA lockup)
		W2243L		(not tried)
1024x768	XEN-1510T	y y	1-2		good
		206NW		(not tried)
		W2243C		n -	"out of range"
		W2243L		n -	"out of range"
1024x768/53	XEN-1510T	n -	(screen stays dark)
		206NW		n -	(screen stays dark)
		W2243C		n -	(screen stays dark)
		W2243L		n -	(screen stays dark)
1024x768/50	XEN-1510T	y y	1-2   -		good
		206NW		y y	2-4   -		jittery
		W2243C		y y	3-5   -		moves a lot
		W2243L		y y	3-5   -		moves a lot

Results:

  Image 	does it show an image, yes/no ?
  Stable	is the image shown all the time or does the monitor
		"catch" it only sometimes ?
  Hor. noise	horizontal jitter/vibration; distance in pixels
    Pixel	small pixel deviation, looking like analog noise
    FIFO	shift of a line or part of it by a large number of pixels

For qualitative assessment, "jittery" means that the image is visible
unstable but doesn't look too bad from a distance. "Bounces"/"waves"
are deviations that appear in groups. "distorted" means that artefacts
are visible. "good" means that the image has only small pixel jitter.

Merely "jittery", "bounces", or "distorted" mean that the test image
and the parameters it shows can be recognized. More severe problems
mean that the test image looks clearly troubled. "Unusable" means
that the screen content cannot be recognized.

(1) Auto-sync places the image way too high. Can be corrected manually.
(2) Image it stable but monitor shows a complaint (occasionally)
(3) Auto-sync places the image too far to the left. Can be corrected
    manually.

To do
-----

- use timer half interrupt and WAIT to synchronize (less bus traffic and
  hopefully better granularity)
- recover from DMA lockup
- use color cube map (5x5x5 bits)
- read/write raw frame buffer
- consider prefetching first word of each line, to make DRAM controller
  open the row and reduce DMA startup latency
- add option to not disable the LCD (works with some modes if reducing
  the LCD controller's burst size)
- find out why 640x480 has so much FIFO noise
- fix modes 800x600/54 and 800x600/72, broken by the timer change