Menu Content/Inhalt
Home arrow Tutorials arrow Programming an Atmel AVR
Programming an Atmel AVR

The following tutorial introduces programming of your AVR microcontroller using In System Programming (ISP). This programming technique allows you to program the eeprom and flash memories of your chip while in circuit. This removes the requirement of placing your chip in a dedicated programmer every time for programming.

You will need an ISP compatible programmer. These come in both parallel and serial versions and can be bought from atmel and many other people.  Here are some places were you can buy a ISP for Atmel microcontrollers:


In this tutorial, we're going to use an ATMega8 on a breadboard.


  • ATMega8
  • 7805 Voltage Regulator
  • 2 x 10uF Electrolytic Capacitors
  • 4.7k ohm or similar resistor
Connect the reset pin (pin 1) to 5V through your resistor. Connect power and ground from your power source to the 5V regulator. This regulator generates a contant voltage even if the current draw varies (within limits). We suggest your wire 5V along your top rail and GND along your bottom rail. This makes it easier to get power to all your devices on your breadboard. Wire VCC (pin 7) to 5V and GND (pins 8 and 22) to GND.

-- Require image of breadboard --

Cut 6 short lengths (approx 100mm) of coloured hookup wire. Each of these represents one of the following control signals necessary to program the mega8.

  • MOSI
  • MISO
  • SCK
  • +5V
  • GND

Simply strip about 5mm of insulation off each wire and connect the respective pins of the Mega8 and the programmer.

You have now finished setting up the hardware reqired to run your ATmega8. It's as simple as that.

Some links to the software you can use for programming:
PongProg is starting to get a little old and does not support all the new microcontrollers that Atmel has brought out. For programming new microcontroller I suggest using AVRDUDE, it is a command line program which means it can be controlled from your make file. It comes installed with WinAVR, read our AvrDude Tutorial for more information.