TL;DR: The difference between microcontrollers and microprocessors are myriad. However, what you need to remember is that microprocessors are more versatile but need sophisticated circuitry. In contrast, microcontrollers are application-specific but are very simple to use. For instance, ARM is famous for microcontrollers. Whereas Intel is renowned for microprocessors.
Which is better: Microcontroller or microprocessor?
Neither. This is an incorrect comparison. Both a microcontroller and a microprocessor fill different requirements in the embedded system ecosystem. Both have their merits and demerits. You have to make a decision depending on your personal needs. And your systems requirements.
Does a microcontroller contain a microprocessor?
Well, yes and no. There’s some nuance to it. A microprocessor contains a processing unit. However, in addition to that, it also consists an ALU, a stack pointer, a program counter, and so on. In short, a microprocessor is a complete functional CPU. Whereas, a microcontroller has a processor inside it. It does not have a fully-functional CPU as part of its internal circuitry.
What are the advantages of a microcontroller over a microprocessor?
A comparison between a microcontroller and a microprocessor is not fair. However, there are certain advantages that a microcontroller offers over a microprocessor. Suppose that after evaluating your needs, if you have a choice between choosing a microprocessor and a microcontroller. You should select the microcontroller. Here’s why:
- A microcontroller is cheaper. Including it in your project will reduce the overall cost of your venture considerably.
- A microcontroller is more compact than a microprocessor. It packs most of the peripheral systems it needs on the chip itself. For instance, the ROM, RAM, IO units, etc. are prepackaged unto the die. This makes your project more compact and easier to carry.
- A microcontroller is faster in terms of communicating with the peripheral devices because of the same reason as above.
- Building on the same form factor advantage, a microcontroller is also more efficient. It consumes way less power than a microprocessor. There is no power overhead since there aren’t many external devices to power. Moreover, modern microcontrollers have power-saving features.
- A microcontroller is less complex than a microprocessor.
Is the Arduino a microcontroller? What is the difference between an Arduino and a microcontroller?
The Arduino is a development board. It has two microcontrollers embedded on a single chip. It is also known as a system on a chip (SoC). The two microcontrollers include the main brains of the board, the ATMega328P, and another one that controls the USB interface. Most students confuse the Arduino to be a microcontroller or a microprocessor. That is wrong. Arduino is, in fact, a brand name. In fact, the Arduino Uno and the Arduino Nano are development boards that are built around their respective microcontrollers. A development board is equipped with all the necessary components for a user to just plug it in and play around with it. It has onboard LEDs, IO pins, a robust power system, and so on.
What is a microcomputer, and how does it differ from a microprocessor and a microcontroller?
A system built around a microprocessor that can be readily used as a personal computer is known as a microcomputer. The thing is, modern processors, microprocessors, microcontrollers, SoCs, and development boards are coming out with a tonne of features. The differential lines between these technologies are continually blurring and shifting. Don’t get too caught up in the semantics of what something is called. As technology progresses, the definitions might keep on changing. There are tens of thousands of CPUs, processors, and SoCs out there. What matters is how efficiently you are able to define your purpose. And make a selection that aligns with your goals.
What is the difference between a microcontroller and a microprocessor? (Tabulated)
|A microcontroller can work as a standalone system||A microprocessor needs additional peripheral components and cannot function on its own|
|Microcontroller’s processing is slower. With speeds in the MHz.||Modern microprocessors are extremely fast with speeds in the GHz.|
|A microcontroller is used in application-specific areas. This means that it is designed with a specific range or particular application(s) in mind.||A microprocessor has a wide range of uses and is highly configurable by the system designer.|
|It is cheaper.||It is more expensive.|
|A microcontroller has onboard RAM, ROM, I/O units, timers, etc.||A microprocessor doesn’t have additional onboard components.|
|Since everything is on board, the complexity is less.||Microprocessors are more complex to use because you have to set up the peripheral components.|
|Due to the simplicity of the circuit, the power consumption is low in microcontrollers.||Since the complete systems that we build around a microprocessor involve many components, the power consumption of the system increases drastically.|
|The processing speed difference is generally decreased by two main facts: A microcontroller has more registers, and since every peripheral system is built in the speed increases.||The microprocessor is slower in these two areas. Most operations find storage in memory. Additionally, the communication with components is slower since they are external to the microprocessor.|
|Since the microcontroller is application-specific, it has a smaller instruction set.||Since the microprocessor is built to be a powerhouse that can do many general-purpose tasks, its instruction set is complex.|
|Along the same lines, the instruction set of a microcontroller is good at handling input and output operations. Consequently, it offers bit as well as byte handling instructions.||The microprocessor can handle large amounts of data. So its instruction set has powerful addressing modes to access data from memory and other instructions to handle large data volumes.|
|Example: 8051. Used in commercial appliances.||Example: 8085. Used in general-purpose computing.|
Some additional types of computing devices
We are going to take a last gander at some more computing devices and clarify their features. Because these terminologies get confusing.
- This is a general alternative term for microcontrollers.
- These are generally up to 32-bit devices. We are yet to see a 64-bit microcontroller mainly because that is a domain that is captured by microprocessors.
- These are used in things like household items like microwaves and the likes.
- Examples: 8051 (why is this still used btw?), SDK 85/86, etc.
- If we scale slightly upwards from microcontrollers, we get minicomputers.
- These are faster than microcomputers but slower than mainframe computers.
- Minicomputers generally include devices between 32 to 64-bits. However, they have less memory than mainframe computers.
- Business application computers like servers are known as minicomputers.
- However, no one uses the term minicomputers anymore. They are more aptly known as servers.
- If we scale even higher up from servers, we get mainframes.
- These are extremely powerful computers that have more than 64-bits of memory.
- They can fill entire rooms with their massive builds.
- Mainframes have massive amounts of memory.
- Mainframes find applications in the defense sector.
- Example: IBM 4381
- These are the fastest computers ever built.
- They have more than a few processors.
- There are very few of these in the world.
- Generally, we use MIPS (millions of instructions per second) to gauge the computing powers of computers. However, to measure a supercomputers’ performance, we use FLOPS (floating-point operations per second).
- Example: Tianhe 2, IBM’s Summit, and Sierra.
Additional suggested reading: Chapter 2: Fundamental Concepts (Embedded Systems – Shape The World)