Choosing the right microprocessor for a product is a daunting task. Consider not only many technical factors, but also business issues such as costs and delivery times that could affect the success of the project. When the project was started, people often can not suppress the desire to start right away, before the introduction of system details to prepare a microcontroller selection. This is certainly not a good idea. When making any decisions on microcontrollers, hardware and software engineers should first design the high-level architecture, block diagrams, and flowcharts of the system, and only then will there be enough information to begin making sound decisions about microcontroller selection. Now follow these 10 simple steps to make sure you make the right choice. Step 1: Make a list of required hardware interfaces Use a rough hardware diagram to produce a list of all the external interfaces that the microcontroller needs to support. There are two common interface types that need to be listed. The first is the communication interface. The system will generally use USB, I2C, SPI, UART and other peripherals. If your application requires USB or some form of Ethernet, you also need to make a special note. These interfaces have a huge impact on how much program space the microcontroller needs to support. The second interface is digital input and output, analog to digital input, PWM and so on. These two types of interfaces will determine the number of pins the microcontroller needs to provide. Figure 1 shows a common block diagram example and lists the requirements for I / O.