Microcontrollers are the core of embedded systems and can be categorized commonly based on the architecture, data bus width, instructions set, and application scenarios.
If a hardware designer needs to select the microcontroller for an embedded system application, he needs to follow the appropriate procedure to select the right microcontroller for his design and then he can explore the microcontroller types available in the semiconductors market based on the application requirement.
The choice of microcontroller depends on the specific requirements of the application, ranging from simple control tasks to complex computing and connectivity needs.
The microcontroller types are explained below and by going through this blog post an embedded hardware designer will gain knowledge about the various types of microcontrollers based on the embedded hardware design requirement.
Microcontroller Types: Based on Architecture
Microcontroller types can be categorized based on their architecture types, and there are two common architecture types used in microcontrollers; Harvard architecture microcontrollers and Von Neumann Architecture Microcontrollers. Each architecture has its own strengths and weaknesses, making it suitable for specific applications.
Harvard Architecture Microcontrollers
In Harvard architecture microcontrollers, there are two distinct memory spaces: one for program memory (often referred to as Flash memory or ROM) and another for data memory (usually RAM).
The program memory stores the machine code instructions that the microcontroller will execute, while the data memory holds variables and data used by the program.
Harvard architecture microcontroller types have separate buses for fetching instructions from program memory and accessing data from data memory. This separation allows for concurrent access to both program memory and data memory, which can lead to faster execution of instructions.
The below picture shows the architecture of an STM32Fxx ARM® 32-bit Cortex® -M3 CPU where the program memory and data memory are separately shown along with the respective buses.
Harvard architecture ensures that instruction fetching and data access do not interfere with each other, leading to a more predictable and deterministic execution of code.
This predictability and deterministic behavior is important in real-time systems where timing and responsiveness are essential to avoid the deadline missing.
Separate program and data memory spaces can lead to better utilization of available resources.
Some commonly used microcontroller types that use Harvard architecture are:
Von-Neumann Architecture Microcontrollers
In Von Neumann’s architecture microcontrollers, there is a single memory space that stores both program instructions and data. This memory is often referred to as RAM (Random Access Memory).
These microcontrollers typically have a single bus that connects the CPU to the memory, which is used for both fetching program instructions and accessing data.
Program code (instructions) and data are stored together in the same memory space. This means that the CPU can access program instructions and data sequentially from the same memory.
In Von Neumann architecture, when the CPU needs to fetch an instruction, it may have to wait if there is a data access operation in progress, potentially leading to slower execution of instructions compared to Harvard architecture.
Von Neumann’s architecture is more flexible than Harvard architecture in terms of memory usage. The same memory can be used to store both code and data, and the allocation of memory space can be adjusted dynamically.
Examples of microcontrollers that use Von Neumann architecture are less common compared to Harvard architecture-based microcontrollers.
Microcontroller Types: Based on Data Bus Width
Microcontroller types can also be categorized based on their data bus width. The data bus width refers to the number of bits that can be transferred in parallel between the microcontroller’s CPU and memory or peripherals. The data bus width is an important factor in determining the microcontroller’s data processing capabilities. Common data bus widths for microcontrollers include:
Also Read : Types of Embedded Systems
8-Bit Microcontrollers
8-bit microcontrollers are microcontroller types with a data bus width of 8 bits. This means that they are capable of processing 8-bit data in a single cycle, allowing them to work with values ranging from 0 to 255 (2^8 = 256).
8-bit microcontroller types typically have limited program memory (Flash or ROM) and data memory (RAM).
These microcontrollers are widely used in various embedded systems and applications due to their simplicity, cost-effectiveness, and suitability for handling relatively simple tasks.
There are several manufacturers that produce 8-bit microcontrollers, each with its own series and models. Here are some examples of 8-bit microcontroller families:
- 8-Bit AVR Microcontroller
- PIC16F Series Microcontroller
- STM8 Series Microcontroller
- NXP S08 Series Microcontroller
16-Bit Microcontrollers
The primary feature that distinguishes 16-bit microcontrollers is their 16-bit CPU. This means that the CPU can process 16-bit data in a single cycle, allowing it to work with values ranging from 0 to 65,535 (2^16 = 65,536). This 16-bit computational capability makes them faster compared to 8-bit microcontrollers.
16-bit microcontrollers typically offer larger program memory (Flash or ROM) and data memory (RAM) compared to 8-bit microcontroller types. This increased memory capacity allows for more complex programs and data storage.
Like 8-bit microcontrollers, 16-bit microcontroller types come with various built-in peripherals such as timers, counters, UARTs, I2C, SPI, and ADCs. These peripherals make them suitable for a wide range of applications, including industrial control, automation, and communication devices.
The choice between 8-bit and 16-bit microcontrollers depends on the specific requirements of a project. The decision also depends on factors such as the complexity of the task, the need for interfaces, and power efficiency requirements.
The commonly available microcontroller types across industries are:
32-Bit Microcontrollers
32-bit microcontroller types are microcontroller with 32-bit data bus width, which means it processes 32 bits of data at a time. This 32-bit wide data bus allows it to perform arithmetic, logic, and data manipulation operations on 32-bit data types.
32-bit microcontrollers offer significantly more processing power compared to their 8-bit or 16-bit microcontroller types. This means they can execute instructions and perform calculations much faster.
32-bit microcontrollers come equipped with a wide array of built-in peripherals, including timers, counters, UARTs, SPI/I2C interfaces, GPIO pins, ADCs, and more. These peripherals make them suitable for applications ranging from industrial control to high-performance communication systems.
With their increased computational power and memory resources, 32-bit microcontrollers are capable of executing complex algorithms quickly and efficiently. This makes them suitable for applications where real-time data processing and control are essential.
The choice between 32-bit and lower-bit microcontrollers depends on the specific requirements of a project. 32-bit microcontrollers are chosen when high computational power, extensive memory, and advanced peripherals are needed. However, they may be overkill for simpler applications where cost and power efficiency are critical.
There is an extensive range of 32-bit microcontroller types that are commonly available in the market are:
Microcontroller Types: Based on the Instruction Set
An instruction-based microcontroller is a microcontroller type that executes a set of pre-defined instructions stored in its memory to perform various tasks and control external devices. It is a fundamental concept in microcontroller and microprocessor design.
Instruction-based microcontroller types are divided into two categories: CISC and RISC.
CISC Based Microcontroller
CISC((Complex Instruction Set Computer) based microcontroller types have a comprehensive and extensive set of instructions that are designed to perform a wide range of tasks. These instructions are often complex and can perform multiple operations in a single instruction, simplifying programming and reducing the number of instructions required to complete a task.
CISC architectures typically offer a variety of addressing modes, which dictate how operands are accessed in memory or registers. These addressing modes provide flexibility in specifying data sources and destinations in instructions.
CISC-based microcontrollers often include specialized hardware units for complex operations like floating-point arithmetic, string manipulation, and graphics processing. These hardware units can accelerate these operations, making them faster and more efficient.
CISC architectures often use microcode to implement complex instructions. Microcode is a low-level code that controls the operation of the microcontroller’s internal components. It allows for the execution of complex instructions by breaking them down into simpler micro-operations.
CISC architectures use variable length instructions set. This flexibility in instruction encoding allows for a wide range of instructions with varying complexities.
CISC architectures often support memory-to-memory operations, where data can be transferred directly between memory locations without passing through registers. This can simplify certain programming tasks.
CISC-based microcontrollers are generally well-suited for high-level language programming due to their rich instruction set and support for complex operations. High-level languages like C can be efficiently compiled to run on CISC architectures.
CISC architectures may have lower code density compared to Reduced Instruction Set Computer (RISC) architectures. This means that programs written for CISC architectures may occupy more memory space.
A few examples CISC based microcontroller types are:
- Intel 8051
- Intel x86-Based MCU
- NXP HC12
RISC Based Microcontroller
RISC (Reduced Instruction Set Computer) based microcontrollers have a reduced and simplified instruction set compared to Complex Instruction Set Computer (CISC) architectures. The instructions are typically designed to perform basic operations, each taking a single clock cycle to execute.
RISC architectures often follow a load-store model, where data must be loaded from memory into registers before it can be operated upon and then stored back in memory after processing. This simplifies instruction execution and reduces memory access times.
Instructions in RISC architectures are usually of fixed length, which simplifies instruction decoding and execution. This results in consistent and predictable instruction execution times.
RISC-based microcontrollers typically have a large number of registers, and operations are primarily performed on registers. This minimizes memory access, which can be time-consuming.
RISC architectures often employ pipelining, a technique where multiple instructions are processed simultaneously in a series of stages. This can lead to efficient use of CPU cycles and improved performance.
RISC architectures typically offer fewer addressing modes compared to CISC architectures, reducing complexity but also flexibility in addressing.
Due to the simplified instruction set and efficient use of memory, RISC-based microcontrollers often achieve high code density, meaning that programs occupy less memory space.
RISC microcontrollers tend to operate at high clock frequencies, which, combined with efficient instruction execution, results in fast and responsive systems.
RISC architectures are well-suited for high-level language compilation (e.g., C and C++) due to their simple and regular instruction set.
There are plenty of Microcontroller types available for embedded systems design and some of the commonly used microcontroller types are given below:
- ARM Cortex-M Series:
- Cortex-M0: For example, STM32F0 series from STMicroelectronics.
- Cortex-M3: For example, STM32F1 series from STMicroelectronics.
- Cortex-M4: For example, STM32F4 series from STMicroelectronics, and Atmel SAM4 series.
- MIPS-Based Microcontrollers:
- PIC32 Series: For example, PIC32MX series from Microchip.
- PIC32MZ Series: For example, PIC32MZ series from Microchip.
- Renesas RX Series:
- RX100 Series: For example, RX111 series from Renesas.
- RX600 Series: For example, RX65N series from Renesas.
- Espressif ESP32: The ESP32 microcontroller, widely used in IoT applications, is based on the RISC-based Xtensa LX6 architecture.
- NXP Kinetis K Series:
- i.MX RT Series: For example, i.MX RT Crossover MCU series from NXP.
- Kinetis K6 Series: For example, K66 series from NXP.
Microcontroller Types: Based on Application Scenarios
Based on the application scenarios, the microcontroller types can be divided into four categories:
Industrial Microcontrollers
Industrial microcontrollers, also known as industrial-grade microcontroller units (MCUs) for embedded systems. these microcontroller types are designed to meet the demands of industrial applications.
The primary requirements for industrial-grade microcontrollers are robustness, reliability, and capability to operate in harsh environments, i.e. extensive temperature range of -40 C to +125 C, extreme humidity levels, mechanical shocks or vibrations, electromagnetic interference, and extended operational lifetimes are critical.
Industrial microcontrollers are optimized for deterministic and responsive operation, making them suitable for real-time tasks like process control, motor control, and robotics. Depending on the complexity of the industrial application Sufficient processing power is crucial for real-time processing and control.
Industrial microcontrollers typically include robust industrial communication interfaces such as RS-485, CAN (Controller Area Network), Modbus, and Ethernet.
Safety features are crucial in industrial settings. Some industrial microcontrollers support hardware redundancy and fail-safe mechanisms to ensure system reliability and safety.
Examples of Industrial Microcontroller Families:
Automotive Microcontrollers
Automotive-grade microcontroller units (MCUs) are specialized microcontroller types designed for use in automotive applications. These microcontrollers play a crucial role in modern vehicles, as they are responsible for controlling various functions, i.e. engine management, safety systems, infotainment, and climate control.
Automotive microcontrollers are used for safety-critical functions and capable of handling real-time responses, such as engine control, anti-lock braking systems (ABS), airbag deployment, stability control, and advanced driver-assistance systems (ADAS).
Reliability and fault tolerance are crucial in these applications. Automotive microcontrollers are optimized for real-time processing to ensure rapid and deterministic control.
Automotive environments can expose microcontrollers to extreme temperature variations, from cold starts in winter to hot summer days. These microcontrollers are designed to operate reliably over a wide temperature range.
Vehicles incorporate various communication networks and protocols, such as CAN (Controller Area Network), LIN (Local Interconnect Network), FlexRay, and Ethernet.
Many automotive microcontrollers comply with ISO 26262, an international standard for functional safety in road vehicles. These MCUs are equipped with safety features to ensure correct operation, even in the presence of faults or errors.
Examples of Automotive Microcontroller Families:
Medical Grade Microcontrollers
Medical-grade microcontroller units (MCUs) are specialized microcontroller types designed for use in medical devices and equipment.
Medical-grade microcontrollers are used in medical devices and equipment that perform safety-critical functions, such as patient monitoring, diagnostic imaging, infusion pumps, ventilators, and defibrillators. Reliability, precision, and real-time response are the primary factors to be considered in medical-grade embedded system applications.
The healthcare industry is highly regulated, and medical devices must comply with stringent standards and regulations, such as ISO 13485 and FDA guidelines. Medical microcontrollers are designed and manufactured to meet these requirements.
Medical microcontrollers may comply with safety standards, such as IEC 60601-1, which defines safety requirements for medical electrical equipment. These microcontrollers often include features to ensure patient and operator safety.
In medical imaging and diagnostic equipment, medical microcontrollers can handle data processing tasks, such as image reconstruction, filtering, and analysis, often requiring high computational power.
Examples of Medical-Grade Microcontroller Families:
- Texas Instruments MSP430FR Series
- Microchip PIC32MZ Series
- STMicroelectronics STM32G4 Series
- Renesas RX Series
- NXP/Freescale Kinetis KEA Series
Consumer Electronics Microcontrollers
Consumer electronics microcontroller types are designed to support a wide range of consumer electronic devices including smartphones, smart TVs, Digital cameras, music systems, game consoles, wearable devices kitchen appliances, etc. These microcontroller types play a central role in controlling the functionality, user interface, and overall performance of consumer electronics products that are part of our daily lives.
The required features that consumer grade microcontroller types support are
- User Interface Control
- Low Power Modes
- Multimedia Processing
- IoT Connectivity (Wi-Fi, Bluetooth, Cellular etc)
- Audio Processing
- Displays (including LCDs, OLEDs, and e-paper displays) Touchscreen, and Gesture Control
Examples of Consumer Electronics Microcontroller Families:
- ARM Cortex-M Series
- ESP8266 and ESP32
- PIC32MX Series
- Silicon Labs EFR32 Series
Conclusion
In conclusion, the diverse world of microcontroller types offers a plethora of choices, each with its unique strengths and applications. As an embedded hardware designer, We’ve had the privilege of exploring a wide range of microcontroller types, from consumer applications to powerful and advanced embedded system applications.
The selection of a microcontroller ultimately depends on the specific project requirements, cost sensitivity, and individual preferences, making it an exciting journey of discovery for hobbyists, engineers, and enthusiasts alike. Whether you prioritize simplicity, performance, connectivity, or a balance of these factors, there’s undoubtedly a microcontroller waiting to empower your creativity and bring your innovative ideas to life.
Author Profile
- 20+ years embedded hardware design professional with a burning passion for teaching. Sharing the intricate world of embedded hardware is my mission and joy.
Latest entries
- USB16 November 2024USB 2.0 Architecture Explained
- Blogs23 October 2024Understanding Transients in Electrical Circuits
- Tech Updates12 October 2024Explore the Wireless Connectivity With NXP’s FRDM-RW612 Development Board
- USB6 October 2024USB 2.0 Standard Explained