Designers and programmers face several obstacles when an 8-bit microcontroller (MCU) no longer meets the performance needs of their application and
a change in architecture is required. At the top of the list of problems are
power consumption, pin compatibility, tools migration, and additional programming complexity. Today, system designers run into the
limits of 8-bit MCUs much more frequently as applications
expand and customers demand more features.
"Historically, this meant moving from an 8-bit to a 16-bit
microcontroller," says Toms Starnes of Gartner Dataquest in
Freescale Interlocks 8-Bit and 32-Bit MCUs, March 27, 2006.
"However, as process shrinks and a wider range of products
became available, many OEMs opted to move from an 8-bit
microcontroller all the way to 32-bit MCUs."
In contrast to 8-bit MCUs, 32-bit architectures have focused
more on performance than cost or ease of use. In addition, 32bit MCUs targeted different applications and did not model the
same use case that a typical 8-bit user requires.
Based on improvements in semiconductor manufacturing
technology and design methodology, the cost of 32-bit MCUs
has decreased dramatically. Today, the difference in cost to
transition from an 8-bit to a 16-bit or 32-bit unit is close enough
that many system designers skip the 16-bit node altogether and
jump directly to 32-bit to future-proof their design.
According to customer data, it takes three months for a typical design team of four hardware and six software engineers to
make a transition from one architecture to another—equivalent
to roughly half a million dollars of R&D. A small design team
takes three months to learn a new architecture and new tools,
design a new board, and wait for those boards to be available.
The resources dedicated to these lengthy transitions increase
a product's time-to-market, in addition to impacting the bottom
line. Any new approach that reduces the transition cost could
be a significant benefit to a design effort.
POSSIBLE SOLUTIONS
Applications in which a new
approach makes the most sense occur in designs that use medium to high-end 8-bit MCUs. In many instances, designers cannot
get the performance from the existing 8-bit MCU to implement
the control algorithm that the next-generation design requires. In
these cases, additional peripherals aren't an issue. The new
design simply requires higher performance, additional flash
memory, and the same peripherals as the previous design.
A straightforward transition between 8-bit and 32-bit MCUs
requires the same peripherals, the same boards, and the same
toolset to ensure migration is as transparent as possible for
users. Companies that can properly and reasonably address this situation have control over both the 8-bit and 32-bit architectures
and can modify the tools to make a straightforward transition
between bits.
Changing board design and learning new tool environments
can be a hefty addition to any new product development cycle—
in both time and money—and that's what usually happens when
migrating from 8-bit to 32-bit applications.
Eight- and 32-bit devices can share a common toolset, including software, cables, and even potentially a single hardware
design. The ultimate in seamless upward migration would be to
swap an 8-bit device for a 32-bit device using the same board and
simply recompile the code to create a functional 32-bit system.
IDENTICAL PERIPHERALS AND PINOUTS
Designing
8-bit and 32-bit devices with identical peripherals can greatly
speed the transition process. In most cases, there's little reason
to change the performance or complexity of timers, A/D channels, or serial ports on a low-end 32-bit microcontroller compared to an 8-bit microcontroller. The main requirement is that
they be simple and that firmware investment be maintained as
much as possible.
It's also possible to design peripherals where the additional
performance of a 32-bit device can be used without sacrificing
software compatibility. For example, consistent and compatible
hardware interface and firmware support can be generated to
support USB device mode on both 8- and 32-bit chips. But the 32bit chip could also have the capability to support USB On-The-Go
due to the additional processing performance in the 32-bit core.
Pinouts can be matched exactly, letting the developer move
between 8- and 32-bit devices without any hardware changes.
Some aspects of pin compatibility are straightforward, whereas
other aspects require more forethought. For instance, a 32-bit
MCU would normally require more pins for debugging the chip.
But it's possible to remap this interface to a single wire scheme
typical to 8-bit MCUs to maintain true pin compatibility.
The challenges in migrating between 8-bit and 32-bit designs
can be minimized with compatible tools, peripherals, power consumption, and pinouts. These factors must be considered to
reduce time-to-market and development cost.