A recent question asked about the advantages/disadvantages of various types of MCU. AVRs seemed not even worth a mention given the answers. Why then does it seem to an outsider that AVRs are experiencing a rush of popularity? Is this solely due to the Arduino, or is there something else that makes the AVR an especially good microcontroller?
The AVR family has a lot of good, inexpensive, hobbyist-friendly devices with nice peripherals, low power consumption, and good cross-platform support.
Yes, Arduino is a big part of it. But I think that Arduino came to exist the way that it did -- and to the success that it has -- partly due to those features.
Good: They work well. Easy to program in C for most basic functions. Adequate documentation.
Inexpensive: Lots of $3-$5 parts, available from major distributors in small quantity.
Hobbyist friendly: Parts in through-hole packages-- a big contrast to many of the chip families out there today. Newer AVR (e.g., xmega) devices are less so.
Nice peripherals: Built-in oscillator, flash memory, on-board RAM, serial ports, ADC, EEPROM, and the other goodies that make it possible to run a single MCU on a protoboard to do basic stuff, without too much hassle.
Low power consumption. AVR's major pitch point these days. Suckers can run on a battery almost forever if you know what you're doing.
Good cross-platform support: The AVR was designed with C support in mind-- not as an afterthought. GCC support came early, and a big open source community developed around that. It's still one of the best MCUs that you can develop from any platform with free tools. This is a big one with respect to the other families, many of which use proprietary compilers or have lackluster gcc support. Even PIC was pretty late to the game with good free C compilers.
As for why there wasn't much about it in the replies to your earlier question, I think that (1) you're seeing small sample bias and (2) many of the answers were specifically to discuss non-AVR solutions-- because so much of the discussion on this site is AVR/Arduino-centric. Most of the microcontroller families aren't represented in your list as of this writing-- including some that I use regularly, and others that are among the most popular in the world.
I started out using PICs but later switched to AVRs. I switched because there's GCC for AVRs. This gave me an environment that I was used to, for free, and let me compile code on Linux/OSX, not just Windows.
Although there are plenty of C compilers for PICs these days, some even for Linux - they all have their own quirks which I didn't want to learn.
From what I have seen AVRs have experienced a rush of popularity only in niche markets like hobbyist tools and rapid prototyping applications. AVR has done an excellent job of getting cross-platform tool support on Linux, MAC and PC.
Everyone I talked to that is using microcontrollers in OEM applications is either using PIC, some sort of ARM variant or an MSP430 (only for low power applications). I have yet to come across anyone using an AVR.
Arduino is irrelevant or you'd be asking why is Arduino so popular and not why AVR. AVR's have been "popular" for a while completely regardless of Arduino. Arduino is a product of the same things that made AVR attractive. It's another product, another devkit. AVR is not popular in units delivered where 8051's in devices and PIC's in smartcards or whatnot have massive numbers or in cellphone and PC markets where the AVR doesn't even compete.
Instead of popular, you could say AVR is attractive. And it is. The main points already came out: It's available and inexpensive, requires very little components or board features (clocks, buses...), is easily ISP and above all, there's good software support. You get a real compiler, programming software and hardware designs, docs, samples, libraries, all free as in freedom. You don't have to fight vendors and wonder if you're code size limited or hear that your compiler has been discontinued or won't run on any operating system from this decade. If not before, then once you've been bitten enough times, you'll appreciate open tools and docs where nobody dictates what you can and can't do or know.
There are two main manufacturers of μC and the eternal dilemma Pic-Atmel. I cannot recommend to anyone what to choose, but I can explain the reasons that made me go for Atmel. Some of those reasons are unknown even to myself – maybe I liked more the way it sounds – but I felt more attracted to this family because it seemed to me much closer to the old Z80 microprocessor and that I used for several beautiful projects back when I was younger.
What can I say, if you decide to go in one direction, just stick to it and remain loyal to that family, according to the principle that it is better to know one thing completely than two things halfway.
protected by Kortuk May 8 '13 at 23:35
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?