Microprocessor vs Microcontroller
These two terms are used interchangeably in casual conversation — but they describe fundamentally different devices. Choosing the wrong one for a project wastes money, PCB space, power, and development time.
Learning Objectives
- Distinguish an MCU, application processor, SoC, and processor module.
- Identify external memory, power, clock, and boot requirements.
- Choose a device class from latency, power, software, memory, and cost needs.
- Verify the choice with the exact device documentation.
The Core Distinction
A microprocessor usually means a processor intended to use substantial external memory and system support. Modern application processors are SoCs and often integrate GPUs, memory controllers, and peripherals, so “CPU only” is a historical contrast rather than a universal definition.
A microcontroller is a complete computer on a chip. CPU, memory, and peripherals are all integrated into a single package.
An application-processor system commonly needs external DRAM, boot storage, several power rails, and controlled PCB routing. A microcontroller still needs proper decoupling, reset and boot strapping, and sometimes an external clock or programmer.
Inside a Microprocessor
A microprocessor contains only the processing core:
Historically, RAM, ROM, timers, and communication peripherals were external. Current application processors frequently integrate many peripherals and controllers but still rely on external DRAM and boot storage. Inspect the selected part's block diagram.
Inside a Microcontroller
A microcontroller integrates everything onto one die:
One chip. One package. Directly programmable. This is why microcontrollers dominate embedded design.
The Spectrum From MCU to MPU
It is not a binary choice. There is a spectrum:
The boundary blurs around memory scale, integration, and software expectations. An MMU enables the process isolation and virtual memory expected by mainstream Linux distributions, although Linux variants can run without one.
Key Differences Table
| Feature | Microprocessor | Microcontroller |
|---|---|---|
| CPU | Yes | Yes |
| RAM | External | On-chip (SRAM) |
| Flash / ROM | External | On-chip |
| Peripherals | External chips | On-chip (GPIO, UART, ADC...) |
| Clock speed | MHz to GHz | MHz to hundreds of MHz |
| Power consumption | Watts | Milliwatts to microwatts |
| Cost | Higher (+ external chips) | Lower (single chip) |
| PCB complexity | High | Low |
| OS | Full OS typically | Bare-metal or RTOS |
| MMU | Usually present in application processors | Usually absent; an MPU is more common |
| Typical use | PC, phone, server, HMI | Sensor nodes, actuators, appliances |
| Examples | Intel Core, ARM Cortex-A | AVR, PIC, STM32, ESP32 |
Memory Map: Microprocessor vs Microcontroller
On a microprocessor system, external chips occupy regions of the address space — the CPU sees them as memory:
On the microcontroller, everything is on-chip. On the microprocessor, external chips must be mapped into address space — requiring address decoding logic on the PCB.
How Peripherals Connect: The Bus Architecture
Inside a microcontroller, peripherals are not randomly connected — they sit on internal buses with different speeds:
Many MCUs gate peripheral clocks to save power. Access while gated is device-specific: writes may be ignored, retained, or cause a bus fault. Follow the reference manual's enable sequence and read-back requirements.
When to Choose Each
Real-World Examples Side by Side
| Project | Device | Why |
|---|---|---|
| Thermostat | STM32L0 MCU | Reads one sensor, drives one display, battery powered |
| Washing Machine Controller | PIC18F MCU | Fixed program, motor + sensor control, cost sensitive |
| Industrial Robot Joint | STM32H7 MCU | Fast PWM, encoder reading, deterministic real-time |
| IP Camera | ARM Cortex-A (MPU) | Linux, H.264 encode, network stack, file system |
| Smartwatch | nRF52 MCU + app processor | MCU for BLE + sensors, MPU for display/UI |
| Car Engine ECU | Renesas RH850 MCU | Functional safety, real-time sensor fusion, no OS overhead |
Worked Selection Example
A battery sensor samples at 1 kHz, runs a small filter, transmits once per minute, and must wake in under 100 µs. It needs neither Linux nor a display.
- Deterministic sampling and fast wake favor an MCU.
- Estimate memory from code, stack, and buffers; do not choose by frequency alone.
- Check sleep current, ADC behavior, DMA, and worst-case active current.
- Confirm package pins, toolchain support, and lifecycle.
An MPU can perform the computation, but DRAM refresh, boot time, and multi-rail power work against these requirements.
Common Mistakes and Practical Checks
- Choosing by MHz: measure workload latency and energy per task.
- Calling a module an MPU: separate chip, SoC, and module requirements.
- Assuming integration removes support parts: verify decoupling, reset, clock, boot, and programming circuits.
- Assuming every MCU is deterministic: include wait states, DMA contention, caches, and interrupt priority.
- Choosing Linux late: decide early whether process isolation, storage, networking, and updates justify an MPU.
Summary
- A microprocessor is a CPU only — it needs external RAM, Flash, and I/O chips to form a working system
- A microcontroller integrates CPU + RAM + Flash + peripherals on one chip — ready to use with minimal external components
- Microcontrollers dominate embedded design: lower cost, smaller PCB, lower power, simpler development
- Microprocessors (application processors) are used when Linux, rich UIs, or heavy computation is needed
- The choice of MCU vs MPU determines your entire hardware and software stack
- Inside a microcontroller, peripherals sit on internal buses (AHB/APB) — you must enable clocks before using them
Explore a Linux environment — the same shell tools you would use on an embedded Linux system running on an application processor.
Open Linux Browser Lab →
Next: Microcontroller Internals
Further Reading
- Arm, Cortex-M for Beginners
- STMicroelectronics, STM32F103x8/xB datasheet
- NXP, i.MX 8M Mini datasheet