AVR is the series of the micro-controllers released by Atmel Corporation. These controllers are available in 8 and 32 bit modes and have many versions. The one which we are specifically talking about here is Atmega 16 which is a 8 bit controller with 16 Kb of flash memory i.e we can store a program of 16 Kb size in it.
You are free to choose from the wide variety of these controllers and can experiment on them. The only difference you will note is the variation of the physical capabilities like no. of ports, Memory size, no. of ADC enabled pins, amount of RAM or some internal characteristics.
AVR is a popular platform among hobbyists also as for an example Now a days the most popular micro-controller platform Arduino-Uno is also using one of the AVR’s chip ATMEGA 328 which is a 8-bit micro-controller with a 32 Kb of the flash memory.
It is a good thing that Arduino has lessen the worries of the newbies for setting up the initial development environment required for ATMEGA 328 as they have given a specific hardware with a pre-loaded bootloader and a particular software which is like a Ready to Go solution for the users, It’s more like a prototyping platform and cannot be configured in an original way i.e. many of the things are hidden behind those header files for the precise control of the hardware we are using on it.
Specific reasons like commercializing your product or cutting the costs can be the reasons for you to use them in bare bone (just enough) configuration. Sometimes you may be looking for a “Fit in Socket” Solution, thus providing enough capabilities to do your work efficiently.
Now there are many reasons for which you want to deploy a different AVR microcontroller other then which are conventionally used in the Arduino Series(Also those which are used in Arduino can be configured too). The reasons may be :
- Configuring for Low Power Applications
- For a smaller and a smart design
- Tweaking your design parameters
- You want to explore an unconventional(Not pre-packed like Arduino) way
- Cutting the costs
- Commercializing your product
- More control over software
- Many more…
In this tutorial we are dealing with Atmega 16 version of the AVR as an example you can choose whatever you are okay with.
First of all before working on the real hardware, we will be simulating our designs on the Simulation software which does provides us the safe way to test our code as hardware is sensitive object so before really working on the hardware one should familiarize him/herself to the simulation first.
Here we assume that the reader has a PC with Windows operating System and a Basic understanding of C-programming language and have skills for the basic computer operations.