How to Select Microcontroller and Microprocessor for Your Design?

Selecting the appropriate microcontroller for a product is a critical task that needs a systematic approach. It is crucial to refrain from making premature microcontroller choices. Instead, it is essential to first establish a comprehensive understanding of the system’s requirements and architecture before proceeding with the selection of the microcontroller (MPU) or microcontroller (MCU).

By considering these aspects, you can make a more informed decision that aligns with your system’s specific requirements and constraints, allowing you to choose a microprocessor that best fits your project’s needs.

Step1:- Define System Requirements

Begin by clearly defining the high-level requirements of your system. Understand what the microcontroller needs to accomplish and the specific features it must support.

  • Primary functions: Determine the main functions and capabilities that your system needs to deliver. This involves identifying the core tasks and operations that the MPU/MCU should be able to handle effectively.
  • Performance expectations: Define the performance expectations for your system. This includes factors such as processing speed, response time, and overall efficiency. Consider the level of performance required to meet the demands of your application and ensure that the chosen MPU/MCU can deliver the desired performance levels.
  • Input and output interface: Identify the types of input and output interfaces that the system needs to support. This involves a system-level understanding of various devices or peripherals that will be connected to the MPU/MCU and determining the necessary interface protocols and connectors.
  • Power Requirements: Define the power supply voltage range, power consumption limits, and any specific power management features that may be necessary. Consider the power source available for your system, whether it’s battery-powered or connected to a power outlet. Determine the acceptable voltage range for the MPU/MCU and any specific power consumption limits to ensure efficient operation.

Step2:- Define Architecture & Hardware Requirements

Create a block diagram of the system with all the details possible. Below is a sample block diagram of the Microprocessor and its peripherals. 

Block Diagram Microprocessor Diagram

By analysing the block diagram and considering the various interfaces and I/O requirements of your design, you can derive the following information:

  • Communication Interfaces and Peripherals: The block diagram, as shown, indicates the presence of interfaces such as I2C, Ethernet, SPI, UART, USB, Wi-Fi, and potentially others. These interfaces enable communication between the MPU and external devices, networks, or peripherals.
  • Digital and Analog Input/output needs: The block diagram may include components such as digital inputs and outputs, ADC/DAC inputs, PWMs, and potentially other I/O requirements. These components are essential for interacting with external digital and Analog signals, sensors, actuators, and other devices.
  • RF Interface Requirements: If your system requires wireless communication capabilities, there may be a need for RF interfaces such as Wi-Fi, Bluetooth, or other wireless protocols. The presence of these interfaces would be indicated in the block diagram.
  • Determining Pin Count and Configuration: By considering the identified interfaces and I/O needs, you can estimate the number of pins required for the r. Each interface and I/O component typically requires a certain number of pins for connectivity and data transfer. This information will guide you in selecting a MPU/MCU with the appropriate pin count and pin configuration to accommodate these requirements.

Step3:- Define Software Requirements

When selecting a MPU/MCU, several software requirements need to be considered. These include processing requirements, operating system requirements, data bus width requirements, and code size estimation. Let’s take a closer look at each of these requirements:

  • Code size and Processing Power Requirements: When selecting a MPU/MCU, it is important to evaluate software architecture, processing power, and performance requirements.
  • Data bus: Data bus width requirements that determine how much data can be transferred between the MPU/MCU and memory or other components at once. Microprocessors come in different sizes, such as 8-bit, 16-bit, or 32-bit data bus widths.
  • Software Complexity: Consider the complexity of algorithms, computational tasks, and whether real-time processing is needed. If your project involves intensive calculations or demanding tasks, you’ll need a microprocessor with higher processing power to handle the workload efficiently. Additionally, consider any specific performance expectations you have, such as response time or overall system efficiency.
  • Operating System Requirements: Consider the requirements of the operating system (OS). Some MPU/MCU have specific OS requirements or provide dedicated support for certain operating systems. It’s also important to consider if your design needs to support multiple OSs, which may require a more powerful microprocessor and additional memory.

Step4:- Define Memory Type and Size

When designing a microprocessor, it’s important to carefully consider the memory requirements of your software. This includes determining the size and type of memory needed to store and run your software code and data.

  • Memory Size: The MPU/MCU should have enough memory capacity to handle these requirements effectively. This involves considering the size of boot/code memory (e.g., eMMC Flash, Nor Flash) as well as dynamic memory requirements. Note that MCU has inbuilt memory
  • Memory Type: Consider the type of memory interface required by your application, such as EEPROM, Serial FlashDDR1/2/3/4, 5, NOR flash, or eMMC, and ensure that the selected processor supports the desired interface. MCU mostly supports serial memory interfaces.
  • Cache Memory: A small yet high-speed type of random access memory (RAM) integrated directly into the processor, plays an important role in optimizing system performance. Evaluating the specific requirements of your software and its data access patterns will help in determining the appropriate cache memory size. Typically, cache memory sizes range from a few kilobytes (KB) to several megabytes (MB).

Step5:- MCU/MPU Core

