- ubb-vga2.c (line): write the first word to the TX FIFO after starting
the command or it is lost
- ubb-vga2.c (line): fetch the first word while waiting for the back
porch, making sure we have plenty of time for cache effects
- ubb-vga2.c (line): we no longer need to prefetch the first word of
the next line
- ubb-vga.h (ccube_init, ccube_map), ccube.c: color mapper based on
proximity in color cube
- grabfb.c (pattern, grabfb), ppmimg.c (pattern, convert): use the color
cube mapper instead of inferios threshold-based mapping
- ubb-vga2.c (session): initialize the color cube
- ubb-vga.h (thres), grabfb.c (thres), ubb-vga2.c (usage, main): removed
the threshold along with the option (-l) to set it
- Makefile (OBJS): added ccube.o
- Makefile (OBJS): added ppm.o and ppmimg.o
- ppm.h (load_ppm), ppm.c: PPM file loader, adapted from
eda-tools/schhist/ppmdiff/ppmdiff.c
- ubb-vga.h (img_name, ppmimg), ppmimg.c: PPM image to frame buffer
converter
- ubb-vga2.c (usage, main): the threshold is now set with the option -l
- ubb-vga2.c (usage, main): if a second argument is given, treat it as
a PPM file
- ubb-vga2.c (usage): also documented option -t
- tstimg.c: test image generator
- Makefile (OBJS): added tstimg.o
- Makefile (LDFLAGS): tstimg.c needs libm
- ubb-vga2.c (session, main): pass image generator as a function pointer
- ubb-vga2.c (main): new option -t to select the test image generator
- ubb-vga2.c (session, grab): made the frame buffer "void *" and pass
frame buffer resolution
- ubb-vga.h: color encoding and items shared between compilation units
- ubb-vga2.c (thres, pattern, grab), grabfb.c: move to grabfb.c
- ubb-vga2.c (map): make global, for use by grabfb.c
- ubb-vga2.c (pick, pattern, tricolor, grid): removed obsolete test
image generators
- Makefile (OBJS, ubb-vga2): added grabfb.o
- Makefile (clean): remove only .o files
- Makefile (spotless): remove only executables
- ubb-vga2.c (frame, grab, session): keep all 480 lines in the frame
buffer instead of duplicating them on output
- ubb-vga2.c (bad): make "static"
- ubb-vga2.c (session, main): removed the "single" argument
- ubb-vga2.c (main): complain about timeouts only if any occurred
- ubb-vga.sch: use resistive divider instead of diodes
- ubb-vga.sch, ubb-vga.c (VSYNC): moved VSYNC from DAT3 to CLK to make
all MMC data lines available for pixel data
- ubb-vga.sch, ubb-vga.c (R): moved red from DAT2 to DAT3 for convenient
access to the 4th channel
- ubb-vga.sch: added luminance (Y) channel
- ubb-vga.sch: added pull-down to HSYNC/CMD, for later use with the MMC
controller
- ubb-vga.c (pdfuns, pdfunc, ben_setup, setup): make UBB signals GPIOs,
in case someone left them in a different configuration
- README: added compatibility of double mode
- ubb-vga.c (usage, main): new option -d to double the number of set/clear
pairs (making lines longer and the apparent pixel clock slower)
- ubb-vga.c (grab, session, main): have a complete set/clear pair for each
pixel in double mode
- 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
- ubb-vga.c: added more section titles
- ubb-vga.c (pick, pattern): grouped pixel-generating functions with
image generation
- ubb-vga.c (usage, main): properly parse command-line options ("getopt"
is a bit of overkill at the moment but will be needed later)
The history of the split prefetch code:
Once up on a time, I thought that it was important to stay very close
to the "official" pixel clock. We could do this when copying 32 bit
words from cache to the GPIO set/clear registers, but not when
shifting 8 bit values as we do now.
One problem with 32 bit values is that transferring that amount of
data exceeds the time available in the hsync pulse. Hence the idea
to split the prefetch between hsync pulse and horizontal front porch.
Note that we also split prefetches between the two VGA lines of each
QVGA line. This commit does not change that mechanism.
- ubb-vga.c (line, frame): removed code fragments for prefetch split
between hsync pulse and front porch
- ubb-vga.c (line, frame): remove code fragments for measuring time
relative to the rising edge of hsync (and letting the prefetch time
control the hsync length), not the falling edge
- nanonote-nxuart.patch (avrdude.conf): typo, CMD is signal 6, not 5 (by
David Reyes Samblas Martinez)
- series, nanonote-icsp.patch (avrdude.conf): NanoNote ICSP 8:10 cable,
by David Reyes Samblas Martinez
- series, low-addr.patch: record the lowest address touched (only for
ihex, all others default to 0)
- series, skip-low-addr.patch: skip untouched addresses in avr_read
and avr_write
- nanonote.c (nanonote_open): increased register window to include clock
and MMC controller registers
- nanonote.c (gpio_function): set a pin to function or GPIO
- nanonote.c (nanonote_initpgm, nanonote_parseextparams): accept the
extended option clk=N where N is the clock frequency in (whole) MHz
- nanonote.c (nanonote_enable): if the clock option is set, switch CLK
to function and output the specified clock
- patches/series, patches/nanonote-uart.patch: renamed to
patches/nanonote-nxuart.patch
- patches/nanonote-nxuart.patch: changed ID from "nanonote_uart" to
"nanonote_nxuart"
- patches/nanonote-nxuart.patch: added "External" to title/description
- README: removed unnecessary "make" run after second "configure"
- README: added brief explanation why we need to run "configure" twice
- README: added build instructions for OpenWRT
- nanonote.c: remove some commented-out items
- nanonote.c (nanonote_powerdown): make all data lines inputs on exit,
making it more likely that the target powers down
- ubb.brd: added project name, license, and "qi-hw.com"
- ubb.brd: duplicated text on front copper layer to silk screen
- ubb.brd: changed component references to more meaningful information,
in case they are printed on a PCB
- ubb.brd: removed unused layers
- ubb.brd: bumped version number to 110207
- Makefile: added commented-out "gerber" target, as a reminder
nanonote-uart.patch:
- avrdude.conf.in: CLK is reserved for clock output
nanonote.patch:
- nanonote.c (pin_map, nanonote_setpin, nanonote_getpin): make pin map
zero-based
- nanonote.c (nanonote_setpin): instead of having out own delay loop
setting the pin repeatedly, just add the delay we need to
pgm->ispdelay+100
- nanonote.c (nanonote_setpin): increase delay for atusb-pgm
- nanonote.c (nanonote_getpin, nanonote_open): begin with all pins set
to output and switch MISO only when read