Welcome back, curious minds! In our previous article, we introduced microcontrollers, their constituent elements, and how they work. In this post, we delve deeper into microcontrollers. We’ll be looking at the types of microcontrollers and their uses and applications. Let’s dive in and get going!
Types of Microcontrollers
There are many different types of microcontrollers. We’re going to classify them in seven categories: architecture, data bus/width, performance, peripherals, memory, family/vendor, and application domain.
Based on Architecture
The architecture of a microcontroller is it’s internal hardware design, and it defines the specialty of the microcontroller. All microcontrollers use one of two basic design models: Harvard Architecture or von-Neumann Architecture. They represent two different ways of exchanging data between the microcontroller’s CPU and memory.
- Harvard Architecture: This executes instructions in a single machine cycle. It’s design is such that there is a separate bus line (an electronic pathway through which data can be transferred) and memory storage for program code (instructions), program memory, and data memory, respectively. It has a higher cost due to its complex design.
![](http://aclghana.net/wp-content/uploads/2024/04/image-1.png)
- von-Neumann Architecture: In this design, a single memory serves for both program and data storage. It requires two machine cycles to execute an instruction. This design dominates the architectural landscape of computers, desktops, and laptops worldwide. It has a lower cost compared to Harvard architecture because of its simple design and usage of a single bus.
![](http://aclghana.net/wp-content/uploads/2024/04/image.png)
Based on Data Bus (Width)
A data bus dynamically enables communication pathways, facilitating seamless data transfer between various components. The bus width, measured in bits, dictates the volume of data accessible or transmissible at any given moment.
- 8-bit microcontroller: An 8-bit MC has an 8-bit CPU, meaning that it can transfer and process information of 8 bits in a single cycle. When the data to be transferred or processed exceeds 8 bits, it undergoes multiple cycles to complete the task. This results in subpar performance. Thus, 8-bit microcontrollers find application in straightforward embedded systems like home appliances, toys, and basic consumer electronics, where extensive processing power is unnecessary.
- 16-bit microcontroller: This has a 16-bit CPU, transferring and processing data of 16 bits in a single cycle. It is more efficient in its performance as compared to the 8-bit microcontroller. 16-bit microcontrollers allow for more precise control and processing capabilities while still being relatively cost-effective. They are suitable for automotive control systems, smart sensors, and small-scale embedded devices that require moderate processing power and efficiency.
- 32-bit microcontroller: A 32-bit MC has a 32-bit CPU, offering significant improvements in performance, memory size, and data handling capabilities over 8-bit and 16-bit MCs. 32-bit MCs are often used in high-end applications that require high processing power and complex data manipulation. These include personal computers, workstations, servers, advanced automotive control systems, and smart home devices. The downside is that they are quite expensive and consume a lot of power.
Based on Memory
A microcontroller’s memory is the electronic holding place or storage for data and instructions. Microcontrollers can be categorized based on their memory into two main types:
- Embedded memory microcontroller: This is a type of microcontroller that integrates memory directly onto the chip rather than requiring separate external memory components. This embedded memory actively stores program code, data, and other crucial information essential for the microcontroller’s operation. Additionally, timers, counters, interrupts, and other components are seamlessly integrated into the microcontroller as a single package. They are commonly used in embedded systems and applications where space constraints or the need for compact designs are critical conditions.
- External Memory Microcontroller: This type of microcontroller relies on separate external memory components to store program code, data, and other essential information. External memory microcontrollers are widely used in applications where the memory requirements exceed the capacity available on-chip or where flexibility in memory configuration is necessary.
[Visit the previous article for the different types of memory.]
Based on Performance
The performance of microcontrollers is their ability to execute tasks efficiently and effectively within a given application. The factors that influence the performance of MCs include the processing speed of the central processing unit (CPU), the amount and speed of memory available, the efficiency of input/output (I/O) operations, and the overall architecture of the microcontroller. We can categorize microcontrollers based on their performance as follows:
- Entry-level microcontrollers: Entry-level microcontrollers typically have slower processing speeds and limited memory capabilities, making them suitable for basic control tasks with minimal processing needs. They are commonly employed in cost-sensitive applications like consumer electronics, household appliances, and rudimentary automation systems.
- Mid-range microcontrollers: These offer a balance between performance and cost. They have moderate processing speeds and memory capacities, making them suitable for a wide range of applications with moderate processing requirements. They are commonly used in industrial control systems, automotive applications, and medical devices.
- High-Performance microcontrollers: High-performance microcontrollers are designed for demanding applications that require fast processing speeds and large memory capacities. They feature powerful CPUs with high clock speeds, ample memory resources, and advanced peripherals for efficient data processing and communication. They are used in high-speed communication systems, advanced robotics, aerospace systems, and complex industrial automation.
- Specialty microcontrollers: These microcontrollers are optimized for specific applications or industries, offering unique features and capabilities tailored to particular requirements. Examples include microcontrollers designed for real-time control, low-power operation, connectivity (such as IoT applications), automotive safety-critical systems, and more. Specialty microcontrollers may vary widely in performance depending on their intended use case and target market.
Based on Peripherals
Based on the types and complexity of peripherals they integrate, microcontrollers can be categorized as having:
- Basic peripherals: These microcontrollers come with essential peripherals such as GPIO (General Purpose Input/Output), timers, UART (Universal Asynchronous Receiver-Transmitter), and SPI (Serial Peripheral Interface). They are suitable for simple applications requiring basic I/O operations and communication.
- Advanced peripherals: Microcontrollers in this category feature a broader range of peripherals, including ADC (Analog-to-Digital Converter), DAC (Digital-to-Analog Converter), PWM (Pulse Width Modulation), I2C (Inter-Integrated Circuit), and CAN (Controller Area Network). They are suitable for more complex applications that require analog signal processing, communication with multiple devices, and precise timing control.
- Application-specific peripherals: Some microcontrollers are designed with specific peripherals tailored to particular applications. For example, microcontrollers for motor control applications may include dedicated motor control peripherals like PWM channels, encoder interfaces, and integrated H-bridge drivers. Similarly, microcontrollers for audio applications may feature specialized audio processing peripherals such as I2S (Inter-IC Sound) interfaces and DSP (Digital Signal Processor) capabilities.
- Communication peripherals: Another category includes microcontrollers with a strong emphasis on communication peripherals. These may include Ethernet controllers, USB (Universal Serial Bus) interfaces, Wi-Fi, Bluetooth, and RF (Radio Frequency) transceivers. They are suitable for applications requiring connectivity to networks, sensors, or other devices, such as IoT (Internet of Things) devices and wireless sensor networks.
Based on Family/Vendor
Microcontrollers can also be classified based on the manufacturer or specific product family. The following are some of the most popular microcontroller families:
- PIC: PIC is a family of microcontrollers made by Microchip Technology. They are known for their low cost, low power consumption, and ease of use. Examples of PIC microcontrollers are PIC16F877A, PIC18F4520, and PIC12F675
![](http://aclghana.net/wp-content/uploads/2024/04/image-2.png)
![](http://aclghana.net/wp-content/uploads/2024/04/image-12.png)
- AVR: Atmel Corporation (now Microchip) manufactures the AVR family of microcontrollers. They are widely used in hobbyist and industrial applications. Examples of AVR microcontrollers are Atmega328 and ATtiny85.
![](http://aclghana.net/wp-content/uploads/2024/04/image-4.png)
![](http://aclghana.net/wp-content/uploads/2024/04/image-13.png)
- Arduino: Arduino microcontrollers, manufactured by Arduino LLC, are widely used in hobbyist and educational applications. They are known for their ease of use and extensive range of libraries and shields. Examples are Arduino Nano, Arduino Uno and Arduino Mega.
![](http://aclghana.net/wp-content/uploads/2024/04/image-8.png)
![](http://aclghana.net/wp-content/uploads/2024/04/image-7.png)
Other families of microcontrollers are ARM microcontrollers produced by ARM Holdings, STM32 microcontrollers manufactured by STMicroelectronics, MSP430 microcontrollers produced by Texas Instruments, and 8051 microcontrollers.
Based on Application Domain
The classification can also be based on the specific applications they are designed for, such as:
- Consumer electronics: Appliances, entertainment systems, and wearable devices.
- Automotive: Engine control units, safety systems, and infotainment systems.
- Industrial automation: Programmable logic controllers (PLCs), motor control, and monitoring systems.
- Internet of Things (IoT): Smart home devices, environmental sensors, and connected appliances.
- Medical Devices: Monitoring equipment, diagnostic tools, and implantable devices.
- Aerospace and Defense: Avionics, unmanned aerial vehicles (UAVs), and missile guidance systems.
- Robotics: Robotic arms, drones, and autonomous vehicles.
- Education: Educational kits and projects to teach programming and electronics concepts.
ACL’s Microcontrollers
ACL has a variety of microcontrollers in our store. Here is a list of them:
- Arduino LilyPad
- Arduino Mega
- Arduino Nano
- Arduino Nano V3.0 FT232
- Arduino Pro Mini
- Arduino Uno R3
- Atmel ATtiny85
- Atmel Atmega328p
- ESP32
- ESP8266
- PIC16F877A
- Raspberry Pi Pico
Now let’s try grouping them under the various categories:
Architecture | Data Width | Performance | Peripherals | Memory | Family | Application | |
Arduino Lilypad | Von Neumann | 8-bit | Entry to Mid | Application-specific (wearable applications) | Embedded | AVR (Atmel) | General |
Arduino Mega | Von Neumann | 8-bit | High | Advanced | Embedded | AVR (Atmel) | General |
Arduino Nano | Von Neumann | 8-bit | Entry to Mid | Basic | Embedded | AVR (Atmel) | General |
Arduino Nano V3.0 FT232 | Von Neumann | 8-bit | Entry to Mid | Basic | Embedded | AVR (Atmel) | General |
Arduino Pro Mini | Von Neumann | 8-bit | Entry to Mid | Basic | Embedded | AVR (Atmel) | General |
Arduino Uno R3 | Von Neumann | 8-bit | Entry to Mid | Basic | Embedded | AVR (Atmel) | General |
Atmel ATtiny85 | Harvard | 8-bit | Entry to Mid | Application-specific (compact or specialized Arduino projects) | Embedded | AVR (Atmel) | General |
Atmel ATmega328p | Harvard | 8-bit | Entry to Mid | Basic | Embedded | AVR (Atmel) | General |
ESP32 | Harvard | 32-bit | High | Communication | Embedded | ESP (Espressif) | General |
ESP8266 | Harvard | 32-bit | Entry to Mid | Communication | Embedded | ESP (Espressif) | General |
PIC16F877A | Harvard | 8-bit | Entry to Mid | Basic (GPIO), Advanced (ADC, Timer module), Application-specific (CCP module), Communication (UART, SPI, I2C) | Embedded | PIC (Microchip) | Industrial control |
Raspberry Pi Pico | Harvard | 32-bit | High | Application-specific | External | ARM (Raspberry Pi Foundation) | Education, IoT, Embedded Systems |
We’ve come to the end of the microcontroller series. If you have any questions or comments, leave them in the comment section below. Stay tuned for more tutorial posts.
Until next time, stay inquisitive and don’t stop tinkering!