microcontroller comparison

Status
Not open for further replies.

Ashford

New Member
ok,
here's the deal, I'm going to buy a microcontroller for a project and I'm kinda lost as to which microcontroller to get. I'm thinking about getting either an AVR or a PIC so I just want to now which is generally the best in terms of speed and flexibility and I am also keeping price in mind since I'm just sixteen and don't work for my own money..lol
 
Personally, I'm partial to the Arduino, which is based around Atmel's ATMega line of micro-controllers (mainly the ATMega8/168/328 - there are also variants which use the ATMega644, 1280, and 2560). Think of the Arduino as a "carrier board" for the micro-controller. The Arduino project itself is completely open source, and cross platform - the IDE and tools used (which are also used for other AVR devices) are completely open source, and run on Windows, Mac, and Linux platforms. The Arduino IDE is Java based (and derivative of the Processing platform). There are even some AVR cores in the Open Hardware arena, so in theory the entire thing could (in time) become completely open source.

A standard Arduino board (that is, one which conforms to the reference design; based around an ATMega8/168/328) varies in price depending on the vendor, but shouldn't cost more than $30.00; the software environment is free to download. Connection to the PC employs a USB cable; special software already on-board the ATMega (aka the "bootloader") enables a quick and easy method of getting your compiled code onto the micro-controller; while this bootloader does take up some memory on the micro-controller, it is a very small amount, and the convenience is worth it. If, however, you need the extra space, it is possible to forgo usage of the bootloader, and use a standard AVR programmer ICSP interface with the Arduino IDE to upload as well (that's how you get the bootloader on the micro-controller in the first place - in fact, it is possible with some hacking to turn the Arduino board itself into an ICSP programmer, and program the micro-controller in-situ).

Bootloaders also exist that have been optimized for space (the smallest possible is 512 bytes, which is a physical limit of the hardware; the standard bootloader is 2k - so on a 168 you have 14k free for program space, and on a 328, 30k is free).

The ATMega line of micro-controllers are more than capable of handling just about any project you throw at them; they aren't the most inexpensive micro-controllers available for embedded design, but that isn't something you need to worry about until you get into needing thousands of pieces. They also tend to use more power than other micro-controllers, and there have been issues in the recent past in securing quantities of certain models of the micro-controller line (by this I mean it was difficult to order them from places like Mouser and DigiKey).

Maybe someone else here will chime in on the pros and cons of PICs, as well as other micro-controllers; I am not very familiar with them...
 
I like ARM personally. Seems to be more powerful and more extendable, but a slightly less user friendly. If you have some experience it's no problem. And it is still within the cost range (for development hardware and software as well as device price which is what eliminates most contenders). Which starts at free for software and about $50 for programming hardware.

One thing I do like about the Atmel is that one series they have that lets you interface an FPGA directly to the internal AHB bus and they provide all the IP cores for the FPGA to allow it to do that. But that's getting quite far ahead. It's also not an AVR- it's an ARM core processor made by Atmel.
 
Last edited:
The ARM processor is a good choice if you need the power and flexibility it brings; its also very nice in that there are plenty of open-source tools around, which makes it amenable to cross platform development, if that makes a difference for you. I am not sure, though, whether it would make a good choice for a newbie getting their feet wet in microcontrollers. Also - the thing I really like about Atmel's ATMega offerings (as applied to the Arduino), is that most of the line is available as DIP ICs, making breadboarding a circuit very easy. I am sure there are carrier boards (or development boards) or such available for ARM processors (just like there are for some of the Atmel ATMega offerings that aren't in DIP form, like the 1280 and 2560); I haven't really researched it, though.
 
True. I think that if you you know enough about how coding an embedded processor is supposed to work and how you're supposed to set registers to configure things like clocks, periphreals, etc . You don't have to have actually done it, but know what it should sort of look like, then you should be fine starting with an ARM since you aren't going to be as dependent on looking at other people's exams just to get your chip to blink an LED. This also includes being able to *sort of* understand what the datasheet is saying rather than just seeing a jumble of words. If you know that much you'll be able to figure out the rest.

