I recently conducted a tradeoff study (see Table 1) on several 16 and 32-bit low-power microprocessors for a handheld device in the biotech industry. There are four key areas of concern: power/current consumption, physical package size, cost, and compiler/firmware support. Texas Instrument's low-power 16-bit MSP430 family has traditionally been a first choice for this sort of application. The Renesas family of 16-bit micros is competitive with the MSP430 in pricing but does not beat the MSP in power consumption. However, the new ARM Cortex offering from ST Microelectronics, is the first chip on the market giving TI a serious run for its MSP money.1, 2, 3
Pricewise the ST blows away the MSP by slicing the cost by a half to a third depending on quantity. For 100 piece minimum orders (quoted from Digikey) the ST Cortex STM32F103 is priced at $6.37. The MSP430F2617 is $12.63, and the Renesas DF38099 is $11.34. At the time of this article I was still awaiting distributor responses for high volume pricing, however, the local Avnet rep claimed unofficially that the ST Cortex in million piece quantities is in the $3.00 range, while the MSP is in the $10 range. Considering that the ST is a 32-bit chip capable of up to 72 MHz whereas the MSP is only 16 bit and 16 MHz, this pricing scheme is extremely competitive for high-volume products.
The physical package size of the ST Cortex is 7mm x 7mm, vs. the MSP's 10×10. Although the MSP430FG4618 comes in a nice compact BGA array, the F2617 and F2618 are only available in the larger leaded LQFP package size. The Renesas chip is actually larger (14×14).
The Cortex here is so far positioning itself very well for price, performance, and space-critical applications. However, the key factor for battery-powered applications is going to be power (current) consumption. In attempting to determine the feasibility of these microprocessors for use in a limited battery powered application, I decided to conduct a theoretical study of total average current consumed over the full life-cycle of the firmware application.
The calculation method for current is based on how TI calculates current in the MSP430 (see focus.ti.com/lit/an/slaa024/slaa024.pdf, page 422). It's also interesting to note how to correctly calculate the error in the clock and crystals for microprocessor circuits, shown in focus.ti.com/lit/an/slaa322/slaa322.pdf and http://focus.ti.com/lit/an/slaa225/slaa225.pdf.4, 5, 6
The key factor here is the amount of actual time spent in which of the various low-power modes available for each chip. Since the Renesas at this point appeared to be less competitive in current and package sizes and only slightly cheaper than the MSP, I focused primarily on the MSP vs. the ST ARM Cortex. The MSP430 is optimally run in LPM3 (low-power mode 3), which shuts off the CPU, the main clocks, and most peripherals. However, the ACLK which is driven by an external 32 KHz crystal, is still active and can be set to count to up to two seconds at a time before the 16-bit counter will wrap around. Implementing a real-time clock (RTC) for time-stamping medical data points was another important spec, so with the MSP you need to wake up the processor for very short periods of time to increment second, minute, hour, day counters, and so on, and decide whether the CPU needs to carry out the next calculation step or can be put to sleep again. Because the MSP's sleep mode current is so low, and the RTC point step being only a few if statements in the code, the overall average current between computational steps is the lowest.
The ST ARM Cortex has two possible low-power modes to compete with the MSP's LMP3. The lowest shuts off the entire chip and powers the RTC clock only via an external battery power source. This low-power mode is still more than the MSP in total average current but is competitive. However, it does not retain RAM (unlike the MSP), which means that you will need to either restart your main loop upon wake up or page in and out RAM to flash when waking up or going to sleep, which is an additional time to add onto the processing time. Since the max speed is four times faster than the MSP, and the MIPS slightly more efficient, you will have a smaller total computational time slice with the ST than you will with the MSP. That means that with both chips in full-power mode, with the CPU active and churning math calculations, the MSP will need to run longer than the Cortex in order to get the same result. However, the active mode current is also lower with the MSP. Because the Cortex has a 32-bit RTC it can remain in sleep mode for longer periods of time.
For our particular application, it was determined that the computational step needed only to be carried out once every five minutes. However, since I have not actually ported the actual algorithm yet to MSP firmware, it's not known precisely how long this computational step will take. Therefore, I invent the parameter Tproc (for processing time) and vary this on the vertical axis. This is the time that both chips run in active power mode at full current. Since the Cortex runs faster, I scale Tproc down by a factor of 8 as compared with the MSP for ballpark apples-to-apples estimates. From here, I calculate the average current in low-power mode and in active mode; I then average the total current. From here I estimate current consumption and battery life based on a 100 mA-hour rechargeable Lithium ion cell pack. The current-consumption and battery-life charts are shown in Figures 1 and 2. As you can see, the MSP is the clear winner as far as total average current. However, depending on how long Tproc is, the difference between the MSP and the Cortex changes quite a bit.
IAR is a reputable microprocessor firmware compiler vendor that is the compiler of choice of the Avnet rep for both the MSP430 and the ST ARM Cortex. It costs $2,500 per license for the MSP and about twice that for the Cortex. TI has sample source code available for free downloads for each of its family of MSP's for the IAR compiler in C and assembly. TI's telephone support for the MSP family is good and I was able to get a real live person quickly several times when porting from the F1611 to F2617 families. There was one pesky difference in the UART timing that is not very clearly documented. Otherwise, it was straightforward. ST has telephone support out of its Arizona field office, and one of my colleagues has had good success in past projects with firmware support questions. So again, they appear to be neck and neck.
Now, for this particular application, the calculation step needs to be carried out only every five minutes. In this scenario (and any other similar scenario that needs only to be carried out once ever X minutes/hours/days), assuming that in fact no additional signal processing needs to be carried out such as averaging sampled data points, the Cortex is quite competitive. Because we can remain in low-power mode, and we only need to wake up every now and then, and then fire up the CPU, the faster speed gets our job done slightly quicker, and we can jump back into sleep mode. Although the MSP is in fact still lower current, the difference is not all that significant when you factor in price and package size.
For other applications, however, where the calculation step needs to be carried out much more frequently (on the order of seconds or milliseconds) or sample and averages or digital FIR filtering must be implemented in the firmware, the MSP is clearly superior due to its ability to quickly switch between modes and not lose RAM data.
In summary, for small periodic calculations that occur frequently, the MSP430 is better suited. For less frequent larger calculations, the ARM Cortex offers a better power vs. price vs. performance solution.
Special thanks to TI technical support, Tom Baugh of Softbaugh7 and Avnet for additional information not found in the datasheets.
Ed Hopkins , an electrical engineer, did his undergraduate work at Dartmouth College. He spent 10 years as a software developer and consultant before going back to Dartmouth for an MSEE. Now, he consults in software, firmware, analog, and digital circuit-board design and layout. His LinkedIn Network ID is www.linkedin.com/in/edwardehopkins.
2. ST ARM Cortex STM32F103 datasheet.
3. Renesas DF38099 datasheet.
4. Bierl, Lutz. TI Application Note: “MSP430 Family Mixed Signal Microcontroller Application Reports.”
5. Albus, Zack. TI Application Note: “MSP430 32-KHz Crystal Oscillators.”
6. Spevak and Forstner. TI Application Note: “MSP430 LFXT1 Oscillator Accuracy.”