Sunday, 29 June 2014

how to install the software required for programming and how to program an AtMega16 micro-controller

Note: 1st see main components of programming a micro controller "blog" for better understanding

Installation of Software and Programming
This tutorial will show you how to install the software required for programming and how to program an At Mega 16 micro-controller.

Installing the Required Software and Drivers:
The contents of the programmer support CD include the following:

1) USBasp Driver (Programmer device driver S/W)
2) At Mega 16 Datasheet
3) Installation and Programming Tutorials
4) Make File
5) WINAVR Installation File (Programming S/W)


 Contents of the support CD

Once we have written our C code, programming a micro-controller involves two discreet steps.
1) The code in high level C language must be converted into low-level (hex code) which can be understood by the micro-controller.
2) This hex code must be ported or burnt into the micro-controller.

WINAVR is the software required to convert the code written in our high-level language (C Language) into hex code and burn it into the micro-controller.
Let us see how to install WINAVR. If you are not using the support CD, then you will first need to download the setup file. Double click on the installation file of WINAVR and install it in a preferred location.
Once WINAVR is installed, we will proceed to install the driver of the USBdude programmer. In order to do this, first open Device Manager on your computer.
Plug in the programmer into the USB port of your computer. You will find the Programmer added to the list of devices attached to the computer. However, it will tell you that the driver for USBtiny was not installed correctly.
(Download and) Right click on the USBdude in the device manager and select ‘update device driver’. You will have to manually browse the folder location to identify the folder containing the device driver. Browse through to the folder named USBdude Driver. The folder contains drivers for all the configurations of windows computers. You need not select the driver specifically. Your computer will choose the right driver from the folder. Once you have directed to the folder, click ‘Update’.



Device Manager before installation of driver



Device manager after installation of driver

You have now installed the driver of the USBasp programmer.
Once WINAVR and USBdude are both installed on your computer, you will not require the setup and driver files again.
Now, whenever you want to write a new code, you may follow the steps given below. The aforementioned steps are not required to be repeated.
Now, let us see how to connect the programmer to the AtMega16 micro-controller.


Connecting the programmer to the micro-controller:


  Fig :- AVR DUDE Programmer


When we program a micro-controller, we must always make sure that each specific programming pin of the programmer is connected to each programming pin of the micro-controller we want to program.

This USBdude programmer is designed in such a way that it’s six programming pins and the six programming pins of the AtMega16 mirco-controller are in order. Hence, we can directly program an AtMega16 micro-controller on a breadboard using this programmer without using any wires.

If you have to program a micro-controller with different configuration of programming pins, you will have to connect the programming pins of the programmer to those of the micro-controller using wires.

The six programming pins of any micro-controller (MOSI, MISO, SCK, RESET, Vcc and GND) can be found in its datasheet. The datasheet of the AtMega16 micro-controller has been provided in this support CD.
Ensure that the Ground (GND) pin of the programmer is connected to the GND pin of the microcontroller, the Vcc pin of the programmer is connected to the Vcc pin of the micro-controller and so on.

Note: If can be seen that the micro-controller is being powered by the programmer while it is being programmed (as the power pins of the programmer and the micro-controller are connected). Similarly, after the micro-controller is programmed, we can use the programmer itself to power the micro-controller. The programmer in turn is being powered by your computer. However, the amount of current that the programmer can provide is limited. It is, therefore, not recommended to power the circuit using the programmer.
The GND pin of the AtMega16 micro-controller is its 11th pin and the MOSI pin is the 6th pin. This is how the micro-controller and the programmer sit on the breadboard when you want to program the micro-controller.

_________________________________________________________________________________

Programming the Micro-controller:

Now, we may proceed to write the C code. We will write our code in a software called Programmers Notepad (pn.exe) which automatically installs when you install WINAVR. Create a separate folder with an appropriate name. Go to the folder where WINAVR was installed. In the WINAVR folder, select the pn folder. In this folder, open the pn.exe file. You can also find this file in the WINAVR folder in the All Programs menu when you open START.





This opens the ‘Programmer’s Notepad’, a commonly used editing software for programming.
Write your C code in the programmer’s notepad and save the file in the new folder with a “.c”
extension. For example, if your program is called main, you will have to save it as main.c
In order to program the micro-controller successfully, we have to pass on certain information about the hardware we are using to the compiler. We do this with the help of a MakeFile. You will find this MakeFile in the Support CD or in the ‘Resources’ tab.
Open this MakeFile with Programmer’s notepad. It will open as a separate tab in addition to the tab containing your C code.
Save this MakeFile in the same folder as your C code. This step is very important and is often
forgotten by beginners. Next, we need to modify certain parameters of the MakeFile.
Generally, we will modify only three parameters of the Makefile;

1) The microcontroller used: Change it to atmege16 (all small and no gaps)
                          #MCU name
                          MCU = atmega16

2) The TARGET (referring to the code to be burnt): Change it to the <name of your C code> without the .c extension
                         #Target File name (without extension)
                         TARGET=my program

3) The programmer used: Change it to usbtiny (all small and no gaps).

AVRDUDE_PROGRAMMER=usbasp

Save the Makefile and the code. Remember, the MakeFile and the C code should be in the same folder.
Now we are ready to compile and burn the code. Go to Tools in the menu and select ‘Make All’.
This command converts the C code into the hex code. On completion of this process, the output
window says ‘Process Exit Code 0’. This indicates that the hex file has been generated without any errors. You will now find the generated hex file in the folder which had your C code and the MakeFile.





Next, go to Tools in the menu and select ‘Program’. This command burns the hex code from your computer into the micro-controller. You can see the progress of this process in the output window. The code is first written onto the micro-controller and is then read, by the programmer. This is done to check for any errors that might have occurred during writing the code.


On completion of this write process, the output window says ‘Process Exit Code 0’. This indicates that the write operation has been completed without any errors.












No comments:

Post a Comment