Microprocessor vs Microcontroller vs System on Chip

 Hi Tinkerers!

So today I am going to talk about microcontrollers.


 Microcontrollers are prime component while designing an IoT environment. A microcontroller is a compact computer on a single integrated circuit, designed to execute specific tasks based on programmed instructions. Basically it has CPU(Central processing unit), volatile and non volatile memory, input/output peripherals and communication interfaces.  Micro controllers are different from microprocessors. Microprocessor  can fetch instruction from memory execute them depending upon the inputs. On a simple note ,it can process. So a computer cannot work without a microprocessor. Unlike microcontrollers, a microprocessor does not have built-in memory or peripherals. Microcontrollers are not just an enhanced version of microprocessors but they are developed for different purposes. Microprocessor is an integrated circuit that requires rom, ram, timers externally. So here microprocessors become more flexible as the memory size, what type of peripheral must be added is all configured by the developer. Whereas Microcontrollers are fixed. 


Von Neumann and Harvard Architecture:

Von Neumann architecture is all about storing program instructions and data in main memory and fetching and executing in the processor when required. The buses connect the memory and processor. We have the data bus to fetch the data stored in the memory. Address bus is used to fetch the the address of the next instruction that is about to be executed. Control bus synchronizes the entire  process. Secondary storage is also present.

Harvard architecture is about having separate memory for data and program instructions. We have dedicated address and data buses to connect them separately to processor.

Most of the microprocessors have Von Neumann architecture and microcontrollers follow the Harvard architecture. There are exceptions too.


Where do we use microprocessors & microcontrollers?

While we buy laptops, we buy depending upon the micro processor that is being used. Right now ,the popular microprocessors that are being used  belong to Intel and AMD.
Depending upon the usage , like for gaming : Ryzen 77800X3D or  Core i5-13600K is a better choice. When we talk about smart phones , here we mostly use both microcontrollers and micro processors.  Some of the most common microcontrollers that are being used  are ARM Cortex-M,STM32F0x8 and ARM7.  The main processor is a microprocessor which are connected to the peripherals via buses. Both microcontrollers and microprocessors are found in a phone but the main processing  is chosen to be a microprocessor as it  provides more flexibility. For other aspects like power management, sensrors we use microcontrollers. Most of the time we call them as a System on Chip rather than differentiating them as a microprocessor or a micro controller.


Microprocessor:

          

Microcontroller:




What is System on Chip?

Literally, a system on chip contains all the required components into one single chip. The components that are present in a SoC are
  • Data processing unit
  • Embedded memory
  • Graphic Processing Unit
  • Video  and Audio processing
  •  USB interfaces

As far as i have researched, i have found out that the term SoC mostly refers to an a group of CPU's, memory, microcontrollers, DSP's, accelerators and all the supporting hardware components. Basically when the complexity  is too much to be handled by a microcontroller, an SoC is being used. One of  the key difference between an Soc and a microcontroller is that the former has an Operating System whereas the later does not have one. Some examples of Soc's are Cypress PSoC, Qualcomm Snapdragon.






Coming back to microcontrollers, most of the time we use microcontrollers while we develop IoT solutions. Some of the basic examples of microcontrollers are ATMega, Intel MCS-51, ARM and so on. Using these microcontrollers ,;development boards such as Arduino, ESP32, ESP 8266 and many more are developed.


Development Boards:

Generally a development board compromises the following:
  • Microcontroller
  • Power circuit to provide stable DC supply to the board
  • Buttons, Switches
  • LED's
  • I/O pins
  • ADC
  • PWM
  • Communication pins
  • Operating System
  • Programing interface
Features of development board include
  • Connectivity support --> Zigbee, Wifi
  • Peripheral Capabilities -->UART,SPI
  • Memory
  • Processing power







Comments

Post a Comment

Popular posts from this blog

Introduction

ESP32: Blinking an LED