What do you need, a microcontroller or a microprocessor?
The main question revolving around the microcontroller vs microprocessor is – what are you doing?
Let’s start by looking at the main differences between the two. You’ll find that they are used for very different things, and in general you’ll probably find that your project isn’t going to need the horsepower that a microprocessor provides.
What is a microcontroller?
The most popular microcontroller seems to be the Arduino Uno. There’s no questioning why it’s so popular, it’s a very powerful, cheap, easy to use, expandable unit. If you’re looking for more output you may try the Arduino Mega 2560, this is another very powerful unit that provides much more capability for outputting to many devices. You can learn a little more about Arduino products in the Intro to Arduino post.
I use the Arduino Mega 2560 for a weather station that I developed for work, the weather station reads 16 underground sensors, an anemometer, a pyranometer,and a bme280, additionally it sends all of this data via the esp8266 wifi module to a database. I’ll write a post on this soon.
So what is a microcontroller? It is considered a SoC(system on chip), it contains the processing unit, ram, rom, and any other peripherals that the manufacturer chose to add to it. A microcontroller requires no extra circuitry for the devices that control the processing portion of it, because it’s all built in.
This means that if you develop something on your Arduino Uno, you can pull the chip, and build a much smaller project based off of what you developed. This is one feature the Arduino Mega 2560 does not have, but if you’re planning on using that many outputs it’s not going to be a small project anyways.
What is a microprocessor?
A microprocessor is an individual processor, similar to the CPU you have in your desktop computer. Microprocessors are considerably smaller than the average processor you’d see in a computer. A commonly known architecture that uses a microprocessor is the RaspberryPi. These are configurable beyond belief, but that is not thanks to the microprocessor in the system, it’s thanks to the circuitry around it. It would not, however, be able to handle the loads that it does without the microprocessor.
A microprocessor can handle running full operating systems, with multiple threads, multiple cores, and can take quite a beating. That’s where the microprocessor stands out compared to the microcontroller. The full operating system is what makes your RaspberryPi or mBed powered system, like the FRDM-K64F different.
There are all different kinds of microprocessors as well, and different aims for different boards. The FRDM-K64F focuses on an operating system that does not provide a user interface, but provides extreme capability with addons. The RaspberryPi, on the other hand, provides a user interface but is more limited to the addons that are developed specifically for it.
Which one should I use?
That depends on what you’re trying to do. Are you trying to build a smart mirror? Use a microprocessor. Are you just diving into the world of electronics? Use a microcontroller. You should evaluate the project that you’re considering and base the needs off of the needs of your project. Don’t just by a microprocessor because it sounds cooler, they are much more complicated to set up. Most of the time you can get by with a simple microcontroller.