By carefully assessing the requirements mentioned in steps 1, 2, 3 and 4, you can select an MCU/MPU core, determine the number of cores, identify the appropriate memory interface, assess the memory size capacity, and set the suitable clock speed for your microprocessor, ensuring optimal performance and functionality for your software application.

  • Type of MPU/MCU Core: You can identify the appropriate type of core for your microprocessor, such as ARM Cortex-M, Intel x86, or RISC-V, or others, based on the specific needs of your application.
  • Number of Cores: Depending on the level of parallel processing or multitasking required, you can determine whether a single-core or multi-core microprocessor is more suitable for your project.
  • Memory Addressing Capacity: Evaluate the maximum memory size that the microprocessor can address, ensuring it is sufficient to accommodate the software code and data requirements of your project.
  • Clock Speed: Determine the optimal clock speed at which the microprocessor should operate to achieve the desired performance level. Consider factors such as power consumption, real-time requirements, and the complexity of computational tasks.

Step6:- Power Requirements, Temperature Grade, and Reliability Data of MPC/MCU

When selecting MCU/MPU, it’s important to consider their power requirements. These include factors like core voltage, power dissipation, power management, junction temperature, thermal management, and low-power modes that your applications need. 

  • Power consumption vs. performances: Carefully analyze and compare the Power consumption vs. performances among the list of the controllers that you have in your selected list
  • Power modes: MCUs/MPUs support various low-power modes, which are essential to consider, especially when your device operates on battery power. It is crucial to ensure that the selected MCU/MPU meets your specific requirements in different low-power modes, allowing you to optimize power consumption according to the device’s needs.
  • Thermal management: Proper thermal management, including heat sinks and ventilation, is crucial to maintain a safe junction temperature. You need to plan your mechanical as per that.
  • Temperature grades: Most devices, including MCUs/MPUs, are manufactured in multiple temperature grades to accommodate different application requirements and operating environments. The commonly accepted temperature grades are as follows:
    • Commercial: 0 ° to 70 °C
    • Industrial: −40 ° to 85 °C
    • Automotive: −40 °C to 125 °C
    • Military: −55 ° to 125 °C
  • Reliability data: It is important to estimate of how reliable the device is expected to be over a certain period. Reliability data for MCUs and MPUs can be obtained from the manufacturer’s datasheet/documentation. This data typically includes metrics such as Mean Time Between Failures (MTBF) and Failure in Time (FIT) rate, which provide estimates of the device’s reliability over a specific period of time. In addition, manufacturers may provide information on qualification testing, and environmental stress testing.

Step7:- Start Your Search for the Right MPU/MCU, Arability, and Longevity

When you reach this stage, you have gathered all the necessary specifications for the chosen MPU/MCU. There are a few important points to keep in mind:

  • Explore suppliers: Explore suppliers such as Arrow, Avnet, Digkey, Mouser, Future Electronics, or similar companies.
  • FAE Connect: Talk to Field Application Engineer (FAE) from these suppliers and discuss your application and specific requirements. Keep in mind that FAEs may sometimes have pressure to promote certain product lines.
  • Manufacturers Data: Visit the websites of MPU/MCU manufacturers, such as Intel, AMD, Renesas, Micron, NXP, Texas Instruments, Microchip, and others, to confirm the data and information you have obtained from suppliers or other sources.
  • Part Availability: The selected part should be readily available for your design, ensuring that you can easily procure it from suppliers without any major delays or supply chain issues.
  • Product longevity support: It’s important to consider the product longevity support provided by the manufacturer. Some manufacturers release their products with long-term support and availability, ensuring that the chosen part will be supported and available for an extended period of time.

Step8:- Evaluate the Evaluation Kits, Design Resource’s Arability

Once you have narrowed down your options to multiple MCU/MPU chips that meet your requirements, it is important to evaluate them based on the availability of evaluation kits and the design resources and support provided by the chip manufacturers.

  • Design resources: Design resources are valuable in the development process and can include physical symbols, logical symbols, schematics and layout files, application notes, and white papers. Additionally, evaluation kits allow you to test and validate the performance and features of the chips in a real-world setting, helping you make an informed decision.
  • Evaluation kits: By considering the availability of evaluation kits and the extent of design resources and support provided, you can choose a chip that not only meets your technical requirements but also offers the necessary resources to streamline the design process and ensure successful integration into your project.
  • Lack of design resources: While a chip may meet all the required specifications, it is crucial to assess the level of design and technical support available. Chips that lack sufficient design resources and technical assistance should be avoided.

Step9:- Evaluate the Software Tool Chain Arability

By considering the availability and compatibility of compilers and tools, as well as the presence of debugging and development resources, you can ensure a smoother and more efficient development process for your chosen MCU/MPU.

  • Compilers: Evaluate the availability and compatibility of compilers and tools that are specifically designed for the chosen MCU/MPU. This includes considering the range of compiler options, their compatibility.
  • Debugging tools: Ensure that the MCU/MPU supports a variety of debugging tools, such as debuggers, emulators, and integrated development environments (IDEs). These tools are essential for diagnosing and resolving issues during the development and testing phases.
  • Development tools: Verify that all the necessary tools required for development, such as programming tools, software libraries, and development kits, are readily available for the chosen MCU/MPU. These tools facilitate the development process by providing ready-to-use resources and simplifying the programming and testing tasks.

Author Profile

Vikky K
20+ years embedded hardware design professional with a burning passion for teaching. Sharing the intricate world of embedded hardware is my mission and joy.

Leave a Comment