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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
In ATmega8 breadboard Circuit – part 3 we will add some I/O devices as well as writing, uploading and running a simple program.
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
I think so. The principles are the same with the attiny85 bit the pinout is different.
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
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!
The atmega8 on the USBASP is programmed to be an interface betweeen your PC (via the USB port) and the microcontroller on your breadboard.
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.
I wanted to keep the tutorial simple. The external crystals are more accurate than the internal clock, so if timing is important use one.
Hi,
Great tutorials, simple easy and well explained.
It would be nice to have a direct link to the next tutorial on every page.
Ok, thanks. I first try it without a crystal.
Respected,
Where can I find (Where is) part-3-of-3 related to
atmega8-microcontroller-breadboard-circuit.
Thanks.
http://www.protostack.com/blog/2009/08/atmega8-breadboard-circuit-part-3-of-3-the-firmware/
enjoy!
how -ive voltage and ground is set simultaneously ???
I’m not sure what you are referring to. Can you explain more?
Can i get schematic diagram for complete board consisting of all parts ?
Well explained! What internal RC oscillator frequency is used.
1MHZ
dont route wires over other components
what is the use of idc??
CAN YOU TELL ME HOW TO WRITE A PROGRAM FOR ATMEGA ? IS THERE ANY DIFFERENCE IN BETWEEN ATMEL AND ATMEGA/
atmel is comapny ATmega is there chip name which they made.
they also make attiny and atxmega
Sir can i get schematic diagram for complete board consisting of all parts of microcontroller atmega168 using usbasp?? Thankyou
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.
What software will be used?