Author Topic: If someone wouldn't mind taking a moment [microcontroller vs. microprocessor]  (Read 3524 times)

0 Members and 1 Guest are viewing this topic.

Online 8086

  • Frequent Contributor
  • **
  • Posts: 921
  • Country: gb
    • Circuitology - Electronics Assembly
I'm having an argument with someone on a different forum about what a microcontroller is, and what a microprocessor is.

Could somebody please give a quick (couple of lines is all I need) definition of a microcontroller and microprocessor?

I've already told them but they won't believe me. Need some backup!

Apologies for such a waste of time post.  :-[

Ta.

Offline MikeK

  • Frequent Contributor
  • **
  • Posts: 577
  • Country: us
A microprocessor requires additional support peripherals, such as RAM, program storage, etc.  A microcontroller has everything in one unit.

Online nctnico

  • Super Contributor
  • ***
  • Posts: 3883
  • Country: nl
    • NCT Developments
microcontroller = cpu + one or more I/O related peripherals in/on one chip
microprocessor = a cpu in/on one chip
There are small lies, big lies and then there is what is on the screen of your oscilloscope.

Offline amspire

  • Super Contributor
  • ***
  • Posts: 2333
  • Country: au
A microprocessor is just a single IC that contains at least the full complement or parts to implement the CPU (central processor unit) of a computer. Prior to microprocessors, computers had to be made from discreet transistors, then standard logic IC's and then there were IC's that contained a portion of a CPU. The early microprocessor IC's like the Intel 4004 and the 8008 were a massive leap forward as they replaced a massive PCB (or many PCB's) with a single chip.

A microcontroller is probably a microprocessor designed for embedded use. They now tend to include RAM, ROM, A/D converters. EEPROM, etc but I think the 8032 (the Intel 8051 with external EEPROM and RAM) can still be termed a microcontroller.

It would be possible to make a PC with a part labelled as a microcontroller by the manufacturer, so I think the term "microcontroller" can be used either as a term describing the intention of usage by the manufacturer, or the actual usage of the part in a final circuit.

I think if a Pentium4 IC was used as a dedicated embedded processor, it would be OK to describe it as a microcontroller.  Microcontrollers are microprocessors.

Richard.


Online 8086

  • Frequent Contributor
  • **
  • Posts: 921
  • Country: gb
    • Circuitology - Electronics Assembly
Thanks guys, much appreciated.   :)

Online free_electron

  • Super Contributor
  • ***
  • Posts: 4569
  • Country: us
    • SiliconValleyGarage
A pentium IV cannot be classified as a microcontroller, even if used in an embedded system !

The distinction lies in the fact that a microcontroller integrates other system parts besides the processing core. The pentium is still only a processing core.

A microcontroller includes things like uarts or other communication interfaces, gpio's , timers, counters and sometimes even ram and rom.
So yes the 8032 , although romless , is still classified as microcontroller as it has a uart, gpio ports , timers , interrupt controller and some ram.
Professional Electron Wrangler

Offline amspire

  • Super Contributor
  • ***
  • Posts: 2333
  • Country: au
A pentium IV cannot be classified as a microcontroller, even if used in an embedded system !

The distinction lies in the fact that a microcontroller integrates other system parts besides the processing core. The pentium is still only a processing core.

A microcontroller includes things like uarts or other communication interfaces, gpio's , timers, counters and sometimes even ram and rom.
So yes the 8032 , although romless , is still classified as microcontroller as it has a uart, gpio ports , timers , interrupt controller and some ram.
I understand your argument, but it just doesn't stand up. All modern computer CPU's chip contain a mass of perihperal hardware now. If you can find a modern Computer processor IC that contains no peripheral hardware, I would be amazed. Only a tiny fraction of modern CPU chips is the actual CPU unit.

I was thinking that perhaps a microcontroller needs bit commands and/or single bit port input/outputs, then again this is not completely true. A tiny 4 pin package containing nothing else but an I2C bus and a RISC instruction set devoid of bit commands would still be very much a microcontroller.

If you replaced this single 4 pin chip with a modern computer processor chip with its external RAM, ROM etc, but all you actually used was the chip's I2C bus to control the same peripherals that the 4 pin chip was controlling, is would be hard to argue that is wasn't a microcontroller in its current usage.

