What are Microcontrollers?

Microcontrollers are integrated circuits that are designed to control a specific operation within an embedded system. A microcontroller is entirely self-contained and includes a processor, memory, and input/output functions on a single chip. In that sense, they are essentially mini personal computers that are designed to control a particular feature within a larger system. Microcontrollers come in different levels of processing complexity and cost, with different bus-widths, such as 8-bit, 16-bit or 32-bit.

Virtually all electronic devices contain microcontrollers, from medical devices to mobiles, robots, home appliances, vending machines, and automotive. For example, inside a car, each electronic control unit will contain microcontrollers to control a different aspect of the vehicle, such as suspension control, the anti-lock braking system, or infotainment.

What are the core components of a microcontroller?

For every microcontroller, there are three core components. They are:

  • The CPU, which is essentially the brain of the microcontroller. The CPU reads, decodes, and executes the instructions to perform the specific operations of the microcontroller.
  • The memory, which can be split into two types: program memory and data memory. Program memory contains the instructions that are to be executed by the CPU. Whereas data memory stores the temporary data while the instructions are being executed.
  • The I/O ports, also known as input/output ports, provides the interface for the microcontroller to the external portions. Once data is received from the input devices, appropriate instructions and gives a response through the output devices such as displays, printers, etc.

Alongside these core components, there are other areas of a microcontroller of seen as ‘core’ and can be considered as supporting components. These include:

  • The System Bus is a group of connecting wire that connects the CPU to other peripherals of the microcontroller like memory, I/O ports, etc.
  • Timers or Counters provide time delays and the counting of external events. They can also provide actions such as clock control, pulse width modulation, etc.
  • ADC (Analog to Digital Converter) is a circuit that does what it says on the tin – it converts analog signals to digital. This forms the interface between the external analog input devices and the CPU of the microcontroller. Most sensors are analog devices and the data from these sensors typically need to be converted to digital for the CPU to understand.
  • DAC (Digital to Analog Converter) works the opposite way that the ADC does – converting digital signals to analog. This would be used to form a bridge between the CPU and all external analog devices.