Skip to main content

Setting Up

     Before moving to actual tutorials, I will list out few basic hardware and software that will be required. I will also tell the need of these items in this post. I will also provide the links of the software and datasheets.

      Following is the list of the required hardware:
  1. Breadboard for mounting any circuit
  2. Connecting Wires: You can use standard single stranded wires or jumper cables
  3. Atmel's Atmega328-PU or Atmega328P-PU: This is a 28 PIN 8 bit micro-controller, you can get those easily in the market. You can also use any other 8 Bit micro-controller from Atmel, like Atmega8, Atmega168, Atmega16, etc. Since my tutorials will be mostly first conducted on Arduino Board and then standalone micro-controller I will suggest anyone from Atmega328/328P. I will be using Amega328-PU.
  4. Arduino Development Board: This hardware is totally optional. I will be using arduino hardware just to demonstrate the program difference between Arduino & Atmel Studio. You can use Arduino UNO, Nano, Mini, or Pro Mini. I will be using Arduino Nano.
    Arduino UNO
  5. A Programmer: There are many different programmers available for Atmel's Atmega series. In my case I will be using USBasp Programmer to upload the compiled program on to the chip. You can use other programmer like JTAG or ICE with onboard debugging capabilities.
    USBasp Programmer
     Now moving to the software that will be require. Here are some of the basic software and drivers that will be required for initial set up.
  1.  Atmel Studio: This is the Development Environment I will be using for writing and compiling codes for Atmega chip. This is the official IDE provided by Atmel that supports different micro-controllers manufactured by Atmel till the date. I am using Atmel Studio 7.
    Atmel Studio 7
  2. Arduino IDE: Like Arduino hardware even this piece of software is optional. The benefit of Arduino is that if you are a complete beginner you can easily learn with Arduino also you can upload Arduino program in a standalone Atmega. It is developed by Arduino team.
    Arduino IDE
  3. Zadig: Zadig is an application software written by Pete Batard that helps to install different USB drivers easily. This will be required to install USBasp driver.
    Zadig
  4. WinAVR: WinAVR is a collection opensource tools including C/C++ compiler, debugger and AVRDude for uploading the code to chip targeted at AVR series. In our case we will be using WinAVR for uploading the hex file using USBasp.
    WinAVR
  5. AVRDUDESS: AVRDUDESS is the Graphical User Interface for using with AVRDUDE to upload the hex file to your micro-controller. This program was developed by Zak Kemble.
    AVRDUDESS
This completes all the basic requirements for getting started with your new adventure. Last but not least I will provide the download links for the software tools I just mentioned. 

Comments

Popular Post

Generating Delay Using Timer/Counter of Atmega328

     Delay is required in most of our micro-controller applications, for example to blink a LED for certain duration or just to pause the micro-controller for short time. The avr-gcc compiler in Atmel Studio comes with delay.h library to make things easy for us, but do we know how it work. No, not until we do some digging inside of the library. In this post we will learn to generate short delay without using library, this will give some basic idea for how the  _delay_ms() or _delay_us() works.      In this tutorial a Logic Analyzer is used to observe the output of Atmega328 on pin PB5. Circuit configuration for Atmega328 is shown in diagram below. Circuit Configuration      Atmega328 has three individual timer/counters identified as TC0, TC1, TC2. TC0 is an 8 bit general purpose timer/counter which can also be used for generating PWM waves, TC1 on other hand is 16 bit timer and can be used for generating PWM. Timer/Counter 2 (TC2) is 8 bit timer with support for PWM generat