Menu
Microcontrollers

MC68HC11 microcontroller

First, lets define the difference between an MPU and a CPU. Back when a computer filled an entire room and was built on a main frame, the part of the computer that did the actual processing was called the Central Processing Unit (CPU). Eventually the CPU was shrunk down to a printed circuit board, referred to as the Mother Board. The part of the computer that does the actual processing was integrated into a single integrated circuit (IC) called the Microprocessor.

Microprocessor

A microprocessor (sometimes called MPU for microprocessor unit) is an IC that contains only a central processing unit (CPU). A microprocessor generally does not contain I/O (input/output) circuitry or memory (RAM, ROM). An example of a microprocessor is Intel’s Pentium. However a modern microprocessor IC usually does contain some cache memory (integrated memory to speed up main memory and storage device access) and I/O such as integrated audio and video circuitry.

A microprocessor would generally be used in a general-purpose system such as a desktop PC, laptops, notepads etc. A device that has an operating system that can load a variety of different software applications from storage media.

Microcontroller

A microcontroller (sometimes called MPU for microcontroller unit) is an IC that contains a microprocessor as well as certain amount of RAM, ROM and general I/O ports. Engineers design microcontrollers into specific-purpose devices such as microwave ovens, cars, washing machines, refridgerators, and even space probes. Such a device is often referred to as an embedded system. A microcontroller can be programmed before being soldered to a PCB (printed circuit board), or the PCB have a port through which the microcontroller can be programmed.

There's no reason why a microprocessor along with some external memory and I/O circuitry couldn't be used as a general-pupose microcontroller, and the Motorola 68000 microprocessor was often used for that. There's no reason why a microcontroller couldn't be used to make a general purpose device such as a personal computer. And the Broadcom BCM2835 (which they prefer to call System-on-a-chip (SoC) rather than a microcontroller) is used for that in the Raspberry Pi.

One of the most popular families of microcontrollers is Microchip's PICs. PIC devices range from 8-pin DIP chips up to 100-pin SMD chips, with discrete I/O pins, ADC and DAC modules, and communications ports such as UART, I2C, CAN, and even USB.

PIC10F200 microcontroller

The PIC10F200 is a low-cost, high-performance, 8-bit, Flash-based CMOS microcontroller. It employs a RISC architecture with only 33 single-word / single-cycle instructions. All instructions are single cycle (1 µs) except for program branches, which take two cycles. The easy-to-use and easy to remember instruction set reduces development time significantly.

PIC10F200 block diagram
PIC10F200 microcontroller block diagram

For programming PIC microcontrollers have an integrated In Circuit Serial Programming (ICSP) port. Unfortunately, most modern computers do not have a serial port. You can purchase a USB to serial port converter cable, or better yet, get a CanaKit USB PIC Programmer.

USB PIC Programmer
USB PIC Programmer

The CanaKit USB PIC Programmer has ZIF (Zero Insertion Force) sockets for all DIP sizes from 8 to 40 pin and can program all popular PIC Microcontrollers including the PIC16F84, PIC16F628, PIC18F458 and PIC16F877. This Programmer uses a USB port for connection to the computer Windows programming software fully supported by Microchip is included.

Arduino

Arduino project circuit board
Arduino UNO with USB Cable

Arduino is a project circuit board used for building microcontroller projects. Arduino is popular with people just learning microcontroller programming. It uses a USB cable to connect to your computer. It provides an IDE (Integrated Development Environment) software that runs on your computer that is used to write and upload code to the project board. The Arduino IDE uses a simplified version of C++, making it easy to learn to program.

ATMEGA 328 microcontroller pinout
ATMEGA 328 microcontroller pinout

Arduino uses the ATMEGA 328 microcontroller which has analogue to digital converters (ADCs) to sense voltages and also has Pulse-width modulated (PWM) outputs and digital I/Os.

Raspberry Pi

Raspberry Pi bare-bones desktop
Raspberry Pi 100437 Desktop

The Raspberry Pi is actually a tiny bare-bones computer motherboard. It doesn't come with a hard drive or even a case. It has a RCA video port which can be connected to your TV, USB port for a keyboard, USB port for a mouse, and the model B even has an Ethernet port. It uses a Broadcom 700Mhz BCM2835 System-On Chip and Boots from SD card running a lightweight Remix of Fedora Linux for ARM.

You can set up the Raspberry Pi as a desktop PC to do spreadsheets, word-processing, internet browsing, but one of its best features is the row of GPIO (general purpose input/output) pins along the edge of the board, which you can program to work like a microcontroller to monitor input from a switch or sensor, and to control devices that are attached to it, or even to sending a signal or data to another device.

More Computer Architecture Articles:
• Challenges of Programming Multicore Systems
• CPU Process Memory Address Binding
• Oscilloscope Required for Serious Digital Electronics Work
• Operating System Memory Paging
• Introduction to Computer System Main Memory Operation
• Microprocessor Counter, Clock, Timer Circuits
• Logical Versus Physical Memory Addresses
• Microcontroller's Parallel I/O System
• Digital Logic Levels and Transfer Characteristics
• Operating System Memory Protection in a Paged Environment