X-A4U-stick rev1
31 December 2014
Delving into the world of designing PCBs and SMT soldering, I've made an USB stick with atxmega128a4u, microSD socket and a couple more goodies.
To my amazement, it actually works!
I'm working on revision2, which would come with a RESET and another button, RGB LED and microSD socket (no EEPROM).
Downloads/resources
- EAGLE files are in my public eagle repo.
- Test firmwares
Features
- ATxmega128A4U: actually any -A4U xmega would work.
- MicroSD socket (pads match the one from Sparkfun).
- SOIC-8-NARROW landing wired as I2C, with onboard pull-up resistors. I had in mind one of the ATMEL's crypto chips, but it would also work for e.g. EEPROMs (address select pins would have to be done by solder bridges though). I have an ATAES132 on board.
- One pushbutton.
- Two LEDs.
- A reasonable (?) amount of xmega's pins routed out to through-hole pads with standard spacing - so potentially usable on a breadboard, or with a homemade "shields" from a piece of protoboard.
- Bootloaded with DFU bootloader, entered by pressing the button on powering up.
Soldering notes
I soldered it at home without any special tools (liquid flux is really magic). Some capacitors (and the ferrite bead) are 0805, the rest are 1206, so not too much trouble soldering. The only gripe is that I used Sparkfun's 0805 pads, which are a bit smaller than generally "recommended" for 0805, so it is a bit fiddly to solder those.
Usage notes
These are some technical points which are good to know before programming/using:
- The
SDA
andSCL
pins that the EEPROM is routed to arePC0
andPC1
, and these have onboard pull-up resistors attached. So good for I2C, but probably not much useful for general use. - The microSD SPI interface is also routed to
PORTC
, with the exception of the chip select pin. This means that/SS
pin fromPORTC
can be used for any external SPI chip, and also that the xmega can act as SPI slave. One warning though: when using the hardware SPI (e.g. for microSD), the/SS
pin onPORTC
(namelyPC4
) should not be an input andLOW
- this hangs the usual SPI code. So, even thoughPC4
is not used for talking to microSD, it needs to be an output, or tiedHIGH
.