Overview

Author Gravatar Image LADY ADA

AVR programmer & SPI interface

Introduction

This is documentation for a simple open-source USB AVR programmer and SPI interface. It is low cost, easy to make, works great with avrdude, is AVRStudio-compatible and tested under Windows, Linux and MacOS X. Perfect for students and beginners, or as a backup programmer.

The project is based off of the USBtiny code & design. The main improvements are: adjusting the code to allow it to act as a SpokePOV interface, adding lowlevel bitbang commands, and addition of a "USB good" LED. Other changes are new VID/PID (to make it official), removing some of the commands, and moving around the pins a bit.

You can build this design using the schematic and firmware, or buy a kit from the Adafruit webshop. Having a full kit available solves the "chicken & egg" problem of purchasing or building a USB programmer that then needs a programmer of some sort to 'kick start'. (See USBasp, AVRdoper, USBprog)

All the firmware code is distributed under the GPL, the hardware design layout files are CC 2.5 Attrib./Share-alike.

What's so great about it?

Easy to make

  • Ultra low cost: programmer is $16 in parts, less than half the price of the AVRISP v2 ! (Kits are $22 and available from the adafruit shop.)
  • Kit comes with both 6-pin and 10-pin AVR-standard connectors and cables. Almost no programmers that are not from Atmel have both! (Including the AVRISP v2)
  • Easy to build: All through-hole parts, all common and available from large distributors.

Easy to use

  • AVRdude compatible - support for usbtiny added in v5.5!
  • USB drivers available for Windows using libusb, no drivers needed for Mac OS X or Linux.
  • Durable off-the-shelf enclosure
  • High speed! Max clock rate is 400KHz. Write speed:1Kb/s, read speed: 2Kb/s. (Atmega8 takes 8s to write, 4s to read/verify)
  • 2 LEDs to indicate "USB/Power good" and "Busy"
  • I/O is buffered to allow programming of 2V-6V targets (v2)
  • Works with any AVR ISP chip with 64K of flash (or less) - does not work with Atmega1281/1280/2561/2560

Easy to power

  • Powered off of 5V USB bus at less than 100mA to allow it to be used with unpowered USB hubs
  • Easily accessable jumper to power target project off of USB (target must be 5V tolerant, of course)
  • Remove the jumper and it will self-power but buffer the I/O to match the target device. (v2)

Easy to extend

  • Easily interfaced with libusb
  • Existing firmware allows for fast SPI interfacing using USB
  • Bit-bang commands provide 8 bits of I/O control (including LED) for open-ended project ideas
Last updated on 2014-04-18 at 09.50.40 PM Published on 2013-06-10 at 06.00.15 PM