50
\$\begingroup\$

I am working on a project with a group and I am responsible for the digital part of the project, so I will be writing the code. To go from Analog to Digital, I have to choose a microcontroller.

I was looking at TI microcontrollers and found that they have so many. They have:

  • Stellaris

  • Hercules

  • MSP430 Series

  • And the list just goes on..

My questions:

  • Which micro controller does one use and why ?

  • Under what conditions should I use microcontroller X rather than Y ?

  • Why are there so many different micro controllers?

\$\endgroup\$
12
  • 5
    \$\begingroup\$ Because you make up your mind on your requirements, then search and find one that matches 90% instead of just buying one that can do all and 150% more for thrice the price. \$\endgroup\$
    – PlasmaHH
    Commented Jan 25, 2016 at 21:26
  • 4
    \$\begingroup\$ @PlasmaHH 90% is not a good choice :) \$\endgroup\$
    – Eugene Sh.
    Commented Jan 25, 2016 at 21:37
  • 41
    \$\begingroup\$ Why are there so many cars to choose from when I just want a way to commute to my work? \$\endgroup\$ Commented Jan 25, 2016 at 21:52
  • 10
    \$\begingroup\$ Super-mega roughly: 1) MSP430: low power & battery applications; 2) C2000: motor control & power electronics; 3) Tiva (TM4C): general purpose ARM processors; 4) Sitara: much more advanced (cortex A8, A9 and so on), you can run linux on it; 5) Hercules: safety applications. Also there are many DSPs (C5000 and C6000). This link might be helpful. Also TI has many selection guides link I haven't used personally even 10% of them, so can't say more... \$\endgroup\$ Commented Jan 25, 2016 at 21:55
  • 9
    \$\begingroup\$ Part of the answer is that TI has bought a number of successful and semi-successful microcontroller manufacturers and continued development and production of those lines. \$\endgroup\$
    – DoxyLover
    Commented Jan 25, 2016 at 22:04

4 Answers 4

139
\$\begingroup\$

I am a TI employee who works in an MCU development group, but this is not an official statement from TI. In particular, this is not an official statement about roadmaps or priorities. Also, I'm not in marketing, so if I contradict any of our marketing material, they're right and I'm wrong. :-)

M D's answer is correct, but I thought some more detail would be helpful. TI targets different applications with different requirements. When you're competing for an MCU socket (and there is a lot of competition in this industry), both features and price matter. A ten cent cost difference can win or lose the socket. One of the main drivers of cost is die size -- how much stuff is on the chip. Thus, it makes sense to have different product lines, and different families within those product lines. Product lines differ mainly in peripheral types and architecture, while families within a line products differ mainly in terms of cost and feature set.

Here are some details on the product lines:

  • Hercules is a continuation of the TMS470/TMS570 line. It's focused on safety and performance. One of the key features of Hercules is dual CPUs running the same code in parallel ("lock-step"). This lets you immediately detect faults in the CPU itself. Check out this datasheet for some performance info on a newer product. The Cortex-R5F CPU runs at >300 MHz, and there's a large number of peripherals with higher-end features -- the CAN modules have 64 mailboxes, for example. Obviously, this stuff isn't cheap. But look at the applications -- defibrillators, ventilators, elevators, insulin pumps... these are places where customers are willing to pay for safety. Hercules also goes into automotive products that have a wider temperature range and longer operating life.
  • C2000's focus is on supporting control algorithms. The C28x "CPU" is really a DSP, and its instruction set has been extended to handle things like trigonometry and complex numbers. There's also a separate task-based processor called the Control Law Accelerator (CLA) that can run control algorithms independently of the CPU. The ADCs and PWMs support a lot of timing options, too. Performance varies from midrange (Piccolo) to high-end (dual-core Delfino). The big applications here are power converters, power line communication, industrial drives, and motor control.
  • MSP430 is all about low power. They have some products that use FRAM (ferroelectric nonvolatile memory), which uses less power than flash, and even one that runs off of 0.9V (one battery). They have some less-common peripherals to support things like LCDs and capacitive touch sensing. Look through their datasheets and you'll see applications like remote sensors, smoke alarms, and smart meters.
  • I don't know much about the Wireless MCU group, but obviously wireless connectivity has its own special requirements. They seem to have Cortex-M and MSP430 CPUs, with applications in consumer electronics and the Internet of Things. IoT has been a big buzzword for a while now, so I'd imagine that's one of their main targets. Their newest (?) product is described as an "Internet-on-a-chip™ solution". UPDATE: Fellow TIer justinrjy commented with more info about Wireless/Connectivity MCUs: "'Wireless MCU' products are distinguished by having a processor core that runs the drivers/stack of the wireless protocol. For instance, the CC26xx runs the entire BLE stack on the uC itself, making it really easy to develop for. Same with the CC3200, except that processor runs the WiFi drivers all on the Cortex-M4. The integrated core and drivers are really what make these a 'Wireless MCU', instead of a transceiver."

