As embedded applications become more complex and offer more functions, microcontrollers makers need to keep up with the changes. In the past, the answer has been to integrate as much as possible on to a single chip and drive the process technology smaller to keep cost under control. However, this philosophy does not always provide the best and most cost-effective solution for embedded control. The reality is that manufacturers have to consider much more before deciding what type of microcontroller to build.
Embedded microcontrollers that consist mainly of digital logic benefit from smaller process geometry in several ways. Digital logic shrinks with the smaller process technology and therefore provides more die per wafer, which results in lower costs. But this holds true only if the additional cost of the smaller process does not outweigh the benefit of getting more die per wafer. The smaller processes have other advantages that include operating at higher speeds and having lower power consumption due to the smaller capacitance.
But microcontrollers do not only consist of digital logic.They often feature several analog peripherals such as A/D converters, D/A converters, operational amplifiers, comparators, voltage references and communication transceivers.
Since the analog components do not shrink as much as digital logic with the smaller processes, the added cost of the smaller process can actually make these components more expensive. Additionally, the pads, scribe channels and other overhead on the silicon wafer required to connect, test and package the device, also do not shrink as much and can become a significant portion of the total wafer area on smaller devices.
And, there is another problem: Some of these components can not always be implemented on the newer process technologies due to lower breakdown voltages. Therefore, provided there are no technical reasons to use a certain process technology, the decision on process technology depends on the die size and overhead on the wafer as well as the size of the analog features, the size of digital portion and program memory.
There are several advantages to integrating the components in a system onto a single chip, one being the reduction of board space and number of components. In turn, the lower component count in some cases provides a lower cost because there are fewer components to buy, assemble and test. Integration also allows for additional features because the normal constraints imposed by external pin connections no longer exist.
But, the downside to integration is that integrated circuit development is more expensive and time consuming than a system developed using standard components. As a result, integration is slower to react to changes and is less flexible than using separate components. Integrating several components into a single chip makes sense when the system architecture is reasonably stable or the payoff due to the advantages is worth the risk. However, the developer must be prepared to go through several expensive development cycles if the requirements are likely to change.
In general, successful integration requires that the same combination of products can be used over various applications. For example, most small control systems require sensing a voltage with an A/D and use this information to control an output with a PWM or D/A. The integration of these components onto a microcontroller provides a solution that can be used over several different applications. However, if it is a very specialized system keeping the components separate might be more advantageous.
Microcontrollers typically perform various functions in embedded systems. These functions can be time critical, processing intensive or involve high-speed data transfers. But the same microcontroller can also perform slower and less time critical functions such as a human interface, or monitoring the temperature on an hourly basis. In most cases it is possible to choose a single microcontroller that will perform all the required functions and use software to manage the different functions and timing. The software provides a flexible way to adapt and adjust the performance characteristics until the requirements are met.
It is easier to solve several small problems rather than one big problem and this is the reason why software is implemented within smaller standalone functions and sub-routines that can be re-used. The problem with using a single microcontroller is that the software modules utilize the same resources and have to execute sequentially. With a single microcontroller system, time critical functions can easily increase performance requirements on the microcontroller, which results in higher component costs. This, then again become a big problem to solve.
In many cases it is beneficial to allow for modular software design, as well as partition the embedded design at the hardware level to allow for added flexibility in selecting the appropriate microcontroller for the appropriate task.
Larger 32-bit and even 64-bit microcontrollers, are designed for speed and execution efficiency in order to get the highest performance out of the microcontroller. These devices are implemented on deep sub-micron technology, which makes them more susceptible to changes in supply voltage, noise and temperature. The large and fast microcontrollers typically require a lot of support around the devices and often require external memory. On the other hand, smaller microcontrollers are self-sufficient systems that have the ability to operate over a wide voltage range, often do not require an external oscillator, and are extremely tolerant of noisy environments. Hardware partitioning allows the designer to utilize each component's strength for the appropriate task.
Another advantage of hardware partitioning into several devices is that the cost of the higher performance microcontroller can be reduced because a number of functions that drive the high-performance requirement can be placed on another separate device. Very often, the price of a small microcontroller is lower than the price difference between two speed-grades of the same high-speed component. In some cases the high performance microcontroller can be replaced by several smaller components for a lower cost.
While hardware partitioning allows the flexibility to select the appropriate microcontroller for the appropriate task, the fact remains that it is still hardware and lacks the complete flexibility that software provides. For a designer to efficiently utilize the advantages of hardware partitioning requires careful selection of the right supplier to ensure that there is flexibility all the way down to the hardware level.
The tradeoff between cost and flexibility also affects the choice of memory technologies in a manner similar to that of integration and partitioning issues. Most designers recognize the advantages of Flash program memory during the development phase, but few realize the advantages during production and thereafter.
During the production stages, cost is the primary concern and the focus is usually on driving down component cost. Moving to a ROM-based microcontroller is one of the first considerations for cutting the cost of components. On the other hand, the limited flexibility of a ROM-based device can frequently cost a company more in the long run because a firmware bug may result in the material being scrapped.
For a company that only has a few products this might not seem like a big advantage and the component savings for ROM devices could be more important. However, for microcontroller manufacturers a ROM microcontroller is in many aspects a custom device and presents the same challenges as a custom device during-and especially at the end of-a product lifecycle.
Flash process development has come a long way and the differences between Flash, EPROM and ROM technologies are no longer that considerable, making the flexibility of Flash the preferred choice to mitigate the risk associated with change. Flash memory also offers secondary advantages such as the ability to use the same device in different applications, add features to an older system without changing the hardware, and upgrade systems in the field.
Flash program memory for microcontrollers however, is not necessarily the same as the Flash memory used for data storage. For example, it is not devastating if the Flash memory in your digital camera has a stuck bit, but a stuck bit in the program memory of a microcontroller can have catastrophic consequences. For microcontrollers, the program memory has to be more reliable and manufacturers and users of microcontrollers require higher specification levels for Flash program memory bug can be felt all the way back up the supply chain.