2011-05-07 10:46:43 +03:00
|
|
|
<HTML>
|
|
|
|
<TITLE>
|
|
|
|
UBB-VGA
|
|
|
|
</TITLE>
|
|
|
|
<BODY>
|
|
|
|
|
|
|
|
<H1>UBB-VGA</H1>
|
|
|
|
|
|
|
|
This is an effort led by Werner Almesberger to use the
|
|
|
|
<A href="http://en.qi-hardware.com/wiki/UBB">UBB</A>
|
|
|
|
(Universal Breakout Board), a few resistors, and a VGA cable to create a
|
|
|
|
workable VGA signal on the
|
|
|
|
<A href="http://en.qi-hardware.com/wiki/Ben_NanoNote">Ben Nanonote</A>.
|
|
|
|
|
|
|
|
|
|
|
|
<H2>What it can do</H2>
|
|
|
|
|
2011-05-07 11:11:58 +03:00
|
|
|
The video signal timing is controlled by software. Available resolutions
|
|
|
|
include 640x480 and 800x600.
|
2011-05-07 10:46:43 +03:00
|
|
|
At present, the maximum resolution is 1024x768 with a refresh rate of 50 Hz:
|
2011-05-07 11:17:22 +03:00
|
|
|
<P>
|
2011-05-07 10:46:43 +03:00
|
|
|
<A href="ubb-vga-pub-1024.jpg"><IMG src="ubb-vga-pub-1024-small.jpg"></A>
|
|
|
|
<P>
|
|
|
|
The 16 colors are generated from a binary channel for red, green, and blue
|
|
|
|
each, plus a binary luminance channel that affects all colors.
|
|
|
|
|
|
|
|
|
|
|
|
<H2>The hardware</H2>
|
|
|
|
|
|
|
|
The current design is based on the
|
|
|
|
<A href="http://en.qi-hardware.com/wiki/UBB">Universal Breakout Board</A> (UBB)
|
|
|
|
that plugs into the Ben's
|
|
|
|
<A href="http://lists.en.qi-hardware.com/pipermail/discussion/2011-January/006908.html">8:10 card</A>
|
|
|
|
slot. The MMC controller in the Ben's Jz4720 CPU is tricked into
|
|
|
|
considering the UBB-VGA board as a MMC/SD device and streaming the pixel
|
|
|
|
data at a rate of up to 56 MHz.
|
|
|
|
<P>
|
|
|
|
The pictures below show a prototype that connects directly to a VGA cable:
|
|
|
|
</P>
|
|
|
|
<A href="ubb-vga-pub-plugged.jpg"><IMG src="ubb-vga-pub-plugged-small.jpg"></A>
|
|
|
|
|
|
|
|
<A href="ubb-vga-pub-v2.jpg"><IMG src="ubb-vga-pub-v2-small.jpg"></A>
|
|
|
|
<P>
|
2011-05-07 11:17:22 +03:00
|
|
|
The circuit is very simple. In its most basic form, it consists of UBB,
|
2011-05-07 11:11:58 +03:00
|
|
|
ten resistors, and the VGA cable:
|
2011-05-07 11:17:22 +03:00
|
|
|
<P>
|
2011-05-07 10:46:43 +03:00
|
|
|
<A href="ubb-vga-schem.png"><IMG src="ubb-vga-schem-small.png"></A>
|
2011-05-07 11:17:22 +03:00
|
|
|
<P>
|
2011-05-07 10:46:43 +03:00
|
|
|
Each of the three analog color channels uses three resistors for lowering
|
2011-05-07 11:11:58 +03:00
|
|
|
the 3.3 V logic voltage to the 0.7 V analog VGA level and for mixing in the
|
2011-05-07 10:46:43 +03:00
|
|
|
luminance (Y) signal. The tenth resistor pulls down the HSYNC/CMD
|
|
|
|
line, to fake the "not busy" signal the MMC controller expects to receive
|
|
|
|
from a MMC device when starting a block write.
|
|
|
|
|
|
|
|
|
|
|
|
<H2>The software</H2>
|
|
|
|
|
|
|
|
The driver currently runs in user space (with a lot of dirty tricks) and
|
|
|
|
blocks all other system activity while running.
|
|
|
|
It can display the test image shown above, the content of the LCD display,
|
|
|
|
or a PNM image.
|
|
|
|
The source code can be found
|
|
|
|
<A href="http://projects.qi-hardware.com/index.php/p/ben-blinkenlights/source/tree/master/ubb-vga">here</A>.
|
|
|
|
|
|
|
|
</BODY>
|
|
|
|
</HTML>
|