Thanks to Everyone!
Here's what I've got to wrap my head around:
Danyf::
1) ARM: a lot bigger chips and far more powerful peripherals. Much steeper learning curve and a new set of tools and a new approach to programming. Rarely they are 5v compliant.
2) PIC24 (including the dsPIC chips too): more processing power, slightly steeper learning curve, and similar tools. Marginally more complex peripherals. Many are 5v compliant. Unknown future.3) advanced 8051: some firms, like Silabs, make amazingly fast 8051 loaded with features. The high end ones surpass many ARM chips in terms of processing power. New tools to learn.
Take a look at the various STM32 copter control boards and see for yourself how little you need for 5v in today's environment.
--------------------------------------
Mikeselectricstuff:
PIC is the only option for higher-end parts in DIP - PIC24 and PIC32 are available in DIP, SOIC, SSOP and QFN. And I mean actually available
Most have some 5V tolerant pins if you need it - there are one or two PIC24s that run on 5V.
Many peripherals and devtools will be pretty familiar if you're already using 8 bit PICs
--------------------------------------
22swg:
PIC24FV32KA304 with BOB MPLABX XC16 PICkit3--------------------------------------
fcb:
dsPIC30 family if you really must use 5v.then migrate to dsPIC33F and dsPIC33E families when you need 3v3 and a bit more grunt.
Learning curve isn't that steep if your used to microchip stuff already
--------------------------------------
Zapta:
I had the same dilemma recently and
settled on NXP M0 ARMS. One strong point for me was the availability of a simple to install tool chain. They packed Eclipse and all the plug ins and tools into a single and free package LPCExpresso that installs on Mac, Window and (I think) Linux
http://www.lpcware.com/lpcxpresso. You can user everything interactively from the GUI or set your own makefile if you prefer.
For example get this board
http://www.nxp.com/demoboard/OM13014.html (~$15), hook it to your computer and you can start edit, run and debug (full feature debugger).
(mini rant: I hate complex to install tool chains, especially if I need to download different parts from different web sites or compile the source on my machine (which typically fails with cryptic error message). Single package install is the way to go.).
(and a little later this post:)
http://uk.farnell.com/nxp/om13014-598/kit-dev-lpcxpresso-lpc11u14/dp/2251822
Don't worry about the jtag stuff. Everything just works. The board has two halves that you can be broken apart (but don't do it until things work for you). One half is the debugger and one half is the target ARM board. Install the LPCExpresso IDE on your OS of choice (Windows, Mac or Linux), download their examples, connect the debugger half to your computer with a standard Mini B USB cable and everything should work, including single step debugging, and register and variable examination. No external power is necessary.
Once the basic stuff works for you and you want to embed it in your project (or design a custom PCB based on the ARM board half), hook the debugger to the target board using a 8 wire cable and then you can debug your own board.
--------------------------------------
Jeroen3:
As beginner you should focus on
Cortex M chips only.If you're looking for a plug&play experience as Arduino you should definitely look at mbed. Or an STM32 with ChibiOS, but the latter might complicate things a bit too much I think.
(and in a subsequent post:)
Of my experience with NXP (11xx, 17xx and 43xx) and STM32F0 and F4's. I can recommend NXP for starters with bare metal programming. NXP uses relatively simple peripherals so a timer consists of a control, counter, compare. ST tries to fit your entire application in a single pair of Basic timers, Advanced timers, PWM timers or you name it. Currently I'm using STM32F4's (ChibiOS
), but I cannot imagine what a pain this must be without peripheral driver code.
--------------------------------------
dgtl:
So the simplest way to get started would be:
*
buy an LpcXpresso board (doesn't matter which... but unless you need to try a specific uC, get the biggest one you can... the price difference is almost nothing but you'll get 10x more flash space and many more peripherals to play with. For example, 15xx and 17xx are nice to play with.)
* install l
pcXpresso software
* connect the board via USB to the PC
* create a new example project (use the blinky demo, for example)
* press the debug button to upload to uC
If you need more HW, get an Embedded Artists Base Board; the lpcXpresso plugs into that and you'll have plenty of things to play with.
---------------------------------------
Westfw:
Be careful of what you're getting. Cypress "PSoC" chips are available with 3 different CPUs.
PSoC1 chips has a proprietary Cypress core, the 8bit m8C. I haven't heard much good about it.
PSoC3 chips had an 8051 core. SOOO 1980s...
PSoC4 has an ARM CM0 core, and PSoC5 has an ARM CM3 core; these are the ones worth consideration, IMO. A lot of people have been experimenting with these cheap breakout boards (
http://www.cypress.com/?rid=92146 ) and or the "Arduino-shield compatible" "Pioneer" board:
http://www.cypress.com/?rid=77780---------------------------------------
Corporate666:
Allow me to humbly
suggest the Cypress PSoC line. I see someone mentioned it before - I am a huge fan of these chips. I used to use all Atmel but after some bad experiences,
I jumped into Cypress. I could not be happier with them. I am not aware of all the features of every other chip (so some of the things below may not be specific just to the PSoC chips), but some things I like are...
-Awesome debugging. You can step through your code and watch the output pins change and monitor memory locations and variables while stepping. Makes debugging a breeze.
-Cost. PSoC3 and PSoC4 chips are pretty powerful (8051 and ARM M0 cores, respectively) but they are in the $1-5 range in small quantities. Plus they are available from most sellers, and direct from Cypress too.
I have in my hands a CY8CKIT-049-42XX. I think they cost around $5 or so. It's a small board with a USB connector on one end, a PSoC4 on it, a switch and LED, and then just pin header sockets all the way down the board in DIP format. So you can plug it into your computer and play around with making programs and debugging... and/or you can solder pin headers to it and use it in a breadboard.
The only downside to Cypress stuff is that because it is not as popular in the hobbyist world, there are less code examples and forums than there are for PIC and Atmel, for example.
But Cypress is making a big push to support the users, so you can go right to the forums on the Cypress.com website and get answers to programming questions right from the company itself, which is pretty awesome.---------------------------------------
Miguelvp:
Google: 100 projects in 100 days
element 14 did a series of projects based on the
PSoC4 targeted to the pioneer board ($25 with arduino headers) and it also has a
PSoC5LP that acts as the bootloader but it can be used as well.
The projects should translate well to the prototyping boards ($4+ shipping)
you can buy chips in QFP or QFN or SSOP for $1 each no minimum and free shipping (PSoC 4200)
It's very easy to use and flexible power inputs plus programmable digital and analog makes them pretty powerful.
PSoC 5LP is better, smartchboards has some breadboard ready for $35, there is also a kickstarter that will expand the R-Pi using the 5LP.
---------------------------------------
SirNick:
http://www.adafruit.com/products/1336 -- This is a breadboard-friendly starter kit. You get a bare NXP LPC 810 in DIP-8, a USB to TTL serial cable, and a handful of parts for $13. Or buy the parts alone from your favorite supplier. Adafruit has a tutorial on getting started with this kit, which should make it easy to dip your toes into the ARM pool. It won't get any easier than this.
http://www.adafruit.com/products/1341 -- This is one of the bigger(ish) NXP LPC Xpresso dev boards. I got one similar to this, if not the same one, from Digikey a little while back. It's made to be plug-n-play with the LPC Xpresso IDE and community.
If you want community support, NXP would be a good vendor to choose. Likewise, if you want to dive into the deeper end of Cortex M-series, this would be a decent model to start with.NXP is one of the more popular vendors along with ST, so it would be wise to narrow your list down to those two unless you have reasons otherwise. The Atmel offerings are not exactly stellar (some of the NXPs are faster) but their docs are pretty good, and probably feel more familiar to an existing AVR user. If you want to go that way, you might begin with the Arduino clones that use the SAM chips under the hood.
I would leave Cypress and TI and all the others alone until you have enough experience to decide whether they have something unique to offer.