AVR microcontrollers were made by Atmel but Atmel have now been taken over by Microchip, who make the PIC microcontroller as well. They are available from Microchip 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.
Newer AVR Microntrollers
Since Microchip took over Atmel, they have been trying to remove all mention of Atmel anywhere. Microchip also can’t resist tinkering and they have produced more new programming methods for AVR Microcontrollers than Atmel managed in 25 years!
Microchip’s latest move is to get rid of AT prefix for AVR microcontrollers so they now have an AVR prefix instead. So from ATmega128 they have moved to AVR128DA128.
All AVR microcontrollers used AVR ISP programming method, although some also had JTAG especially for debugging. Now, the latest chips use combined programming and debug interfaces, known as TPI for ATtiny and UPDI for everything else.
If you want to use any newer AVR microcontrollers use need a programmer that supports UPDI and TPI programmer. Most Kanda programmers now support AVR ISP, TPI and UPDI programming.
PC based AVR Microcontroller Programmer
Handheld AVR Microcontroller Programmer