Introduction to Microcontrollers
What is a Micro-controller?
A microcontroller (abbreviated μC or MCU) is essentially an entire computer system on a single, tiny microchip! While not as fast or powerful as your desktop or laptop computer, a microcontroller excels at being very small, very inexpensive, and can operate on very little power (great for battery-powered devices).
Microcontrollers are the heart of what’s called “Embedded Computing” – a term used to describe using these tiny computers inside everyday things to make them “smart” – things like microwaves, cars, cellphones, TVs, and so on.
A microcontroller has many subsystems on board it’s tiny little chip. The central part is the microprocessor core – it’s the brain of the computer that carries out program instructions. Other subsystems include:
- RAM (Random Access Memory) – where the software can store data temporarily. This memory is lost when the power is turned off, so it’s usually used to store information that the program generates as it runs through it’s instructions.
- Flash memory – where the software program is stored. This memory is not lost when the power goes off. It is similar to the SD card in your smartphone or digital camera.
- EEPROM (Electroniclly Eraseable Programmable Read Only Memory) – a special type of memory that can retain data after the power is turned off. This is a good place to store things like configuration settings, that need to be remembered for next time the system is powered up. It only stores data, not program code.
- IO (Input/Output) Systems – this is how the microcontroller communicates with the outside world. There’s many different types of I/O, such as digital (1s and 0s), analog (variable voltage), PWM (Pulse Width Modulation) which falls somewhere between digital and analog, and many types of computer protocols like Serial, I2C, Parallel, CAN, 2WI, and more.
You don’t need to worry about all these just yet. As we start to look into different brands and variations of microcontrollers, you’ll notice that the reason there are so many different microcontroller choices is that they all come packaged with different combinations of subsystems, or are made to run with different power requirements or at different speeds.
What’s an Arduino? Isn’t that a Microcontroller?
An excellent question! Many people have heard about the Arduino (pronounced arr-duee-no) and may have heard them called a microcontroller, but actually, Arduinos encompass much more than that.
The Arduino is a full development system, or prototyping system. It includes a complete circuit board and support hardware to help make using the microcontroller easier. Some things that the Arduino provides to help you out:
- Voltage regulators: help provide clean, stable power.
- Timing oscillators: There is a 16MHz quartz crystal oscillator to give the USB controller an accurate, stable time base; and a 16MHz ceramic oscillator for the main microcontroller clock.
- USB interface: allows you to plug the Arduino into your PC to download your programs. It can also provide power to the Arduino. Includes the USB connector, a
- USB controller (which is a separate microcontroller), transmit/receive status LEDs, and the 16MHz timing crystal.
- Power Plug – to plug into a wall adapter for power.
Reset switch, and a test output LED: Convenient items to include on a prototyping board.
- Stackable “headers”: these rows of connectors make it easy to plug in additional add-on daughter boards (called “Shields”). These allow you to easily expand and customize the features of the Arduino.