Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Controls/MCUs

Explore 8-bit, 32-bit MCU options for IoT apps

Posted: 06 Jan 2016 ?? ?Print Version ?Bookmark and Share


In the midst of the show floor at Embedded World, I discussed with an excitable man with a glorious accent. When I told him about our newly launched EFM8 MCUs, he stopped me and asked, "But why would I want to use an 8-bit MCU?" This wasn't the first time I had heard the question, and it certainly won't be the last.

It's a natural assumption that just as the horse-drawn buggy gave way to the automobile and snail mail gave way to email, 8-bit MCUs have been eclipsed by 32-bit devices. While that MCU transition may become true in some distant future, the current situation isn't quite that simple. It turns out that 8- and 32-bit MCUs are still complementary technologies, each excelling at some tasks while performing equally well at others. The trick is figuring out when a particular application lends itself to a particular MCU architecture.

This article compares use cases for 8-bit and 32-bit MCUs and serves as a guide on how to choose between the two MCU architectures. Most of our 32-bit examples will focus on ARM Cortex-M devices, which behave very similarly across MCU vendor portfolios. There is a lot more architectural variation on the 8-bit MCU side, so it's harder to apply apples-to-apples comparisons among 8-bit vendors. For the sake of comparison, we will use the widely used, well-understood 8051 8-bit architecture, which remains popular among embedded developers.

On optimization and holy wars
Sometimes when I'm comparing things that people know (like ARM and 8051), I feel like I just posted "Star Trek is better than Star Wars" on an Internet forum. Things can get heated quickly.

The truth is that "Which is better: ARM Cortex or 8051?" is not a logical question. It's like asking, "Which is better: a guitar or a piano?" A much better question is "Which MCU will best help me solve the problem I'm working on today?" Different jobs require different tools, and our goal is to understand how best to apply the tools we have, including both 8-bit and 32-bit devices. Anyone who provides a simple answer to the "ARM versus 8051" question almost certainly has an agenda and is trying to sell something.

To compare devices, you need to measure them. There are a lot of build tools to choose from, and I've tried to select scenarios I believe provide the fairest comparison and are most representative of real-world developer experiences. The ARM numbers below were generated with GCC + nanoCLibrary and -03 optimization.

I made no attempt to optimize the code for either device. I simply implemented the most obvious "normal" code that 90 percent of developers would come up with. I am much more interested in what the average developer will see than what can be achieved under ideal circumstances. It's certainly possible to spend a lot of time, effort and money tweaking 8051 code to make it do a job better suited to an ARM (or vice versa), but it's much easier to simply pick the best tool for the job in the first place.

Not all MCUs are created equal
Before we begin comparing architectures, it's important to note that not all MCUs are created equal. If we pit a modern ARM Cortex-M0+ processor-based MCU against an 8051 MCU built 30 years ago, the 8051 won't stand a chance in a performance comparison. Fortunately, a number of vendors have made continuing investments in 8-bit processors. For example, Silicon Labs' EFM8 line of 8051-based MCUs has been updated to be far more efficient than the original 8051 architecture, and the development process has been modernized. The result is an 8-bit core that can easily hold its own against an M0+ or M3 core in many applications, and can even perform better in some.

Development tools are also important. Modern embedded firmware development requires a fully-featured IDE, ready-made firmware libraries, extensive examples, comprehensive evaluation and starter kits, and helper applications to simplify things like hardware configuration, library management and production programming.

Once an MCU has a modernized 8-bit core and development environment, there are many situations in which that MCU will excel in comparison to ARM-Cortex-based counterparts.

General trade-offs
Before we dig into core architectures and other technical details, it's important to convey some general guidelines and context. In my college days, I remember taking a test and being so intent on scoring better and finishing before my classmates that I didn't notice that the test had been printed on the front and back of each page. Needless to say, I did finish first, but it's not an experience I'd care to repeat. There is no sense in analyzing complex MCU features and functionality if an application simply requires 256 KB of flash or volume pricing of $0.25. Those requirements are enough to indicate which MCU architecture is the best fit.

System size
The first generality is that ARM Cortex-M cores excel in large systems (> 64 KB of code), while 8051 devices excel in smaller systems (Ease of use vs. cost and size
For systems sitting in the middle ground where either architecture can do the job, the big trade-off is between the ease of use that comes with an ARM core and the cost and physical size advantages that can be gained with an 8051 device.

1???2???3???4?Next Page?Last Page

Article Comments - Explore 8-bit, 32-bit MCU options fo...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top