On the other hand, if you are going to be heavily dependent on user examples...well..not the best choice. But very doable if you've already programmed a PIC/AVR or two. There is a growing amateur ARM communty though.
 
Last edited:
ok,
... I'm thinking about getting either an AVR or a PIC so I just want to now which is generally the best in terms of speed and flexibility and I am also keeping price in mind since I'm just sixteen and don't work for my own money..lol

First you did not say if you knew how to program, and if so in what language. How much do you know about micro controllers?

Even at 16 the most expensive part of getting started is your time. The tutorials, examples and user community are much more important then flexibility and speed. On this forum PICs are best supported by a large margin. I suggest starting with the PIC 18F family. Intro Tutorial
 
I like the ATTiny series from Atmel, most are under $2.00, powerful enough for most projects. Free software for Assembler, "C", and BASIC. Programming hardware can be built for next to nothing (from what I've read). PIC has a lot of pages on the web, but AVR isn't too far behind...
 
I lean towards the AVR line as well, they have a more simplified product line than PIC, but they're quiet powerful flexible and have a variety of devices for specific needs as well as nearly all of their core line being highly versatile. I also agree with Harvey, the tiny line is very nice.
PIC has a user base bar none in comparison to AVR's but the actual resources on the Internet are nearly equivalent overall. I came into electronics with probably less knowledge than you had looking for a micro controller line and had to decide between PICs and AVRs, I spent about 2 months researching and the general feel said AVR's were right for me, so do your research and.

I'll say two things that I think are typical of most people's views of PIC vs AVR, if you picked a completely random AVR chip from their entire line you'd end up with a chip that has a higher degree of flexibility and general usability to the average newbie. If however you did your specific research and chose the exact PIC for your specific project you'll probably save a few pennies maybe a dollar per chip.

The entry cost to both lines is very low, the support for both lines are extremely high, even if you flipped a coin you'd end up with a stellar product that will get you off the ground, either way you're gonna have quiet a bit of learning and most if it will be through failure, so just prepare yourself for that.
 
By the way as far as pic vs avr for support on this forum I wouldn't even consider that.
There are dedicated forums to both PIC and AVR that you should be on when learning.
 
ok, I've taken everything you guys said into consideration and I'm particularly drawn to the Atmel line of microcontrollers and I've also looked at the ARM based solutions by Atmel but they look a bit too complex for me at this stage, however, I am looking forward to using it sometime in the near future but for right now I think I'll start with the ATtiny series. So my question now is, how easy is it to transition from the smaller ATtiny series to the more powerful ARM series?
 
By the way as far as pic vs avr for support on this forum I wouldn't even consider that.
There are dedicated forums to both PIC and AVR that you should be on when learning.

With your brand of thinking we may as well eliminate every ETO forum where dedicated forums exist elsewhere.

ETO is far friendlier to Noobs then any of the dedicated micro controller forums. The dedicated forums focus on experienced users and can be openly hostile to people who are learning.

I for one have been working to help make and keep ETO noob friendly.

One member complained that you tend to drive people away. Too bad there are no rules against that.
 
Last edited:

I'd actually lean towards PIC. Admittedly, I'm biased because that's what I have experience in. But also, PIC has such a broad user support online. Millions of PIC projects around.

No one can give you recommendations unless you outline your project. If it's an LED blinker, any chip under the sun can do it. Some things involving serial ports, ADC, PWM, etc may be very difficult to do without a hardware module on-chip so chip selection is critical. And some things newbies set out to do are impossible with most chips, like encoding video with the ADC or whatever.
 
Reactions: 3v0
I wasn't trying to drive anyone away 3v0. The best place to get information on AVR and PICs is first from the PDF of the chipset. Second from the forum with the highest concentration of users. That will provide ALL the raw information he needs. I do agree with you that questions about the information he gets from those forums would be better entered in the micro controller forum here. But as far as the location for the best information, that's it.

I don't see as how pointing a user to the best source of information as driving anyone away.
 
Lets get this thread back on track to the original posters needs shall we?

Ashford, how do you hope to progress? You could spend many months just learning AVR or PIC micro controllers. ARM's are really more along the lines of a microprocessor, they're quiet a bit different in actual implementation, and almost a separate subject. You can do a LOT with the basic 8 bit micro controller lines though, exactly what you intend to work up to is very important to suggest anything at this point. The higher end of the tiny series, which would probably be a good place to start would be programmed in C, trying to pick up some ASM as you go because it helps you understand why some difference occurs in various chips and various C compilers.

The Tiny AVR line will take you from everything from blinking an LED, to high frequency PWM for things like switch mode supplies, with enough raw I/O power to do PWM DAC's and plenty of analog input choices as well. I'm asuming you're not getting into micro controllers just for giggles, why do you want to use them in the first place, what field/niche/market are you looking to do things with. What you want to do is actually more important at this point than anything else, because you have a HUGE amount of choices, many of which will work for a lot of general things. But since we don't know what you want to do besides a micro controller project, at this point there's nothing more anyone can suggest, cause you're the one that has the information we need to answer them.
 
Last edited:

No, all of the ARM controllers I have seen are micro controllers. They have all the memory and peripherals PIC and AVR have, and often more, on board.
I really don't think it matters much where you start, you just need to start. The concepts you learn on one will apply to the others; it will not matter which company's product you go with, you just may have to learn different ways to do the same thing on another brand. (even amongst the ARM types)

I think the advice on available support is the important issue for you.
 
Well there is no true boundary between micro processor and micro controller so it's a fuzzy area as to what to call what, especially with the plethora of devices. I've always considered ARMS micro processors because that's what they started as. They require more external support circuitry and I'm not sure if there are any ARMS that are available in a DIP format that would make breadboard practical, but it's all up to the size of the system and Ashfords actual goals and budget. AVR or PIC they both make powerful cheap devices that are easy to learn (relatively speaking) many of which require little to no external circuitry, other than power. ARMS are massively more powerful, but almost more complex. Starting right at ARMS might be a bit more intimidating, but again it all depends on Ashfords ability to learn and what he actually want to accomplish. This is the 16th post in this thread and Ashford hasn't say word one of what he intends to do with these devices in the first place. That's kind of important when choosing a device =)
 
Last edited:
well the initial project was actually a simple LED project to flash a couple LEDs, now I am quite aware of the fact that any microcontroller can do that. The main reason for this thread is because I don't intend to flash LEDs for the rest of my life, so I just wanted to know which microcontroller would best cope with an increasing skill level, because I don't want to have to change microcontrollers just because my skill level and project intentions increased, not to say that I wouldn't change to the ARM based microcontrollers in the near future as my projects become to big for the ATtiny series
 
Even if you outgrow the Tiny series, there's the Mega series, except for peripherals and a few additions the core is the same, there's also the Xmega series but I know nothing about it, although I'm pretty sure there's some architecture changes. Even then Atmel makes ARM chips as well I believe. From the standpoint you've given for doing simple things but with the ability to do much more immediately and a decent amount more later on I don't think you can go wrong with AVRs.

One thing I don't like about AVR's is their premier programming board the Dragon comes naked. Meaning you actually have to solder connectors on to it to even start, not so great for real beginners. I have an STK500 development board and it's gonna last me a while yet but it also costs more that the Dragon because of the built in headers/sockets by a small amount. I think STK500's can still be had for around 80 dollars, and the Dragon is around 60.

If you don't want to go with a full development board like that (to avoid the intial cost) there are plenty of plans/schematics for basic programmers out there. I've also used the ATAVRISP which is a small puck type stand alone programmer for about 30 dollars, but for the features it lacks the extra cash for the STK500 was worth it. Depends on the actual success you have making your DIY programmer.
 
Last edited:

Why not an Arduino, then? It provides the perfect level to start out with, doesn't require a programmer, but as your skills advance, you can forgo the bootloader (and gain 2K) and use a programmer on the board itself. Its cheap, its easy, and it is a great introduction to microcontrollers.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…