A remarkable commercial phenomenon has been quietly occurring under the noses of industrial electronics OEMs. The price that a mid-tier 8-bit microcontroller (MCU) fetched less than five years ago will now buy you a fully-fledged 32-bit MCU.
Such are the brutal economics of the semiconductor industry; it is remarkable that the MCU manufacturers are still able to earn their keep in such circumstances.
How the 32-bit world is encroaching on the 8-bit market
Two large, established MCU manufacturers – Freescale Semiconductor and NXP Semiconductors – act as examples of the how the 32-bit MCU is widening its reach. And the two have completely different approaches to users of 8-bit devices.
Freescale is agnostic about the 8- and 32-bit question. It recognises that there will always be applications that are best suited to an 8-bit device, and others that an 8-bit device would be totally incapable of running.
To support this position it has produced the Flexis family of devices. These are a pin- and peripheral-compatible series of 8- and 32-bit devices based on their HCS08 and ColdFire cores.
Coupled with Future Electronics’ ‘Crossbow’ Future-Blox development system (see figure p42) and a common compiler, the designer can now write one piece of code and test it on either processor to evaluate which is the best fit. With these ‘crossover’ parts, the designer now has easy access to an extensive range of products at both ends of the performance spectrum.
Freescale has also made its entry-level ColdFire v1 32-bit processor feel like an 8-bit machine: it has extensions to improve 8-bit operand handling, while the two-stage fetch and execute pipelines give it real 32-bit performance.
NXP’s strategy, by contrast, is to give users 32-bit performance at such a competitive price that they will have no reason to design with an 8-bit device. Entry-level devices in the LPC2100 family, for instance, sell for prices similar to many 8-bit MCUs, but can run their processor at 75MHz. They offer at least 8kbyte of flash in small 48-pin QFP packages, but still provide the usual array of 8-bit peripherals such as UARTs, analogue-to-digital converters, I2C ports, multiple interrupts and so on. As with the ColdFire parts, the core feels like an 8-bit engine to the user but has sufficient 32-bit features to produce 32-bit performance.
NXP, then, aims to offer the best of both worlds: high performance and a low price.
Why customers stay loyal to the 8-bit MCU
So why have existing 8-bit users not migrated en masse to low-cost 32-bit parts? Experience shows that there are four basic reasons to stick with an 8-bit MCU:
- If it ain’t broke, why fix it?
- 32-bit power consumption is too high
- 32-bit code is too complex
- Ultra-hard real-time applications require tight code with fast interrupts
Interestingly, the 32-bit MCU manufacturers can claim to have an answer to each of these arguments.
First, they would say it is true that companies with products that evolve slowly often find it sensible not to re-invent the wheel and take the risk of designing with a new architecture. But this argument carries its own risk: rigid adherence to the status quo can mean missing out on new market and business opportunities.
A competitor with a more aggressive approach to innovation can steal a march on you.
On power consumption, the argument is not nearly as clear-cut as a straightforward comparison of processor core current drain figures would suggest. First, total device power consumption is the sum of I/O drive current, core current and peripheral current.
In reality, both 8- and 32-bit MCUs’ I/O current will be more or less the same as they will both be driving the same I/O and hence will need the same power.
Current consumption for the core of an ARM Cortex or a Freescale MCF51QE 32-bit part is given as about 0.5mA per megahertz – this is well into 8-bit territory as it stands, but you can often run the 32-bit machine slower than an 8-bit machine to deliver the same performance; so in practice, core power consumption will often be similar.
So are 32-bit MCUs more complex and difficult to code? The traditional view is that 32-bit processors come with baggage such as cache handling, multi-stage pipelines, and memory management units.
In fact, the low-cost 32-bit MCUs have had features stripped out to allow them to meet tight price points, so they are not as complex as their high-end cousins. And manufacturers have also worked hard to make them easy to work with. So for instance the ARM Cortex (from ST-Microelectronics) has a three-stage pipeline with branch prediction. The effect is to enable the CPU to process more than one instruction per clock, but the workings are effectively hidden from the programmer, so the perceived complexity is low.
Perhaps the most compelling argument in favour of the 8-bit device is the hard real-time performance. 8-bit suppliers would claim that an 8-bit MCU running a tight loop, hand-coded in Assembler, is the way to achieve the best real-time performance.
But very few applications require extreme real-time performance. The latest ARM Cortex device from STMicroelectronics claims an interrupt latency of 6 clock cycles (inter-interrupt), with better than one instruction per clock. This puts 32-bit MCUs safely in the real-time domain.
The 8-bit fights back
So what are the 8-bit suppliers doing to counter these arguments? Some manufacturers are beginning to equip 8-bit MCUs with features normally only found in 32-bit devices, such as Ethernet MACs and In-Circuit Emulation sub-systems.
Clocking rates have also been increased to provide higher performance than could previously have been expected from an 8-bit device. The Freescale HCS08-based MC9S08QE128, for instance, runs at 50MHz. And 8-bit parts are starting to break free of an old straitjacket – their inability to offer more than 64kB of address space.
As an example, in the MC9S08QE128, Freescale has for the first time integrated 128kB of program memory on an 8-bit MCU. We can expect to see this approach continue: by offering more peripherals, more memory and higher clock speeds, suppliers hope that 8-bit users will take the low-risk option – and live with the limitations – of sticking with their current architecture.
Some of the newer entrants into the market are taking a revolutionary (as opposed to an evolutionary) approach. For example Cypress Semiconductor with its 8-bit PSoC family does away with the concept of fixed peripherals; PSoC devices contain an 8-bit processor core with programmable digital and analogue building blocks.
These blocks allow the user to dynamically reconfigure their own peripheral set on the fly (see figure1) – a fascinating alternative to the high-powered but fixed peripheral set offered by the low-cost 32-bit MCUs. Supported by a ‘C’-friendly core and excellent design tools, PSoC gives the user the ability to address multiple product specifications with a single part or family of parts.
Is there a successor to the 8-bit MCU in sight?
It seems likely that in the medium term, the 8-bit MCU will survive and thrive. Product designers now benefit from an unprecedented choice of products as the 8- and 32-bit worlds fight it out for market dominance.
And it will certainly be interesting to look back in ten years to see if the well known 8-bit suppliers of today are still producing their traditional core products, or whether another architecture – one of the 32-bit machines above or their respective successors – will have become a universal microcontroller.