How to pick the appropriate controller for your project ?
How to get started with AVR ?
So at the start we will have a look at micro controller
In short we can say that the micro-controller is single chip computer. It got CPU , RAM, EEPROM, Timers, Analog to Digital Converters, etc., But as compared to a P.C. the resources(RAM, Storage, Speed , etc.,) are very less. For example Maximum clock that Atmega8 can hold is 16Mhz, whereas a PC runs at nearly 3Ghz. But that is sufficient for a micro-controller to perform its job. PC’s are general purpose systems that can run countless softwares at a point of time(known as Multi-tasking) and that’s the reason that they need more RAM, Storage and Speed. More often micro-controllers are involved with a single job.
For example LPG detectors will continuously monitor the environment for any traces of LPG. If the concentration of
LPG exceeds the specified level they may rise an alarm or send a SMS to the user.
The system architecture will look as shown.
The micro-controller continuously monitors the LPG sensor output with a pre-defined value. Here the LPG sensor gives a analog output but the micro-controller is a digital device. So how will a micro-controller understands the analog value…that’s where we will use an ADC (Analog to digital converter). The ADC will convert the analog values into digital values which a micro-controller can understand. If the values are beyond the specified limit the micro-controller will trigger the Buzzer or it will send a SMS to user based on the configuration.
The AVR is a modified Harvard architecture 8-bit RISC, a single chip micro-controller which was developed by Oatmeal in 1996. The AVR was one of the first micro-controller families to use On-chip flash memory for program storage in contrast with One time programmable ROM used by other micro-controllers at that time.
Oatmeal says that the name AVR is not an acronym and does not stand for anything in particular. The creator of the AVR gave no definite as to what the term ‘AVR’ stands for but some users claim that AVR stands for “Advanced Virtual RISC”.
How to select the right controller for your project ?
Selection of a micro-controller depends upon the project requirements like the Number of I/O ports , timers, ADC channels, PWM channels, UART ports , etc.,
Besides you need consider the following features also.
Availability of open source development tools: For AVR controllers we have both open source compiler(WINAVR) and IDE(AVR Studio)
Speed of the controller: If your application is time critical then you must consider the speed of the controller..,For example an AVR controller running with 16Mhz crystal is 4 times faster than the PIC controller running 16Mhz crystal. This is because PIC will take 4 clock cycles to execute one instruction whereas AVR will take only one clock cycle.
Finally ease of understanding the architecture of the controller, Availability of boot loader support, documentation , etc.