You are on page 1of 1

microcontroller vs microprocessor

kaustubhkhole,
Some Key differences:
. uControllers are self-contained with RAM, ROM, EEPROM,
. sometimes with A/D, D/A converters, Serial Ports, etc.
.
. Processors are more general purpose, with Memory, converters
. communication harware external to the uprocessor, and added
. to the design as needed.

microcontroller versus microprocessor


Usually, microprocessor is only the core. It is a CPU, sometime a memory controller, and that's
it. You have to use it with other components. You need to add memory, IO, devices, ...

Microcontrolers are targetted toward embedded applications. The point is to try to use the less
possible external components. So, generally, microcontrolers have memory (program memory
and some RAM), IO ports, counters, UART, ... all integrated into a single chip.

Microprocessors ure usually faster than microcontrolers. They are sometime much higher price.
Though, we are now seing microcontrolers with higher speed and lower prices. A good examples
are the ARM7-compatible microcontrolers.

The main point again, microprocessor are just that, a 'processor'. Microcontrolers are a
microprocessor plus a dozen other functions in the chip. When you buy a microprocessor, you're
free to (you have to) use the components you want around the processor. With a microcontroler,
you usually choose between different flavors of microcontrolers (more/less memory, 0/1/2
UART, more or less timers, SPI, ...) but you're stuck with all those functions. For example, if you
do not want a UART, but the microcontroler you want (say it's the one that have enough memory
as you require) have one, you get the extra feature and can not select not to have it in the chip.
It's kind of buying something you don't want. Though, this may look as a disadvantage, it is
generally not the case, because of 2 things:

1st - The microcontroller pins used by those IO can be used as general purpose IO if the function
is not needed. For example, you're free to use the UART, and have a dedicated TX and RX pin
on the microcontroller, or not to use the UART, and in this case, use those 2 pins as general
purpose IO. This is usually done by programing a bit to 0 or 1 in the microcontroller. This is true
for most peripherals.

2nd - It cost a lot less to include a ton of features in the microcontroller, and having the user
select the ones he want or not (by setting a bit to 0 or 1), than creating custom devices. That's
why the microcontrolers are becoming dirt-cheap.

You might also like