What's the difference between a microcontroller and a microprocessor?
|
feedback
|
|
A microprocessor generally does not have Ram, ROM and IO pins. It usually uses its pins as a bus to interface to peripherals such as RAM, ROM, Serial ports, Digital and Analog IO. It is expandable at the board level due to this. A microcontroller is 'all in one', the processor, ram, IO all on the one chip, as such you cannot (say) increase the amount of RAM available or the number of IO ports. The controlling bus is internal and not available to the board designer. This means that a microprocessor is generally capable of being built into bigger general purpose applications than a microcontroller. The microcontroller is usually used for more dedicated applications. All of this is very general statements, there are chips available that blur the boundaries. | |||||||||
feedback
|
|
As was mentioned microcontrollers are essentially systems on a chip. Except for some specialized peripherals everything is in one package. Interface to external peripherals is almost always done using serial connections. This keeps the package sizes small (less pins) and the PCB size small (less pins to connect between packages). At the last Boston Barcamp (MIT 2009) I did an "Intro to Microcontrollers" talk. A copy of the handout is at | ||||
|
feedback
|
|
This distinction is one that is much harder to make these days, since a whole spectrum of devices has arisen between the extremes, but if there's one identifier that seems to work, it's to look at the pin-out, and look at what the designers did with the pins. Are they mostly individual I/O? Or do buses dominate? In my view, a microcontroller has traditionally been something that works as a 1-chip solution; put one on a PCB with a few unavoidable discretes, and some connectors, write a small amount of software, and you have a system. The microcontroller contains all the memory, volatile and not, that the system needs, the price paid for this convenience being that there wouldn't be very much of either at hand. Most of the pins are dedicated to I/O functions. Whereas, at the other extreme, the microprocessor is the sort of beast to offload as much as possible to support chips, in order to dedicate silicon to maximizing the throughput of the CPU core. Most of the pins on this kind of device are address and data lines, necessary in order to connect to the memory and I/O devices that the core lacks. It's still possible to call some things microprocessors, and other things microcontrollers, when the designers clearly adhered to one philosophy or the other. An Intel Core i7 is clearly a processor, PICs and AVRs are clearly controllers. At this point in time, however, with the amount of logic that can be put in a single chip, you can easily embed an entire 1990 microprocessor system into a single chip. What do you call a 400MHz PPC604 with an interrupt controller, an SDRAM controller, ethernet support, and a slew of other peripherals, all on one chip? | |||||
feedback
|
|
Microcontrollers:
Microprocessors:
I find it interesting that the LEGO Mindstorms NXT set has a microprocessor [32-bit AT91SAM7S256 (ARM7TDMI) main microprocessor @ 48 MHz (256 KB flash memory, 64 KB RAM)] for doing the thinking, and a microcontroller [8-bit ATmega48 microcontroller @ 4 MHz (4 KB flash memory, 512 Bytes RAM)] for interfacing with the sensors and motors. See technical specifications on Wikipedia. | |||||||||||||||||||
feedback
|
|
Mostly marketing. There's some other weird terms; Analog Devices has (or had) something they called "microconverters" which were like ADC/DACs with a microprocessor built in. TI is now calling some of their DSPs (the C2000 series) Digital Signal Controllers. Otherwise what JohnC said. | |||||||||
feedback
|
|
I would suggest that a microcontroller is a device that contains enough internal memory and circuitry that, at least in some variants, it could perform some useful function without external memory. By such a definition, the 8051 would have enough circuitry to be useful by itself and the 8031 would not; the 8031, however, is simply an 8051 in which the contents of the internal ROM are unspecified (while it's entirely possible that some "ROMless" 8031 chips and variants leave the ROM space off the die, I would expect there are some others which, for consistency of die layout with versions which include ROM, include a useless blank ROM array). | |||
|
feedback
|
|
MICROPROCESSOR
MICROCONTROLLER
| |||
feedback
|
|
The line is somewhat blurry but generally it goes like this:
| |||
|
feedback
|
Difference between microcontroller and microprocessor
| |||||||||
feedback
|
|
Microprocessor is a simple central processing unit (CPU) on a single chip (remember the word ‘Single Chip’). It includes Arithmetic logic unit (ALU), control unit (CU), registers, instruction decoders, bus control circuit etc. but everything should be on a single chip. Microcontroller: A microcoontroller is the association of microprocessor and the peripheral I/O devices, support circuitry and memory (both data and program). It is not necessary to be on a single chip (remember this point, not in a single chip).
| |||
|
feedback
|
|
Just to add all above excellently written answers, Analogy : Microprocessor is a Brain. while Microcontroller is Entire Body. Brain is capable of Executing all the instructions but We need to attach Eyes,Hands (i.e. Peripherals) externally. While Body has Brain and Other Peripherals i.e. Microcontroller :) | |||
|
feedback
|
|
microprocessor has dual power supply(12v & 5v) but microcontroller has a single power supply(5v) | |||||||||||||
feedback
|