Ahh that age old college question… is Arduino a Microcontroller or Microprocessor. Many students have drunkenly fought to the death arguing over such terminology.
At a glance one might assume that a microcontroller and microprocessor are the same thing, they sound very similar after all.
However despite only being subtly different terms, they are actually quite different things.
And my controversial answer to the question in hand is actually that Arduino is neither a microcontroller or microprocessor. In this article we find out why and also what exactly an Arduino is, so let’s get into it!
First, let’s take a look at exactly what a microcontroller and microprocessor are.
- What Is A Microcontroller?
- What Is A Microprocessor?
- What Is The Difference Between A Microprocessor And Microcontroller?
- Why Is Arduino Not A Microprocessor Or A Microcontroller?
What Is A Microcontroller?
A microcontroller (also known as a microcontroller unit or MCU) is a single Integrated Circuit (IC) that is normally used for a single application and intended to perform certain functions.
Appliances, power tools, automotive engine control systems, and computers are all examples of products and devices that must be automatically controlled in particular conditions, but microcontrollers can be used for much more.
In essence, a microcontroller collects data, processes it, and then performs a specific action based on the data collected.
Microcontrollers typically operate at lower speeds, in the 1MHz to 200 MHz range, and must be engineered to consume less power because they are embedded inside other devices that may demand more power elsewhere.
A microcontroller is a single-chip IC that has a CPU, read-only memory for storing the program, RAM for storing variables used in the program execution, and several I/O buses for connecting to the outside world, such as SPI, I2C, and UART.
Without being programmed via an external interface to a PC, it cannot execute any applications on its own. Although some microcontrollers require an external crystal to provide a clock, others contain an internal clock.
What Is A Microprocessor?
A microprocessor is an electrical component found inside computer systems and it is the central processing unit which executes the programmed instructions.
It’s is generally manufactured on a single integrated circuit chip that is made up of millions of tiny components like transistors, resistors, and diodes that all function together.
Several chips were required for some microprocessors in the twentieth century. Microprocessors assist with everything from elevator control to web searches.
Every action a computer takes is described by computer program instructions, which are executed millions of times per second by microprocessors.
Most microprocessors do not have read-only memory on the chip; instead, the first boot code is stored on an external chip on the motherboard.
This is known as the Basic Input/Output System (BIOS) on Intel-based PCs, and it includes I/O procedures in addition to the initial boot code.
The boot code begins by performing a Power-On Self-Test (POST) and then looks for a hard drive, CD, or floppy disk from which to load the next stage of the boot code.
The operating system is then loaded during the second level boot. Unlike microcontrollers, which run their programs from read-only memory, microprocessors load their programs into external RAM and run them from there after booting up.
What Is The Difference Between A Microprocessor And Microcontroller?
A microprocessor is the central processing system, which performs the actual computing operations but it lacks the additional functionality to make a complete functioning system.
Microprocessors need to be electrically connected to external memory devices like RAM, ROM and data storage devices. They even need additional circuitry to support input output operations.
Microcontrollers tend to be smaller and less powerful, therefore they suit smaller applications that require less power. Where a microprocessor might be found in a PC, a microcontroller might be found in a pocket calculator.
However microcontrollers have one great benefit, that is all of the required systems including memory, input output and program storage can be found on a single chip.
The following diagram shows the main difference between a microcontroller and microprocessor.
At this stage it may be clear to you that a microcontroller is the perfect choice for Arduino, and you would be correct! It has everything needed for Arduino in a single chip and ample processing power for the type of projects one would use it for.
However by definition it not correct to say that Arduino is a microcontroller, let’s find out why…
Why Is Arduino Not A Microprocessor Or A Microcontroller?
The Arduino boards are usually based around Atmel microcontrollers such as the ATMega328. Therefore we can absolutely say that Arduino uses a microcontroller.
In fact Arduino absolutely requires a microcontroller in order to function. The program written with the Arduino IDE is converted into binary and saved on to the microcontroller’s onboard flash memory.
However the Arduino also requires many other components in order to function, some of which are just as important as the microcontroller itself.
In order to better understand, let’s take a look at the schematic for the classic Arduino UNO.
You can take a closer look at the Arduino UNO schematic here in PDF format and you will notice the ATMega328 microcontroller along with a whole host of other components!
There is one other thing I want to draw attention to, component U3, an ATMega16U2, another microcontroller! So the Arduino UNO actually has two microcontrollers onboard, circled below in red.
Arduino itself is far more than just the main chip that executes and controls the program. It is also far more than just the hardware, the Arduino board.
Arduino defines all of the hardware compatible, both original and clones, the software environment and even the community.
Even if we are just discussing the hardware, a fully functioning Arduino requires at least one and maybe several microcontrollers plus supporting components for powering it, supplying a clock signal to the microcontrollers and even to give it the ability to blink an onboard LED.
In this article we have discussed and understood the differences between a microcontroller and microprocessor.
We have also studied the Arduino schematic and learned that the Arduino uses one or several microcontrollers in its design.
The quick and simple answer to the question is that Arduino is neither a microcontroller or microprocessor. However it utilises one or even several microcontrollers within its design along with many other components in order to function.
A microcontroller is simply just another electronic component and an electronic device will always require many different components in order to function correctly.
Want to learn more about Arduino? …check out this link!