1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-11-27 17:05:20 +02:00

ubb-vga/web/: generate a Web page describing UBB-VGA (im progress)

This commit is contained in:
Werner Almesberger 2011-05-07 04:46:43 -03:00
parent ba1d297643
commit 64e74ab63c
2 changed files with 118 additions and 0 deletions

52
ubb-vga/web/Makefile Normal file
View File

@ -0,0 +1,52 @@
SCHHIST=../../../eda-tools/schhist
SCHPS2PPM=$(SCHHIST)/schps2ppm
NORMALIZESCHPS=$(SCHHIST)/normalizeschps
SRC=http://downloads.qi-hardware.com/people/werner/ubb/vga
DL=ubb-vga-pub-1024.jpg ubb-vga-pub-plugged.jpg ubb-vga-pub-v2.jpg
GEN= ubb-vga-pub-1024-small.jpg ubb-vga-pub-plugged-small.jpg \
ubb-vga-pub-v2-small.jpg \
ubb-vga-schem.png ubb-vga-schem-small.png
.PHONY: upload gen clean spotless
upload: $(DL) $(GEN)
rsync -e ssh index.html $(DL) $(GEN) \
www-data@downloads.qi-hardware.com:werner/ubb/vga/web/
gen: $(GEN)
ubb-vga-schem.png: ../ubb-vga.ps
$(NORMALIZESCHPS) -w 120 $< | \
$(SCHPS2PPM) | \
pnmcrop | convert ppm:- $@ || { rm -f $@; }
ubb-vga-pub-1024.jpg:
wget $(SRC)/$@
ubb-vga-pub-v2.jpg:
wget $(SRC)/$@
ubb-vga-pub-plugged.jpg:
wget $(SRC)/$@
ubb-vga-pub-1024-small.jpg: ubb-vga-pub-1024.jpg
convert $< -scale x240 $@
ubb-vga-pub-v2-small.jpg: ubb-vga-pub-v2.jpg
convert $< -scale x240 $@
ubb-vga-pub-plugged-small.jpg: ubb-vga-pub-plugged.jpg
convert $< -scale x240 $@
ubb-vga-schem-small.png: ubb-vga-schem.png
convert $< -scale '40%' $@
clean:
rm -f $(GEN)
spotless: clean
rm -f $(DL)

66
ubb-vga/web/index.html Normal file
View File

@ -0,0 +1,66 @@
<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>
At present, the maximum resolution is 1024x768 with a refresh rate of 50 Hz:
<BR>
<A href="ubb-vga-pub-1024.jpg"><IMG src="ubb-vga-pub-1024-small.jpg"></A>
<BR>
Other resolutions possible include 640x480 and 800x600.
<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>
&nbsp;
<A href="ubb-vga-pub-v2.jpg"><IMG src="ubb-vga-pub-v2-small.jpg"></A>
<P>
The circuit is very simple. It consists of UBB itself, ten resistors,
and the VGA cable:
<BR>
<A href="ubb-vga-schem.png"><IMG src="ubb-vga-schem-small.png"></A>
<BR>
Each of the three analog color channels uses three resistors for lowering
the 3.3 V logical voltage to the 0.7 V 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>.
</BODY>
</HTML>