I think "microcontroller" would have to be more a vague description of intent, rather then a term with any precise definition. Changes in technology will keep sliding the definition.

It is likely that in the future, both computer processors and microcontrollers may be available connect to the world via  a single serial super-fast optical link and in this case, it would come down to the intent of usage that would make the microcontroller a microcontroller.

Richard.
« Last Edit: May 13, 2012, 01:29:43 PM by amspire »

Offline IanB

  • Super Contributor
  • ***
  • Posts: 5254
  • Country: us
Similar to what Richard said, what about the "system on a chip" designs found in smart phones like the iPhone? They are cramming almost everything they can onto the same die to reduce the part count and improve the integration between components. Basically building the PCB on silicon. Is an SoC then a microcontroller?
I'm not an EE--what am I doing here?

Online free_electron

  • Super Contributor
  • ***
  • Posts: 4569
  • Country: us
    • SiliconValleyGarage
no, an SoC is NOT a microcontroller ! an SoC is an SoC ...
Once you start slapping on graphical LCD controllers, USB , Ethernet it is becomes SoC. The line microcontroller <> soc is vague but typically the SoC have much more stuff on board than a microcontroller.

Modern Computer processor without hardware . Any intel or AMD processor. I860 I960 processors. they may have an on board memory controller these days and the io may be going over pxi express but they still need a bunch of support chips... without the support chps they do zilch ....

as for a microcontroller : all that needs is a crystal (and even that is built in sometimes .. )

For me a microcontroller is a processor that does some 'behind-the-scenes' work and, is not really visible to the user, and is programmed for a specific task that cannot be altered by the user. so the microcontroller in a microwave oven control panel fits that description : you can't change it...
in a robot arm .ditto.

in a cell phone it is not  microcontroller as the user can install apps and run programs of his choice.
in a microcontroller the code is static.
Professional Electron Wrangler

Offline MikeK

  • Frequent Contributor
  • **
  • Posts: 577
  • Country: us
How about: A microprocessor is a Ferrari engine, and a microcontroller is an entire Yugo automobile. :)

Online free_electron

  • Super Contributor
  • ***
  • Posts: 4569
  • Country: us
    • SiliconValleyGarage
that would be acceptable :). however there are 'microcontrollers' out there that actually have a pretty souped up 'engine'.
but you are right.

a microprocessor is just the 'engine'
a microcontroller ranges from a yugo to a lexus. swift nimble and it gets you there.
an SOc would be a rolls royce / bentley / aston martin  ... big , heavy , and lots of power.
Professional Electron Wrangler

Offline T4P

  • Super Contributor
  • ***
  • Posts: 3706
  • Country: sg
    • T4P
Microprocessors are processors because they process information and don't have a need for much code to do anything other then process information

Microcontrollers on the other hand control I/O directly, most chipsets falls into this category because chipsets(or rather southbridges and northbridges but recently northbridges are integrated into the CPU) talk to the CPU and has the peripherals like a MCU but they are DESIGNED for that peripheral.

As for normal MCU's like a STM32F4 it's easy to describe them as a BWM M3
A Cortex M4 has like 1.25DMIPS/MHz

The thing about MCU's are that they process code and information AND control I/O's
http://the4thpin.comeze.com <-- Rants and Reviews! sorry my english  :palm:

Offline EEVblog

  • Administrator
  • *****
  • Posts: 13372
  • Country: au
    • EEVblog
A microcontroller can execute a usable program without any support chips.
i.e. it has the usable program memory/flash inside to do that.
Note that mask ROMed microprocessors were never considered microcontrollers.
The later addition of various internal peripherals helped differentiate the microcontroller from the microprocessor, but they aren't strictly necessary.

Dave.

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 5635
  • Country: my
  • reassessing directives...
so... a PC is a "macrocontroller" and it has a microprocessor in it. ok!

Online nctnico

  • Super Contributor
  • ***
  • Posts: 3883
  • Country: nl
    • NCT Developments
microcontroller = cpu + one or more I/O related peripherals in/on one chip
microprocessor = a cpu in/on one chip
Lets  pull in SoC as well:
SoC= cpu + peripherals which can run Linux
There are small lies, big lies and then there is what is on the screen of your oscilloscope.


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf