Are all of these the same thing?
Once I take a fancy to a particular microcontroller, the first thing I'll want is a piece of hardware I can use for programming the chip. Now given that I'm just one person working away in my bedroom with my laptop, I'm not looking for some sort of industrial product the size of a washing machine that can program 72 thousand chips every minute. I'd want something small, no larger than the size of a CD dewel case, that can hook up to my laptop via USB port / COM port / LPT port. It shouldn't be too expensive either, but if it's pricey then I'll look for a second-hand one on eBay.
Nowadays, are there some microcontrollers that are purely for "use in industry"? What I mean to say is: Is there some microcontrollers out there for which you CANNOT get a small programmer board, or perhaps one's for which the programmer board is ridiculously expensive?
As I've mentioned here countless times, then only microcontroller I've any experience with is the PIC16F684 because we used it in my college course. I use the Pickit 1 to program it, which is a small programmer board about the size of a credit card that connects to my PC via USB, and the software I use for programming it is the PIC C compiler in conjunction with MPLAB. The software was free, and I got the development board for =8010 through my college (which is about 15 US dollars), so I'm pretty chuffed with that.
What do people call these "programmer boards" nowadays? I've heard terms like "evaluation kit", "development board", but I don't know what the difference is, if any.
I've also heard of something called "in-circuit programming" whereby you can leave the chip in the circuit when you're programming it, which I suppose is convenient. For my most recent project I simply plucked the chip on and off the board, putting it into the Pickit 1 to program and then putting it back in the circuit.
What I'm extremely interested in, however, are the development boards that let you actually debug the program, i.e. you can have the chip in its circuit and, while the program is running, you can pause the program and check the value of registers, and also single-step through instructions. In my most recent project, there were times when a bug in the program resulted in my circuit board doing absolutely nothing, so I hadn't a clue what was going on. Some sort of debugger which would have allowed me to single-step through the code and check registers would have been greatly beneficial! What I ended up doing was compiling the code for my PC and then single-stepping through it to find the bug.
So anyway I'd like to ask something. For someone like me, who has an interest in embedded systems as a hobby, who wants to be able to program a microcontroller using a small USB-interface programmer, who wants to be able to do in-circuit debugging, and who wants to work with a microcontroller that has: 1) Plenty of IO pins (as much as 20 or even more) 2) A-to-D converter 3) Interrupts 4) Timers
What's the best microcontroller and programmer combo to go for? I'm pretty happy with the Pickit1 but it can't program anything larger than a 14-pin chip (or then again maybe it can but I'm not clued in).
People here have me paranoid about using PIC chips; I've gotten responses such as "don't use the PIC, use a real microcontroller", but I'd like to know why people have such a poor opinion of PIC's here. Having used them myself, and having used the Pickit1, and also having seen YouTube videos of some mad stuff that people have done with PIC chips, they seem pretty cool to me. Of course I'm not a veteran that's being playing around with microcontrollers for the last 20 years, but if there's a rational reason why I should PIC's then I'll be happy to listen.
Also, if I you have a microcontroller from a reputable manufacturer, e.g. a PIC16F684 from Microchip, and if you use it correctly (i.e. not drawing too much current form the IO pins, not running it at too high a clock speed), then should it pretty much last forever? I mean if I programmed one now and put it in a circuit, should it still be doing its job perfectly in 80 years time?
I know I've written a lot in this post, but really I just want to be sure I'm using the right equipment before I go too far. Actually one other thing: What's the most used microcontroller in the world, i.e. the micrcontroller that's used in the greatest amount of products all over the world?