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.
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.