As you can see, these product lines are targeting very different applications with very different requirements. Putting a 300 MHz Hercules chip into a battery-powered device would be a disaster, but so would putting an MSP430 into an airbag. Physical size can also matter. A 337-pin BGA package is awkward to fit in a tiny sensor, but it's nothing for a piece of industrial equipment.

Within the product lines, there are multiple families. C2000 Delfino devices are faster, have more peripherals, and have more pins on their packages. They can also cost (at least) twice as much as a Piccolo device. Which one do you need? It depends on your application. MSP430 has some products that balance power consumption and performance, and others that focus solely on low power. (That one-battery MCU maxes out at 4 MHz and 2 kB of RAM.)

There are many products within each family because new products are developed all the time. Transistors get smaller/cheaper, so more stuff can go on a chip. A mid-range MCU today would have been ultra-high-end ten years ago. Each product is usually made to target a few specific applications and support others where possible.

Finally, there are multiple variants of each product (AKA the last digit in the part number). These usually have different amounts of memory and (maybe) small variations in what peripherals are available. Again, this is all about providing a price range.

The short version is that each product provides a different balance of price, performance, and features. It's plain old market segmentation. Our customers are manufacturers, who care much more about small price differences than end users. People buy every part number we have, so clearly the demand is out there. :-)

UPDATE: Jeremy asked how the requirements of big customers affect the design process, and whether we make custom MCUs. I've seen several TMS470/570 MCUs that were made for a single large automotive customer. That group also had a couple MCUs whose architectures were designed by and for one customer. In at least one of those, the customer wrote most of the RTL. Those are under heavy NDA restrictions, so I can't give details.

General market products usually have at least one big customer in mind. Sometimes big customers get a special part number. Sometimes we'll add a peripheral just to win a big socket. But in general, I think big customers are more of a floor than a ceiling when it comes to features.

An extreme example of custom parts is our high-reliability group. I've only heard stories about these guys, but apparently they take existing products and remake them to work in extreme conditions -- high temperatures, radiation, people shooting at you, etc. I know someone who buys HiRel TMS470s for down-hole drilling, where the temperature can reach 200C. (Maybe this one -- in stock at Arrow for only $400/chip!) They have a bunch of standard products listed on the web site, but from what I've heard, they can build to order even in small quantities -- you can buy a dozen HiRel versions of any chip you want if you're willing to spend $50,000+ per chip. :-)

As a rule of thumb, everything in business is negotiable if you're spending enough money.

