Microcontrollers (MCUs) tend to be less expensive than, simpler to set-up, and simpler to operate than microprocessors (MPUs). An MCU can be viewed as a single-chip computer, whereas an MPU has surrounding chips that support various functions like memory, interfaces, and I/O. The MCU vs. MPU question may seem simple, but there are some prominent differences. One of the main differences between microcontrollers and microprocessors is that a microprocessor will typically run an operating system. An operating system allows multiple processes to run at the same time via multiple threads. Drivers are required to support peripherals.
A microcontroller will run a “bare metal interface,” which means there is not an operating system. Without an operating system, a microcontroller can only run one control loop at a time. From a software perspective, this means a single thread is running on the microcontroller’s processor or Central Processing Unit (CPU).
MCUs only have basic options for interfacing with the outside world. An MCU might have I2C, SPI, a UART (serial), and sometimes a low-level USB connection. These basic interfaces are often used just for programming the MCU. The purpose of an MCU is to run a fairly simple control loop forever or until it breaks or otherwise stops. MCUs tend to be less expensive than MPUs. It’s not impossible for an MCU to have wireless communications, but remember that an MCU will only run one thread at a time. To be serviced, any other inputs or processes would have to wait for the single thread or control loop to finish what it’s doing first. Microprocessors tend to have many interfaces in addition to the basics like I2C, SPI, or UART. An MPU might also have more complex interfaces like Ethernet, Bluetooth, WiFi, Flash storage, etc.
Another type of chip with a processor is a System-on-a-Chip (SoC), which is an entire system on a single integrated chip (IC). An SoC can be based on an MCU or MPU and will provide everything that’s necessary to perform certain types of applications. For example, for image processing, an SoC might have a combination of an MPU, a Digital Signal Processor (DSP), and/or a Graphic Processing Unit (GPU) for performing rapid algorithm calculations, along with on-chip interfaces for driving a display and an HDMI or other audio/video input/output technology. SoCs enable an entire system of chips on a single, tiny IC.
It’s getting harder to tell if a device is an MCU or an MPU because MCUs can do so much these days, including more sophisticated peripherals. The difference between MCUs and MPUs is becoming less pronounced since some MCUs now come with simple software drivers for more sophisticated peripherals and more MPUs can be found that have integrated peripherals on-chip.
References/Suggested Reading:
PIC24FJ64GB004 Family Data Sheet
The difference between microprocessors and application processors
MCUs vs MPUs: Choose the right one for your industrial application
Siavosh Kasravi says
The fact that micro controllers can’t multi-thread or multi-task or run an OS is not completely correct.
Galal says
Agree
Mal com says
Why say so?
mikey says
Because it’s got everything a OS will need to run on, (minimalist requirements) offcource.
James Bronson says
Very correct. Most MCUs and MPUs could and did run various UNIX flavors that could and did from DAY 1 multitask. In 93 I RAN Linux on a Motorola controller chip. In fact I am not aware of multi core chips until after 2000 although Many of the UNIX flavors had muliple sockets for MPUs as that was the main method to have more than one core was more than one chip thus more sockets. A company called Corallary made a 4 socket Motherboard for the intel 486. Hertz car rental used a few of those at the main office runing UNIX to connect every terminal in evey location worldwide. Also the term Thread is so mis understood so misused. Anyway the Motorola 8800 ran Linux in 93 as did the motorola 88000 MPU. It multitaked very well.