a bevy of boards
werner at openmoko.org
Sat Feb 5 22:58:43 EST 2011
One of the items needed for making the AVR-based atusb board is an
in-circuit programmer to load the firmware (or at least a boot
loader) into the microcontroller's flash.
Since we have the Ben as a common and DIY-friendly platform, my
idea was to use it as the basis of the programmer circuit. I had
used it in such a role already for the SiLabs C8051F326, with this
The F326 is easy to program and I have written my own programmer
for it. The AVRs have a fairly byzantine memory structure and are
not very forgiving when certain errors are made. Luckily, there
are several Open Source programmers for them. One of them is
avrdude, which I've used before.
I didn't want a long chain of untested elements for adapting
avrdude, so I decided not to try things directly with the new
atusb design (which is relatively complex and needs an adapter to
attach to the Ben), but to make a simpler board that would have a
very straightforward path from Ben to AVR.
This also gave me the opportunity to pick up an old idea David
"Tuxbrain" Samblas brought up some months ago, namely to make an
8:10 card that implements a UART, e.g., to talk to an Arduino.
The result is here:
and looks like this:
With this board, I developed a bit-banging NanoNote driver for
Note that the UART function isn't implemented yet. All I did was
make a LED blink, which tells me enough about the success of the
programming operation. The rest (including picking a better name)
can follow later.
For programming atusb, I need an adapter cable similar to the one
I made for the C8051F326. Instead of having application-specific
boards at both ends, I decided this time to make a generic 8:10
board that plugs into the Ben and make only the board that
attaches to atusb application-specific.
Since the 8:10 card exports all the available signal and could be
used for all sorts of projects, I called it the "Universal
Breakout Board" (UBB). Here is where it lives:
and this is what it looks like:
The programming adapter for atusb looked at one point in time
But it has already changed and I'm still not yet done with
tinkering with it.
More information about the discussion