AVR Programmer

A low cost AVR Programmer based on AVR910.

History
Somewhere back in time (i think it was 1997) Atmel started the family of AVR processors, small RISC based, easy to program and cheap.

The first evaluation board i used was the A96021000C (AT89/90 series flash micro controller kit). To be honest i bought it because the AT89S8252 was a 8051 core with ICP/ISP programming 🙂 , OK i bought it for programming the AVR processors 🙂 me laughs.

On the same year the Atmel released the famous AVR910 In System Programming based on a AT90S1200 (obsolete now) (original atmel pdf) (local copy)

Finally the vendor himself has released all the information you needed in order to create programming boards on the cheap.

The years has passed, and internet grew to a huge number of sites but we still cannot find a way to manage all the information we need in order to create something. Everybody has a different opinion, a new design and so on, this is something i don’t like, but on the other hand some times i do the same (take this page as an example). That’s why you are reading this instead of some links to different sites.

The information should be organized and I am trying to do it with the page that you are reading.

It is the same reason why the arduino succeeded which is based on AVR, more on that on a different page.

Standardization -> Hardware
What Atmel did from the beginning was to standardize the method of ISP that they will use on their family, and the famous ISP 10 pins was born.

ISP Connector 10 pin and 6 pin
ISP Connector 10 pin and 6 pin

On the new designs they suggest that you use the 6 pins version.

Standardization -> Software
Atmel has done it again with the release of the AVR Studio. One program to rule them all.
And all means all their boards, and all their processors.

On the other hand again for all the linux guys like me their is avrdude.

Schematics
The board is based on the work of Klaus Leidinger with a couple of changes.

Change list:

  • Redesigned using Altium Designer (not big deal).
  • Small PCB ready to be etch at home.
  • It has 2 ISP/ICP connectors, one is the standard 10 pin the other one  is the new 6 pins. (Important for me at least)
  • TTL to RS232 levels is being done using a Dallas/Maxim DS275 (Yes, it works without issues with laptops and USB2serial converters)

The schematic is self explanatory.

  • A small power supply arround  the 7805 in order to convert the input voltage to 5V.
  • 2 different connectors
  • Crystal with the capacitors
  • DB9 connector
  • Power/Program LED

AVR programmer schematic

PCB

The PCB dimensions are 7×5 cm. It is designed in a way to be etched at home. The are only 3 jumber wires, 2 on the top and one in the bottom.

Jumbering the 2 pin header enables programming for the programmer from a different programmer 🙂 (I am not 100% sure that this expressions exists in English, it is the best translation from the Greek language)

AVR Programmer PCB

Compoments Placement

AVR Programmer Photo

Software

You can use the programmer with avrdude. This is what exactly i am using. Have in mind that the baud rate is 115200 bps firmware. The firmware is from Clauss.

In order to make our life easier use this version of avrdude 5.11 Patch 7610
avrdude-5.11 with an updated avrdude.conf for this programmer.

In order to program your devices you could use the following standard ISP/ICP cable. I admit i forgot to add a ZIF socket my bad.

IDC Header 6 pin
IDC Header 6 pin
IDC Header 10 pin
IDC Header 10 pin

BILL OF MATERIALS

Designator Comment Quantity
C1 47μF/25V 1
C2 47μF/16V 1
C3, C4 22pF 2
D1 1N4001 1
DB9 DB9 FEMALE 1
ISP6 Header 3X2 1
ISP10 Header 5X2 1
J1 PWR2.5 1
LED DUAL COLOR LED 1
R1 10K 1
R2 680 1
REG1 LM7805 1
RESETBUTTON Small button
1
U1 ATTINY2313-20PC 1
U2 DS275 1
XTAL 7.3728MHz 1

Total cost around 10 Euros.

Programming the ATTINY2313

You need a ATTINY programmed for the programmer (chicken egg problem), if nobody can program the chip for you send me an email and we will find a solution 🙂

Correct fuses for avrdude (example command line):

avrdude -p attiny2313 -u -U lfuse:w:0xed:m

Operation

  • Power up the board. The LED should go from RED to Green.  If not remove the power and start troubleshooting
  • Connect the DB9 with a straight cable to your PC comm port and check with avrdude that it can speak to the board. The command line is: avrdude -c avr910 -P com1 -b 115200 (replace com1 with the correct com port)

Complete ZIP file with the above

Plans for Version 2:

  • Make it USB ready
  • Powered from the USB
  • Add a 20 pin ZIF socket

References:

ATMEL original version

Last update: Apr 2012

15 Comments on “AVR Programmer

  1. Hi Billy,

    I’m glad I cme upon your site/blog. I’ve tried a few other AVR ISP progammers and I’ve had mixed reuslts….I’m going to give yours a try seeing as how I still have a serial port on my Ubuntu box. Keep up the good work!

    Regards,
    Kevin

  2. OLA soy nuevo en esto me dieron una AVR A96021000C peero no se como programarla ni como conectarla ayuda solo por curiosidad ya que yo uso el spartan 6 con verilog…

    • Hola, i don’t speak Spanish so with the help of Google translate: For the A96021000C you will need a small windows program called AVRprog.exe in order to program your ICs

  3. Φίλε μου έχω ένα “θεματάκι”. Έχω ένα AT89S8252 το οποίο θέλω να αντιγράψω και να προγραμματίσω ένα άλλο. Έχω ένα AVR ISP MKII και το Atmel studio 6.2 αλλά το συγκεκριμένο δεν το υποστηρίζει. Μπορείς να μου πεις τι στην ευχή να κάνω;

  4. Το AVR ISP MKII δεν υποστηρίζει δυστυχώς AT89S8252. Το καλύτερο που μπορείς να κάνεις εαν δεν μπορείς να φτιάξεις αυτόν τον προγραμματιστή είναι να αγόρασεις ένα USBasp απο το ebay

  5. Η κατασκευή είναι απλούστατη. Θα έχω θέμα με τον ΑΤΤΙΝΥ, αλλά όπως είπες κι εσύ, κάτι θα γίνει. Το θέμα είναι… ο προγραμματιστής αυτός δουλεύει με το atmel studio 6? Διότι από Linux, είμαι παντελώς άσχετος.

  6. Μπορείς να χρησιμοποιήσεις και windows. Τα avrdude που έχω ανεβάσει δουλεύει σε windows.

    Για το AVR studio δές εαν υπάρχει ακόμα η επιλογή για AVR910 programmer και baud rate 115200

    • hi,

      Leonardo has an ICSP connected to the ATmega32u4, so i assume that you can connect the pocket avr and burn the bootloader

  7. Hi,

    I tried to use your fuse code following the steps of this tutorial: https://create.arduino.cc/projecthub/Vishalsoniindia/arduino-as-isp-burn-hex-file-in-avr-fuse-in-avr-2b37d1
    The difference is that in the fuse bits, I used your fuse bits code adapted to this tutorial.
    The code got: avrdude -c arduino -b 19200 -p t2313 -P COM5 -U lfuse:w:0xED:m
    But when I try to compile the hex file, appears error message and I can’t set right this error.

    Do you know what may have happened

Leave a Reply to billy Cancel reply

Your email address will not be published. Required fields are marked *

*