Skip to main content

ATmega8 breadboard circuit – Part 2 of 3 – The Microcontroller

This tutorial continues on from ATmega8 Breadboard Circuit – Part 1 where we build a small power supply on the breadboard. In this part we will add the ATmega8 microcontroller and an interface to allow it to be programmed.

atmega8 circuit diagram

The first step is to orient yourself with the ATMEGA8 microcontroller. Since we are building our circuit on a breadboard, we’re using the PDIP variant (ATMEGA8A-PU). You could also build this circuit using an ATmega48, 88, 168 or 328 as these all share the same pin layout but have slightly different features, clock speeds and memory.

When you look at the microcontroller you will see a few makings which help identify the pin numbers. At one end there is a semicircle/half moon section. This denotes the top of the IC (Integrated Circuit). In a PDIP/DIP package the pins are numbered from 1 in an anticlockwise fashion from this marker. Additionally, on the ATmega8 there is a small circle identifying pin 1.

atmega8 IC in PDIP package
atmega8 pinout

When you look at the pin-out, you will notice that many of the pins are marked as I/O ports. e.g. Pin 28 has the label “PC5”, which means “Port C pin 5”. The I/O ports also have secondary functions which are noted in parenthesis. e.g. pin 28 has secondary functions of ADC5 (ADC Input Channel 5) and SCL (Two-wire Serial Bus Clock Line). In some cases (e.g. reset on pin 1), the secondary function is much more commonly used than the primary function.

Now it’s time to insert the microcontroller onto the breadboard. You will need to bend the pins inwards slightly. One method is to insert one side of the IC in shallowly then bend the pins on the other side so that they fit into the tie points on that side. You can then gently push/wiggle the IC in.

atmega8 on breadboard

Now we will supply power to the IC. The ATmega8 has 2 ground pins (8 & 22), a VCC pin (7) for positive power supply and an analog VCC pin (20) to provide power to the AD converter. The figure below shows these connected up.

atmega8 with GND, VCC and AVCC connected

For normal operation, pin 1 (PD0/Reset) needs to be kept high. When this pin is temporarily grounded, the system resets/reboots. This is indicated in the pinout diagram by the horizontal line above “RESET”. This notation is quite common and means the function is activated when the pin is grounded.

We will build a circuit consisting or a 10k; resistor and a push button switch. The resistor “pulls up” the pin so that it is high for normal operation, whilst the pushbutton switch temporarily grounds the pin for the reset operation. If the resistor wasn’t there (i.e. replaced by a 0 ohm piece of wire), then pressing the pushbutton would divert all power to ground, which would mean no power for VCC/AVCC and blowing up the power supply.

atmega8 power supply circuit

The switch we are using is a micro tactile switch. These switches have 2 pairs of pins, with the pins in each pair connected to each other. This is shown in the diagrams below.

micro tactile switch
micro tactile switch

You will find it useful to straighten the pins on the micro tactile switch prior to inserting it onto the breadboard. Now we just need to build the circuit onto the board.

micro tactile switch with pins straightened
micro tactile switch in breadboard

The last stage is to build the ISP (In System Programming) Interface. This allows for the firmware to be written to the microcontroller using a programmer, such as the USBASP AVR Programmer.

atmega8 programming circuit

The ISP interface will be via a 10 pin IDC connector (shrouded/box header), which causes a problem for us. These connectors do not fit onto a breadboard because the rows are 0.1” (2.54mm) apart. We need the rows to be 0.3” (7.62mm) in order for them to fit on either side of the breadboard center channel. There are many solutions to this problem. We will be bending the pins on a IDC connector with Right angle leads. This may not look pretty, but it works.

10 pin IDC connector with straightened pins

Lastly we insert the IDC connector then wire it up to 5V supply, ground and the microcontroller. Care must be taken when inserting the IDC connector, as the pins are a bit thicker that the wires you would normally insert into a breadboard.

atmega8 finished circuit on breadboard

In ATmega8 breadboard Circuit – part 3 we will add some I/O devices as well as writing, uploading and running a simple program.

References

Related News

Atmega8 breadboard circuit – Part 1 of 3 – Power supply

This is the 1st of a 3 part series where I will describe how to...

HD44780 Character LCD Displays – Part 1

Introduction LCD character displays can be found in espresso machines, laser printers, children's toys and...

8 Breadboard Hacks

A few hacks to make bread boarding easier... 1. Hacking the power buses The power...

23 Comments

  1. jeff

    hi

    i have a usbasp avr programmer, an attiny85 and a breadboard. i know nothing about microcontrollers but i would like to learn. the attiny has only 8 pins. can i still use this tutorial? if yes, can someone please give me some indications on how to hook up the attiny?

    thank you very much

  2. protostackadmin Author

    I think so. The principles are the same with the attiny85 bit the pinout is different.

  3. Donnie

    Just
    Be careful you can not use extended instructions with the AtTiny85. This device supports direct and indirect instructions. attiny2313 is a popular beginner mpu. I learned on the AT90S2313 with iCE200 debugger.
    Don

  4. smartung

    Hi ,
    it happy to see this tutor
    thanks

    but i want to know , there is a atmega8 in the usbasp , why we dont program directly on that atmega8 ?
    or can we use the breadboard to connect directly to the usb of pc ??

    i am sorry i am start from 0 , so some concept havent clear …maybe asked stupid question

    thanks!

  5. protostackadmin Author

    The atmega8 on the USBASP is programmed to be an interface betweeen your PC (via the USB port) and the microcontroller on your breadboard.

  6. Ron

    Hi,
    Thanks for this tutorial, I want to build one of theses but I’am a newbie on electronics.
    I also read a few other tutorial to upload some code to the ATMEGA where they use a 16 MHz external clock between pin 9 and 10, and additional two 22 pF capacitors from these pins to ground.

    Is there a reason why you don’t use the external clock in your setup?
    Ron.

  7. protostackadmin Author

    I wanted to keep the tutorial simple. The external crystals are more accurate than the internal clock, so if timing is important use one.

  8. libreaql

    Hi,
    Great tutorials, simple easy and well explained.
    It would be nice to have a direct link to the next tutorial on every page.

  9. Ron

    Ok, thanks. I first try it without a crystal.

  10. Yanni

    Respected,
    Where can I find (Where is) part-3-of-3 related to
    atmega8-microcontroller-breadboard-circuit.
    Thanks.

  11. tayyab

    how -ive voltage and ground is set simultaneously ???

    1. Daniel Garcia Author

      I’m not sure what you are referring to. Can you explain more?

  12. BHAVIK

    Can i get schematic diagram for complete board consisting of all parts ?

  13. wowme@wtf.com

    dont route wires over other components

  14. krishna sandeep Maddula

    what is the use of idc??

  15. MAHANTHESH

    CAN YOU TELL ME HOW TO WRITE A PROGRAM FOR ATMEGA ? IS THERE ANY DIFFERENCE IN BETWEEN ATMEL AND ATMEGA/

    1. Yogesh Singh

      atmel is comapny ATmega is there chip name which they made.
      they also make attiny and atxmega

  16. Bernie Cabero

    Sir can i get schematic diagram for complete board consisting of all parts of microcontroller atmega168 using usbasp?? Thankyou

    1. Daniel Garcia Author

      The circuit for the atmega168 is the same. You will notice on the top right corner of the schematic, a 10 pin connector. This is where you connect the usbasp.

Leave a reply

Shopping Cart