Mcu 0088-AVR-programmer

From wikipost
Jump to navigation Jump to search

The finished result of this project is to create an AVR-compatible In-Circuit Serial Programmer using an ATtiny85 as the controller. The board will interface using the open-source USB protocol and is able to program a range of AVR compatible microcontrollers with it. The cost is around $16 for which you can easily purchase a fully assembled and tested device, but I just found it so neat to be able to create my own programmer.

The schematic, code and drivers listed on this page are mostly all works of others so I will not take credit for that. I merely have this page here to show you how it's done and what the end result looks like.

  • source code
  • binary (.HEX)

Firmware version 1.3 File:Littlewire

Firmware version 1.1

  • program the programmer

I used a pololu programmer to program this project onto a new ATtiny85 microcontroller.

These are the commands to flash the hex file into the chip:

(I copied the contents of a little batch file)

set PROJECT=littlewire_v13
set PORT=\\.\USBSER000
set GCC_DEVICE=attiny85
set PGM_DEVICE=t85
set PGM_PROTO=avrispv2

echo erase chip
avrdude -c %PGM_PROTO% -P %PORT% -p %PGM_DEVICE% -e

echo write program to chip
avrdude -c %PGM_PROTO% -P %PORT% -p  %PGM_DEVICE% -U flash:w:%PROJECT%.hex -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m

  • Final result

  • usage instructions

Before I created my own programmer I was using the (also very simple) programmer from Pololu. In order to program avr's with this programmer I used the following avrdude command line:

Pololu programmer avrdude command to program an ATtiny85

set PORT=\\.\USBSER000
set PGM_PROTO=avrispv2
avrdude -F -c %PGM_PROTO% -P %PORT% -p t85 -U flash:w:myproject.hex -D

With the new programmer I have to change things slightly, just tell avrdude we're using a different programmer:

set PORT=\\.\USBSER000
set PGM_PROTO=usbtiny
avrdude -F -c %PGM_PROTO% -P %PORT% -p t85 -U flash:w:myproject.hex -D

  • drivers for windows


NOTE: the drivers for Linux are already supported in recent Linux kernels.

  • source design from LittleWire