I am student of computer science. i have good skill of programming in C/C++. I want to start learning Microcontroller Programming. What is the pre-requisite to get started and what kind tools (Software and Hardware) i need to get a start.
Microcontroller programming
Sep 29, 2006
9 Replies
First of all you have to learn CPU architecture. Best way to do that is assembly programming :)
Start with Microchip PIC microcontroller. It's a good trainning. You could program in assembly (better) or C. It's cheapest and you could find it easly
Take a look at something like this :
formatting link
for very low prices ($10.99+) you can get real silicon, and real in-circuit emulation, with a uC with demo versions of Compilers included.
Or if 8 bits in a 3mm package scares you a little, this alternative
formatting link
gives you 16 x 32 bit register CPU. Large PCB+Compiler ToolChain and In System Debug, is
In addition skills already mentioned in other messages, in most cases you would need at least a very rudimentary understanding of electronics, i.e. voltage, current and resistance and how to measure these with a multimeter or oscilloscope etc. and perhaps how open collector/open drain and tri-state outputs work.
Paul
Demon wrote: : I am student of computer science. i have good skill of programming in : C/C++. I want to start learning Microcontroller Programming. What is : the pre-requisite to get started and what kind tools (Software and : Hardware) i need to get a start.
I'm glad you didn't say "embedded", there would be no answer to the question since no two people can agree upon the difinition...
Regardless, the answer is : it depends.
Working with micros is WAY different from working with the "big iron" of the high level language world. A run time error results in your code going off into the weeds or doing something that you don't want. You don't have a console, you won't get any warnings and you'll have to use logic to figure out what went wrong. This means you need to know the hardware architecture of the device you are working with. The above means that you're going to have to learn some electronics and your're going to have to learn how a microcontroller works. THAT in turn means you're going to need to learn some assembly on something, it doesn't matter what since the point is to learn low LOW level programming, the syntax differs between the various types of devices but the concepts remain the same.
So in summary you will need to learn about: microcontroller/microprocessor internals (harvard vs. Von Neuman) electronics assembly and micro concepts like pipelining and instruction cycles
The good part is that no matter what you start with, the basic concepts will move from device to device with just minor changes in specifics.
have fun! DLC
============================================================================
* Dennis Clark dlc@frii.com www.techtoystoday.com *
* "Programming and Customizing the OOPic Microcontroller" Mcgraw-Hill 2003 *
============================================================================
Let us know how you get on. I have not got my hands on one yet, but I'm tempted to give one to my son. Appeal is the low price, and ALL docs and Tools come from one company. Caution is, it is new silicon, but for teaching that's not such an issue. [for work, I'll stick with 8051, until an app screams for more crunch-power :)]
-jg
That's an improvement in terms of pin count, but is more complex to code and consumes more execution time, too. Always remember and never forget that there are ALWAYS tradeoffs!
========================================================================
Michael Kesti | "And like, one and one don't make
| two, one and one make one."
mrkesti at hotmail dot com | - The Who, Bargain
And I would recommend the TI MSP-430 USB key. You can carry it around in your pocket, comes with an debugging system, tool chain and a "sort of" 16-bit processor with 8 I/O pins. For $15 if you sign up for their contest or whatever it is.
As someone else mentioned about TI processors, you get all the documentation you could want (lots of sample code, processor docs, etc.) from TI, but it is TI documentation. You get to read it and re-read it....
--Charles
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required