\$\endgroup\$
11
  • 3
    \$\begingroup\$ Wow what an answer! Fantastic! Thank you sir for taking some of your precious time and answering my question thoroughly.I love TI, and I would love to work for TI someday.You guys are doing great things at TI. \$\endgroup\$ Commented Jan 26, 2016 at 5:28
  • 5
    \$\begingroup\$ @Jeremy: For enough money, you can basically get anything (that money could buy). But be aware that your idea of "large volume" and the one by the manufacturer might not exactly match up. I remember that the RaspberryPi Foundation had a really hard time doing business with Broadcom, since they (Broadcom) usually don't deal in such "low" numbers... \$\endgroup\$
    – DevSolar
    Commented Jan 26, 2016 at 11:54
  • 6
    \$\begingroup\$ Ten Cents? I once worked in a place where shaving 1/10 of a cent off the cost of production was worth more than a year's salary for a senior engineer. Of course, at that scale, they weren't buying discrete MCUs: They were licensing the IP and using it in fully-custom ASIC designs. \$\endgroup\$ Commented Jan 26, 2016 at 19:48
  • 5
    \$\begingroup\$ TI Applications Engineer chiming in here - I might be able to fill the gap a bit on info regarding the Connectivity/Wireless MCU portion! "Wireless MCU" products are distinguished by having a processor core that runs the drivers/stack of the wireless protocol. For instance, the CC26xx runs the entire BLE stack on the uC itself, making it really easy to develop for. Same with the CC3200, except that processor runs the WiFi drivers all on the Cortex-M4. The integrated core and drivers are really what make these a "Wireless MCU", instead of a transceiver. \$\endgroup\$
    – justinrjy
    Commented Jan 27, 2016 at 8:16
  • 2
    \$\begingroup\$ @Rev1.0, Hard Disk Drives for commodity PCs. \$\endgroup\$ Commented Jan 27, 2016 at 19:45
28
\$\begingroup\$

MSP430 was/is a TI developed core. It is a 16-bit core and has been marketed as extremely low power. Because the 16-bit MCU market is quickly evaporating with the proliferation of the Arm Cortex-M0, there are newer MSP430s that are based on the Cortex core. The older MPS430s are typically competing for 8-bit sockets now.

Stellaris, rebranded as Tiva, is the former Luminary Micro MCUs. That company was acquired by TI maybe 6 or 7 years ago. These were (are?) Cortex-M3/M4 based devices. More capable/powerful than the MSP430 in most circumstances.

C2000 (Piccolo/Delfino/etc.) are targeted at real-time control (motor control, power conversion/regulation, etc.). This family also has lower end DSP functionality. Targeted more at industrial, and perhaps some automotive (one of the few automotive qualified TI MCUs).

Hercules are focused on safety. Redundancy, run-time error checking, BIST, lots of watchdog functionality. Safety critical applications.

There are several other parts that have some mix of features and/or niche functionality (i.e., integrated wireless, dual core, FRAM, etc.). And then there are the more capable DSPs and Microprocessors offered, as well.

What is your application? Volume? Development timeline? What peripherals/resources do you need? How much - and what kind - of processing power is required? Can you get by with the lower performance analog peripherals of the MCU, or will you be doing all signal path processing externally/discretely? There are many factors in choosing a processor/controller for a particular system/application.

\$\endgroup\$
3
  • 6
    \$\begingroup\$ The low power Cortex cores are called MSP432 to (minimally) distinguish them from MSP430. Stellaris became Tiva. And the Hercules series is itself divided between automotive, and industrial/medical series - mainly on temperature range and CAN support for automotive I think. \$\endgroup\$
    – user16324
    Commented Jan 25, 2016 at 22:30
  • 1
    \$\begingroup\$ At one point IIRC, the Hercules were Cortex-Rx cores, complete with dual lock-step instruction pipelines. Intended for usage in brake controllers, airbag modules, etc. \$\endgroup\$ Commented Jan 25, 2016 at 22:58
  • 1
    \$\begingroup\$ Very good answer. You seem to know alot about TI. I didn't know they acquired Luminary Micro MCU. Thank you for your time. \$\endgroup\$ Commented Jan 26, 2016 at 5:29
18
\$\begingroup\$

