(Editor's Note: This article first appeared in EE Times)
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
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
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
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
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
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