Poll: Which Microcontroller is Your favorite?

6 points by m_eiman ↗ HN
I'm currently looking at various microcontrollers for new products at work, and I'd love to hear what everyone is using and what the pros and cons of the various uC families are.

The ones that are looking best at the moment, for my purposes, are the Atmel AVR XMEGA A3 chips - if you've used them and have an opinion please make yourself heard!

I'm interested in all aspects: hardware, software, compilers, debuggers, etc. I've spent the last nine months or so writing firmware, but I'm very much a newbie in the embedded world.

5 comments

[ 4.0 ms ] story [ 22.6 ms ] thread
I've used Atmel AVR Classic, Mega and Tiny for quite a few projects using the gnu toolchain. The free compiler is quite good and programming cables can be made very cheap. To get more programming or debugging features you need a decent one though (DebugWire, high-voltage serial/parallel programming...). There's a windows distribution (winavr) that integrates well with the Atmel-provided AVR studio (but I never use that). They are fairly popular with the Arduino crowd that created their own variation of C which goes well with their own IDE. Internal functions are good (counters, sync/async serial ports, ADCs,...) but there are not many (e.g. only very few parts have two hardware async serial ports).

I've not used PICs, but they are said to have a bigger variety of parts that have different built-in functions. So you might find a better suited part in that family.

68HCxx and 8051 is very old-school, you can probably buy the "best tested" compilers and IDEs for those. This can be an advantage if you are working in/for a very antiquated industry. On the other hand, you can get astounding high speed-parts (I think it's silabs that makes 8051 MCUs >100 MHz)...

You forgot to mention the plethora of ARM-core MCUs which are made by several companies. Even if they come in many varieties, they are identical regarding tool-chain and programmer (they share the same JTAG logic). So this might be a good long-term investment. Also debugging via JTAG is very good. But being a 32bit architecture those MCUs are more often "high-end" parts (especially compared e.g. to 8-bit AVR tiny parts...). If you want a lot of computing power, that's possibly a good way to go.

68xx and 8051 might be old-school, but you can also synthesize those cores inside an FPGA. That's pretty useful and avoids paying licensing fees for some of the newer stuff.
I left out the ARMs since they appear to be a bit on the expensive side (the ones I'm looking at cost about $4 in not so large quantities), and the ones I looked at didn't have much in the way of UARTs, ADC and IOs. I'll have another look though; I found some cheaper ones with a quick search on digikey.

As for the 8051 family, that's what I've been working with in the last two projects - and I'd like to find a better alternative. Both in terms of hardware (the number of page selectors needed to cram all those registers into 128/255 bytes of address space is just wrong) and software (I've used IAR and Keil, and neither feels like it's evolved too much since 2002).

I've completed a lot of projects with 8051 derivatives in the past (Dallas and Atmel mostly), but I am designing new projects with ARM Cortex-M3 chips from NXP. More speed, more memory, more peripherals, better watts/MHz, and decent free tools.

The bigger chips have dropped far enough in price that 8-bit uCs have almost lost their only advantage besides code compatibility with old firmware. I did recently use a $2 8-bit PIC when cost was the prime concern.

Hard to single out one as a favorite, since so much depends on the power/memory/peripheral tradeoff for each project.

I recently used the TI/Luminary LM3S8962 (ARM Cortex-M3 cpu). Loved it. No goofy pin multiplexing, GCC, easy to use serial bootloader, lots of horsepower, great peripheral mix. Interrupt system much more logical than ARM7TDMI.

NXP LPC2106, not a bad chip, but better alternatives exist today. Too many power rails (core and I/O), limited interrupt system. Good tools, serial loader, plenty of memory on chip.

Renasas/Hitachi H8 series. Actually a 16 bit chip. Dirt cheap in some variants (but way too many variants to pick from!). CISC with good code density, decent low power (forgiving power supply requirements, too), good GCC port. Serial bootloader is a bit crufty, a few peripheral bugs, translated documentation.

Freescale MC68332: great chip, but it's technically a microprocessor (no onboard flash, at least in versions available to those of us that don't work for Government Motors...). It also includes the magnificent TPU (time processing unit), a work of art that's a subject all by itself. Long in the tooth but still soldiering on in many industrial applications.