Microchip is another company that has a complete line of microcontrollers -- over 4,000 stocked at Digi-Key, including all package variants. Like TI, they span the gamut from 8 bit to 32-bit:

~2700  8-bitters: from 384 bytes Flash and 16 bytes RAM to 128 KB Flash and 4 KB RAM 
~1000 16-bitters: from 4 KB Flash and 256 bytes RAM to 1 MB Flash and 96 KB RAM
 ~500 32-bitters: from 16 KB Flash and 4 KB bytes RAM to 2 MB Flash and 512 KB RAM

Note the smallest is spec'ed in bytes, not KB.

They range in price from 35¢ to $13.36 in single quantities. I imagine the lowest priced ones may go for under 20¢ in large quantities. Maybe even 10¢ for untested ones (where the customer does acceptance testing instead of the manufacturer). The cheapest 32-bit ARM is twice as much in single quantities at 76¢. For a high volume product, that is a big difference. The PIC10F200 is the cheapest µC of all the nearly 15,000 that Digi-Key stocks.

Microchip also has an excellent reputation for maintaining stocks of its older µC's (listed in the product selector below as "Mature"), which is another thing to consider.

How to make sense of all of that? Use a product selector. Digi-Key, Mouser and other distributors have fairly good ones, but they don't include all parameters (Digi-Key's µC product selector has less than 20, the table below has over 50). Microchip (and I imagine other manufacturers) have more extensive ones, such as the one below. Note that you can give ranges for almost all of the parameters:

enter image description here

Now with Microchip's acquisition of Atmel it will be interesting to see what happens. Seems there is quite a bit of overlap in some lines.

\$\endgroup\$
15
\$\begingroup\$

Without going into exact detail which offerings TI has (that has already been answered here), I would like to emphasize that you need specifications. If you don't have them, assume it's your job to identify them. This may be a bit overwhelming if you're new, but let's name a few specs that may occur in a project:

  • What will the MCU do? Is it constrained by CPU time? Are you going to do some "special processing" like floating point? This will determine the CPU core & clock speed required.

  • Or is it constrained by battery life? If so; you need to investigate the standby modes a microcontroller has to offer, latency to wake, wake-up sources, voltage rail for digital & analog (e.g. if you power it directly from battery), etc. Additionally, take note of all I/O in the system as well. You can have a great microcontroller that consumes 50nA during sleep - but it's negligible if e.g. an LDO or an EEPROM is consuming 10uA quiescent.

  • What package can/do you need to use? How many pins & what technology? How much space do you got, what can you get assembled?

  • How much code are you going to write for it? Do you have any idea how much RAM/FLASH you need? Some hands-on experience on a devboard can help with this.

  • What interfaces do you need to use in your system design, and how do you want to use them? Basic start points:

1) Speed constraints (e.g. I need a USART running at 3MBaud)

2) Port count constraints (e.g. I need 5 USARTs)

3) Throughput constraints (e.g. I need DMA to transfer 2Mbps of data to/from the USART)

4) Observe any "events" that may happen in the system and what latencies you must meet. E.g. can you poll an alert pin of a device or do you need external interrupt pin for it?

This can be a tough question no matter if you design "bottom up" or "top down". If you design "top down" you may figure out at this point there is no microcontroller with 16 USARTs that the system design took for granted.

OTOH if you design "bottom up" you may pick a microcontroller that you know and are familiar with, but find out that it doesn't have the right amount of I/O, and needs "glue chips" to work.

If anything; make yourself familiar with the offers of the vendors. It's nice to know where the constraints are when you punch all your wishes into a parametric search and get 0 results.

  • Any other particular constraints? As mentioned; some microcontrollers have very specific peripherals for power management (hi-res PWM modules) or safety (redundancy, deterministic watchdog & reset cycles, etc.).

It is always a good idea to identify the bottlenecks in a design and try to resolve them. A development board can be a good "hands on" experience to test your code in terms of CPU time, memory requirements, and "quirks" the microcontroller may have.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.