A system on a chip integrates most of the components of every electronic system. Hence, choosing the right System on Chip (SoC) is a daunting task for product development. We need to consider a lot of scenarios of the product to select a proper SoC. Those scenarios will define and decide the technical features, specifications, overall product quality, and user experience. There will always be some business case issues such as cost and lead time of the IC’s that can cripple the project.
Generally, during the project’s start, we will tend to jump in and select the SoC before the system has been hashed out. This is a bad idea, to begin with, considering the changes that one gets to do later on. Before any thought is given to the SoC, the hardware and software engineers should work out the system’s high levels, block diagrams, and flowchart them. Only then is there enough information to start making a rational decision on SoC selection for the product.
Let’s look into the selection process required to choose a proper SoC from a wide variety of options available in the market.
- Product final application –
The first and foremost criteria to choose SoC is the objective of the final application field. We need to figure out if it is an IoT product, Consumer Products like Wearables or Hearables, Mobile Phone or Tablets, Automotive product, networking product etc.
2. Hardware interface Required –
Using the general hardware block diagram, we can make a list of all the external interfaces that the SoC will need to support. There are two available types of interfaces that need to be listed. The first is communication interfaces, and they significantly affect how much program space the microcontroller will need to support. The second type of interface is digital inputs and outputs, analog to digital inputs, PWM’s, etc. These two interface types will dictate the number of pins that the microcontroller will require.
Figure 1 shows a generic example of a block diagram with the I/O requirements listed.
3. Software SDK –
The software architecture and requirements can significantly affect the selection of a microcontroller. Depending on how heavy or light the processing requirements are, we can determine whether we need an 80 MHz DSP or an 8 MHz 8051. The amount of computing power required will be one of the most critical requirements for the architecture and frequency of the microcontroller.
4. Hardware Architecture –
Using the information from Hardware Interface and Software SDK selection criteria, an engineer should start getting an idea of the architecture that will be needed. You may select a 16-bit part in this step but then in a later stage find that a 32 bit Arm part works better. This step is simply to start getting an engineer to look in the right direction.
5. Memory Required –
Flash and RAM are two very critical components of any microcontrollers. Making sure that you don’t run out of program space or variable space is undoubtedly the highest priority. Using the software architecture and the communication peripherals included in the application, an engineer can estimate how much flash and RAM will be required for the application. Don’t forget to leave room for feature creep and the following versions! You will thank us later.
6. Display requirement if any –
For some consumer products, we need a display to be interfaced. Based on the type of display like TFT, MIP, AMOLED. Also, we need to consider the pixels colour depth required to analyse the memory requirement for one frame. Based on these calculations, we need to choose the proper SoC.
7. Power efficiency –
There is a trade-off between processing performance and power consumption: a higher processing power device will consume more energy. Therefore, if your microcontroller is wireless and running on a rechargeable battery, you need to weigh sacrificing power efficiency against getting more processing power, or vice versa.
8. Security –
Hacking which targets IoT devices is rising in recent times, a threat that is especially relevant to SoCs used in automobiles. In response, microcontroller makers are implementing layers of security, such as cryptography and physical security. Now, users can purchase microcontrollers that have been certified to the latest security standards or use MCUs with on-chip secure hardware.
Companies that offer stand-alone security MCUs include STMicroelectronics (ST33 series), Renesas (AE-5 and RS-4 series), Nordic semi, Ambiq, Infineon (OPTIGA Trust and OPTIGA TPM), Cypress, Microchip (32-bit and 16-bit MCUs for Security), and Texas Instruments (MSP430 series). Companies that offer on-chip security hardware include NXP (Kinetis series) and Infineon (AURIX)
9. Temperature Tolerance –
Depending on the environment in which your microcontrollers operate, you may want devices that can withstand extreme temperature. So, to support Industry grade products, your SoC and all other components should support -40 to +80 degrees at least. So there will be a trade-off between temperature tolerance and cost.
10. Processing Power –
How much processing power do you require for the task, will a single-core processor suffice, or do you need a dual-core? A multi-core processor will be significantly faster, but it will also consume more energy. Also, will a graphics processing unit (GPU) be necessary?
11 . Search for Proper SoC –
Now that there is a better idea of what the required features of the SoC will be the search can begin! One place that can be an excellent place to start is with a SoC supplier such as Digikey, Mouser, Avnet, SM Electronics or similar. Talk with an FAE about your application and requirements, and often they can direct you to a new part that is cutting edge and meets the requirements. Just keep in mind that they might pressure them at that time to push a particular family of microcontrollers!
The next best place to start is with a silicon provider that you are already familiar with. For example, if you have used Nordic parts in the past and had a good experience with them, start on their website. Most silicon providers have a search engine that allows you to enter your peripheral sets, I/O and power requirements, and it will narrow down the list of parts that match the criteria. The engineer can then move forward towards selecting a microcontroller.
12. Select Development kits and Work with compilers and SDK –
One of the best things about selecting a new microcontroller is finding a development kit to play with and learn the controller’s inner working. Once an engineer has settled their heart on the part they want to use; they should research the kind of development kits available. If a development kit isn’t available, then the selected element is most likely not a good choice, and they should go back a few steps and find a better part.
The selection of the development kit nearly solidifies the choice of the microcontroller. The last consideration is to examine the compiler and tools that are available. Most microcontrollers have several choices for compilers, example code and debugging tools. It is essential to make sure that all the necessary tools are available for the part. Without the right tools, the development process could become tedious and expensive.
Complete the POC –
Once SoC is finalised based on the above selection process, before starting the product hardware design & development, reach out to the company or concerned distribution partner and get the development boards. Usually, the development board arrives long before the first prototyped hardware. Based on the hardware system block diagram, build test circuits for sensors, displays & external RTC/memories if any, and interfacing them to the development board. Choose high-risk parts and get them working on the development kit. You might discover the part you thought would work great has some unforeseen issue that would force a separate microcontroller to be selected. In any event, early experimentation will ensure that you made the right choice and that if a change is necessary, the impact would be minimal.