Circuit

The Circuit Boardroom

Electronics discussions and content by electronics hobbyists - for electronics hobbyists.

Menu

Microcontrollers

What Is A Microcontroller?

A microcontroller is a compact microcomputer, often with all components printed on the same circuit board (CPU, RAM, and programmed input/output busses). In essence, it is an entire system on a chip. Microcontrollers are used in a variety of everday electronics -- video players, appliances, automobiles, toys.

Microcontrollers are all-in-one, and whereas microprocessors don't have built-in RAM (at least, non-cache RAM) and are often mounted onto a motherboard which allows them to be adaptively paired with combinations of large amounts of RAM, bus, and hardwired peripheral options. Microprocessors often have more extensive features such as an intelligent cache and an intended systematic architecture platform, where as again, microcontrollers are more self-contained.

Difference Between An Arduino And A Raspberry Pi

In essence, the Arduino is a microcontroller motherboard -- microcontroller is a simple-function control board. The Raspberry Pi is a general-purpose computer, usually pre-loaded with a Unix-style operating system such as Raspian, Noob, or Ubuntu Mate (however, dozens of different OS's are available for the Raspberry Pi). The Raspberry Pi has the ability to run multiple processes simultaneously. It is more complicated to use than an Arduino. The Raspberry Pi has the functionality to operate as an entire micro-computer, whereas the Arduino can only function in terms of one program or process running at a time - it is a true single-threaded platform.

Similarities Between Arduino And Raspberry Pi

Arduino and Raspberry Pi are similar in shape and structure. They are about the size of a deck of cards, both have easily accessible and documented I/O pins -- in the Raspberry Pi they are referred to as GPIO General Purpose Input/Output pins. They both have similar power (usually about 5VDC that be powered through a micro-sd port). They are very popular with experimentors and hobbyists. They both interface through USB ports and both have many types of shields (electronic circuit boards that connect to the main board and append the functionality of the base microcontroller).

Why Are They So Functional Now?

A majority of PC-style Intel-based processors through the 80's and 90's were CICS (Complex Instruction Set Computing). They have higher power requirements and the memory architecture at the time precluded the size necessary for such cheap, small devices. However, with the advent of RISC architecture (Restricted Instruction Set Computing) and the advent of cheaper and smaller memory (and efficiencies in chip manufacturing) the cost of personal electronics plummetted drastically. The use of the ARM (RISC-based) processors allow more powerful processors to work on less power (hence their use almost exclusively in tablets and smart phones). ARM architecture is becoming the new norm, as the speed of current processors allows them to execute the many additional instructions required with RISC processing with little overhead -- the cost is really in code.

Raspberry Pi and Arduino Shields

Shields are another major innovation in microcontroller devices. Because of the exposed pin set on the boards (although they can be spanned with ribbon connectors, when required) it is possible to "plug" other circuit boards onto the main circuit board (hence the name shield, since it plugs onto the device and shields the original board from view. Originally, these sort of modules to computers were called "daughterboards" (they plugged into and took direction from the "motherboard"). However, the term shields is far more popular -- my assumption is the popularity of Captain America in the MCU, but hey, just my theory. Shields can provide a number of plug-on options, such as GPS, sensors, Ethernet connectivity, relay, Bluetooth and even home transmission for remote control (X-Bee shields). And yes, it is possible to "stack" shields, with the limitation of power draw and pin compatibility (there's only so many ways to talk to the serial port before you confuse the poor little Arduino's mind or the Pi's OS).


Raspberry Pi Shield


Arduino Shield


Warning!
When stacking shields onto each other and on their motherboards, always keep aware of how closely you press the shield to the host! Too far apart, and the connections may not take, or be unstable or blinky. Push the shield down too much and the shield underside solder connections may make contact with components or leads on the hosting board. Sheilds are ideally designed *not* to let this happen, but it happens when you are using shields that may have been manufactured with slightly different specs than your motherboard or other shield manufacturers.




Comparison of Various Microcontroller Devices

Device

Cost

Processor Speed

Memory

Connectivity


Ports


Power


Features


Raspberry Pi 2 B+
Raspberry Pi 3 Model B
$35 Quad Core 1.2 GHz (ARM) 1 Gb 10/100 Mbps Ethernet, USB (4), RJ45, HDMI, 3.5 Analog Audio, 40-pin GPIO USB (4), RJ45, HDMI, 3.5 Analog Audio, 40-pin GPIO 5VDC, 330mA 40-pin GPIO, Shields, Many Retail Shield Options
Raspberry Pi 3
Raspberry Pi 2 Model B+
$35 Quad Core 1.2 GHz (ARM) 1 Gb 10/100 Mbps Ethernet USB (4), RJ45, HDMI, 3.5 Analog Audio, 40-pin GPIO 5VDC, 400mA 40-pin GPIO, Shields, Many Retail Shield Options
Banana Pi M3
Banana Pi M3
$80 Octa-Core 2 GHz (ARM), On-Board eMMC 2 Gb 10/100 Mbps Ethernet, 802.11 Wireless LAN, Bluetooth, On-Board IR Receiver USB (4), RJ45, 1 USB OTG, HDMI, 3.5 Analog Audio, 40-pin GPIO 5VDC, 2A 40-pin GPIO, Shields, On Board Camera I/F and IR Interface
Beaglebone Black
Beaglebone Black
$55 1 GHz (ARM) 4 Gb eMMC Flash 10/100 Mbps Ethernet , 802.11 Wireless LAN, Bluetooth USB (1), Mini-USB (1), RJ45, Micro-HDMI, 65-pin GPIO 5VDC, 400 mAh 512 On-Board DDR3 SDRAM, More Interface Capabilities
Arduino Uno R3
Arduino Uno R3
$25 16 MHz 32 Kb Flash RAM, 2 Kb SRAM USB, 14 Pins USB Connection Cord 5VDC, 300 mAh Single-Threaded Instruction, Variety of Standardized Shields and Feature Add-Ons
Arduino Mega 2560 R3
Arduino Mega 2560 R3
$45 16 MHz 256 Kb Flash RAM, 8 Kb SRAM USB, 54 Pins USB Connection Cord 5VDC, 300 mAh Single-Threaded Instruction, Variety of Standardized Shields and Feature Add-Ons
Arduino Mega 2560 R3
Arduino Mega 2560 R3
$45 16 MHz 256 Kb Flash RAM, 8 Kb SRAM USB, 54 Pins USB Connection Cord 5VDC, 300 mAh Single-Threaded Instruction, Variety of Standardized Shields and Feature Add-Ons
Arduino Micro
Arduino Micro
$25 16 MHz 32 Kb Flash RAM, 2.5 Kb SRAM USB, 20 Pins USB Connection Cord 5VDC, 300 mAh Single-Threaded Instruction, Small Size Makes Use In Variety of Applications Effective
Arduino Zero M0
Arduino Zero
$25 48 MHz 32 Kb SRAM, 256 Kb Flash Micro USB (2) USB Connection Cord, 14 I/O Pin 5VDC 32-bit extension on Arduino, Higher Clock Speed, Mdbug Chip, Shields Must Be Limited to 3.3V Pin Voltage