Electronic – out growing 8-bit AVRs, not sure where to move on to


I've been using 8-bit AVRS for a few years now. Lately, I've been feeling limited by the peripheral data transfer speeds and higher level libraries.

I'm having trouble finding/picking a new line of microcontrollers to explore. I've looked at

  • NXP – Can't find a programmer
  • Freescale – Have to register for IDE
  • AVR32 – Limited chip selection on digikey

The NXP chips look really nice, but as with anything that isn't PIC/AVR/Ardiuno the learning curve is pretty steep.

I was wondering if anybody could suggest a line of micro controllers that satisfy (in order of importance) the following requirements

  1. Hand solder-able chips. (I can do LQFP 100)
  2. 32 bit
  3. Linux host
  4. Free toolchain
  5. Good/free IDE
  6. <500$ startup cost for unlimited programming/debugging/compiling
  7. CAN support
  8. Ethernet/USB support

I'm willing to look at Freescale and NXP again, if somebody can show me that I've missed some information on their toolchain and programmers. I guess you could say AVR32s are exactly what I'm looking for, but I'm just not happy with their chip selection. They all have higher pin counts and low stock on digikey.


Best Answer

I'd definitely reccommend NXP - decent range of chips, good peripherals (UART with flexible baudgen and FIFOS, SPI with FIFO etc.) excellent documentation* and flexible programming options. Get a JTAG/SWD debugger (Cortex parts use SWD - fewer pins than JTAG and can do stuff like setting breakpoints while running). I use the free kickstart version of IAR embedded workbench - this has a 32K code limit which is fine for me but be aware the code size upgrades are expensive. Plenty of people seem to do OK with GCC/winarm. Some Cortex parts (eg LPC1343) can load firmware from a USB stick using the onboard bootloader. Part availability is generally good - I've never struggled to find stock. There are also plenty of devboards/breakouts available for NXP parts.

  • the documentation in the User Manuals is good, however most things are mentioned precisely once, so it is worth the time spent to read the whole of each section relating to each peripheral you'll be using. Manuals for later parts have improved in that at the start of each section they point you to a few critical non-obvious things like clock/pin enables documented elsewhere that are needed to get that peripheral running