Spring is sprung. The grass is riz. I wonder where the chips they is. – Justifiably Anonymous
Springtime means growth. Growth means change. Change means adjusting to new things.
For TI’s perennial MSP430 family of MCUs, today marks the start of a new season. A new branch on the family tree, if you will. For today, the MSP430 grows up – to 32 bits. It has reached that awkward adolescent stage where it has outgrown its toy box but isn’t quite ready for a desk job. It was time for a big change, a growth spurt, and that transition always comes at a price.
For you see, the new 32-bit version of the MSP430 isn’t compatible with the younger version of itself. Oh sure, they share a family resemblance, but they’re not really in the same league. The grown-up MCU has all new friends and is hanging with the cool kids now.
For those of you just joining this saga, the MSP430 has been TI’s bread-and-butter 16-bit MCU for years and years. It was designed as a mixed-signal processor (hence the MSP prefix) with an emphasis on low-cost motor control, audio work, and analog I/O. Many have LCD controllers, and there are dozens of variations of clock speed, memory capacity, and peripheral mix. Overall, there are hundreds of different MSP430 SKUs you can choose from.
What the entire MSP430 family has in common is a proprietary 16-bit instruction set that TI designed in the previous millennium. It features a fixed 16-bit instruction word and sixteen 16-bit registers (although only 12 of those registers are really free for programmer use). MSP430s are good, solid MCUs with a hint of DSP functionality added. They’re cheap, they’re plentiful, and they’ve got good software support from TI and from third parties. In short, they’re a good choice for about a zillion different small embedded sockets.
What they don’t have is an upgrade path to 32 bits. If you were an MSP430 programmer hankering for more performance or the ability to address decent amounts of memory, you had to look elsewhere. MSP430 speeds were decidedly in the low double-digits, and addressing was limited to 16 bits – 20 bits with a tailwind.
Rather than force loyal programmers to leave the farm in search of growth opportunities, TI spent about four years hatching an upgrade plan. In a sense, it’s a bold departure from the MSP430. But it’s also the most natural thing in the world.
Say hello to the MSP432. (See how the “32” in the name suggests 32-bittedness? Did you see that?) It’s exactly like the MSP430, but with an ARM Cortex-M4F CPU in its beating heart. So it’s not like the MSP430 at all. The two product branches are completely binary incompatible with each other.
It’s not that bad, and, really, TI didn’t have much of a choice. It’s pretty tough to extend an existing 16-bit MCU architecture to 32 bits without breaking compatibility. Almost nobody has. Instead, the 16-to-32 leap almost always entails a complete redo of the software architecture and the programmers’ model. And, in fact, that’s exactly what ARM’s Cortex M-series was designed to do: straddle the boundary between 16-bit MCUs and its mainline 32-bit family. Once you go ARM, you never go back, or so the thinking goes.
Besides, TI was among the first – if not the very first – investor in ARM, back when the latter was just an unknown British startup. They have history. If TI were going to adopt anyone’s CPU architecture, it was going to be the one from Cambridge. Besides, everyone else is doing it. Creating its own 32-bit CPU from scratch would have meant going it alone and shouldering the burden of developing all-new compilers, debuggers, development tools, and everything. These chips aren’t expensive enough to support that kind of development effort. Better to (re-)join the ARM bandwagon and get all the third-party support for free.
So how do you migrate your ancient but reliable MSP430 code over to the new MSP432? Well, it goes something like this. TI helpfully provides a 20-page application note on precisely that topic, which all boils down to: write everything in C and be prepared to spend some time tweaking it.
Given that the existing MSP430 family has 16-bit instructions, registers, and data but the new MSP432 devices will have 32-bit everything, it was never going to be a slam dunk. Even in C code, an int variable is going to be a different size between the two chip families. Be really careful that your index pointers don’t run off into space, a billion bytes beyond the boundaries. Interrupt handling is also going to be a lot different, and most of the tools are going to be new. What did you expect?
On the plus side, a lot of the MSP430’s familiar peripherals will carry over to MSP432 chips. The details of their configuration may change a bit, but they’re fundamentally the same timers, ADCs, UARTs, and USB controllers that you’ve grown up with. And TI’s Code Composer Studio is still here, tweaked to support the new instruction set and memory maps.
Then there are the advantages. A lot of advantages. Apart from the CPU promotion, the MSP432s will also get a fabrication upgrade. These will be the first chips manufactured with TI’s new ultra-low-leakage 90nm silicon design rules, putting them at the cutting edge of MCU technology, at least by TI standards. The company says power consumption is as low as 90µA per MHz (up to 48 MHz) while actually running real code. Various sleep modes drop that considerably lower, of course. Voltages can range from 1.62V up to 3.7V without slowing down or burning up. The on-chip SRAM is divided into eight banks, not because of addressing limitations (like the old MSP430), but because it allows you to power-down seven of the banks to save energy. The on-chip flash memory is divided in half for the same reason. And the chips come with peripheral driver code already burned into on-chip ROM (not flash), because ROM executes faster and doesn’t use as much power. Clever.
All the power-saving measures seem to have worked, too. According to the EEMBC ULPBench benchmark, the initial MSP432 ranks a close second in efficiency, narrowly losing out to a Cortex-M0+ device and beating the next-best TI MCU by about 35%. TI clearly wanted to stake out the low-power territory here, and they spent good money to get there.
MSP432 is also appealing to the cost-conscious developer. Apparently believing that its $35 development boards were too expensive and might scare off potential designers, the company offers a $12.99 LaunchPad board for MSP432. Software tools cost too much? There’s a free web-based “Cloud IDE” available for MSP432. Now anyone with 13 bucks in their PayPal account can start down the path to IoT fame and fortune.