AVR Microcontrollers

AVR microcontrollers are available from Atmel directly, from any of their distributors or here on the Kanda site. The range covers everything from 1KB 8-pin devices to 100-pin 256KB microcontrollers.  Available package types include DIP, SOIC, QFN and TQFP. They feature all the usual peripherals including UART, SPI and Two Wire Interfaces, plus ADC, analog comparators and PWM for analog work and some have more advanced features like CAN and USB.

AVR microcontrollers are available with different voltage ranges, from 1.8V to 5.5V, with low power versions for battery use (P versions), and with various temperature ranges e.g. automative (A versions).

Basic 8-bit AVR microcontrollers are called ATtiny and ATmega series, which usually reflect the pin count, but it is not precise and is more an early marketing ploy rather than a strict division. The numbers are fairly logical and start with the memory size, for example, ATmega8, ATmega16, ATmega32 have 8, 16 and 32KB memory respectively. Extra numbers show the series, which have different peripheral sets or extra features, e.g. ATmega88 is 8KB but slightly different from ATmega8. Newer more complex AVR microcontrollers are now 16-bit (XMEGA) or 32-bit (AVR32).

The AVR family use Harvard architecture, which means that they have an 8-bit data bus, with a separate 16-bit instruction bus. This, coupled with a Reduced Instruction set (RISC) makes them very fast. AVR microcontrollers do not have a single accumulator (for arithmetic, logic and move instructions) unlike most other 8-bit microcontrollers. Instead they have 32 registers that can operated on by most instructions, which increases the speed dramatically. Because of this structure, the relatively large amounts of RAM (temporary memory for data storage) and registers that can hold 16-bit addresses, they are particularly suited to C compilers.

So, which AVR should you choose if you are starting from scratch? Pin count is the most important factor if you have a particular project in mind, as this is harder to alter once your design has progressed. You can usually get an AVR microcontroller with more memory and the same pin-out if your code grows too big, especially easy to do with C compilers.

There is a complication though, as AVR microcontrollers come with two distinct pin layouts, digital for accessing external memory and ADC for analog work. The commonest digital device is the ATmega8515, and for ADC it is the ATmega16. Both of these are 40-pin, with 8KB and 16-KB of memory. If you need more than 40-pins, then you have to use a surface mount device (TQFP), such as ATmega128. Kanda have a STK300 Starter Kit especially for these TQFP AVR microcontrollers.

For most people starting out, the DIP ATmega16 or ATmega8515 are more suitable. Even if you will be moving on to programming using a C compiler, we always suggest starting with Assembly Language as this gives you a much better understanding of the AVR microcoontroller and how it works. We have a range of STK200 starter kits for AVR microcontrollers up to 40-pin, with In system programmers and various debugging options, and an overview of these kits is here.



Leave a Reply