1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-12-27 14:09:53 +02:00
ben-blinkenlights/ubb-vga/web/index.html

77 lines
2.7 KiB
HTML

<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>
The video signal timing is controlled mostly by software. Available
resolutions include 640x480 and 800x600.
At present, the maximum resolution is 1024x768 with a refresh rate of 50 Hz:
<P>
<A href="ubb-vga-pub-1024-medium.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 three color channels.
<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 streams 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-medium.jpg"><IMG src="ubb-vga-pub-plugged-small.jpg"></A>
&nbsp;
<A href="ubb-vga-pub-v2-medium.jpg"><IMG src="ubb-vga-pub-v2-small.jpg"></A>
<P>
The circuit is very simple. In its most basic form, it consists of UBB,
ten resistors, and the VGA cable:
<P>
<A href="ubb-vga-schem.png"><IMG src="ubb-vga-schem-small.png"></A>
<P>
Each of the three analog color channels uses three resistors for lowering
the 3.3 V logic voltage to the 0.7 V analog VGA level and for mixing in the
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>.
<H2>Mailing list, IRC</H2>
Development discussions and such happen on the
<A href="http://lists.en.qi-hardware.com/mailman/listinfo/discussion">
qi-hardware mailing list</A> and on the
<A href="http://webchat.freenode.net/?randomnick=1&channels=qi-hardware">#qi-hardware
channel</A> on
<A href="http://freenode.net/">freenode</A>.
</BODY>
</HTML>