Hi!
Well, the field of microcontrollers is quite big. You have several brands, each one sporting a full range of controllers, with varying degrees of capacity, complexity and ability.
That said, the way to start with most microcontrollers is by reading the manufacturers manual. As opposed to "normal" programming, where most programmers go by standards and rules and best practices and frameworks, etc. microcontroller programming is still done pretty much as programming was done in the early 80's: by reading a controller's manual, reproducing examples, and extending from there.
Microchip's manuals, for example, are excellent. They also have a very good community, and provide some libraries with "standard" functions you might like to use (like maths, I/O, doing serial I/O using two pins, and so on). A lot of the people working with PICs is quite open and normally share their source code if they think it might be of use to someone else.
There are some choices you have to make before beginning. The first one is what language are you going to use. You ahve two options:
- Assembly: Most manufacturers provide free or quite cheap development kits for their microcontrollers (MCUs for short). This is the most powerful option, and the one you should use if you feel comfortable. It also will teach you a lot about computers in general.
- Something else: If you'd rather use something like C, you'll have to pay quite a bit of money for the compiler (although there is at least one open source option for some of the device), and you have to consider the code produced by the high-level languages normally takes a lot of space/memory in the device. Also, depending on the standard library, you'll end up programming a fair amount of the functionality yourself anyway.
- Basic/Pascal-like language: some MCUs come with an Basic/Pascal-like interpreter. These are great to start doing some "toy" projects, and getting the feeling of how this things work.
Then, you have to decide what kind of device you want to use. Prices per unit vary greatly depending on maker, whether it is PROM, EPROM, EEPROM, how much memory it has, how much storage it has, how many programmable pins, etc.
My recommendation, for starters, would be:
- Try to find a free "burner" on the internet if you want to experience the thrill of programming your MCUs using something you built. There are plenty available out there, just google for "simple PIC burner" or similar. If that's not a requirement, then you can buy a burner, but it will cost you a fair bit of money.
- Get one EEPROM version of the MCU you think you are going to use the most. This will save you the problem of having to throw away a $5 piece of hardware just because you have a bug in your code.
- Buy a bunch of the PROM version of the MCU. They are cheap, and you'll need them. And once you get started, you'll want to put an MCU everywhere.
- Learn how to use The Emulator. Most SDKs come with an emulator you can use to test your ideas before committing them to PROM.
- Find yourself some simple and interesting first project. I must emphasize the SIMPLE there. If you try to come up with a way to control your microwave oven using a remote control straight away, be ready for a long period of learning.
Well, hope this helps you! If you want any more info, I'm around the corner, just whistle! :)
Cheers,
David