I plan to use a microcontroller on my project. But I don't know which one should I use. I know the features the microcontroller will need to have but many manufacturers can fit my need.

Should I choose TI, Microchip, Arm? What is the difference except operating voltage level?

  • \$\begingroup\$ No reasonable selection can be made without stating your requirements. Requirement-free questions like this are not permitted, because they invariable degenerate into "my vendor can beat up your vendor" And even if they were allowed, they'd be duplicates of the many times someone has tried to ask this before. \$\endgroup\$ – Chris Stratton Jun 10 '17 at 20:16
  • \$\begingroup\$ @ChrisStratton, on the contrary, given specific requirements, this becomes a shopping question. Without specific requirements it's a "what should I look for" question, which is exactly what we prefer. \$\endgroup\$ – The Photon Jun 10 '17 at 20:22
  • 1
    \$\begingroup\$ In that case it's too broad. And invariably a many-times duplicate too. Stack Exchange sites are fundamentally reserved for specifics, not general advice. \$\endgroup\$ – Chris Stratton Jun 10 '17 at 20:24
  • \$\begingroup\$ Most attempts to re-ask this seem to get closed as duplicates of this one: electronics.stackexchange.com/questions/37423/… \$\endgroup\$ – Chris Stratton Jun 10 '17 at 20:26
  • \$\begingroup\$ Avaiable. Does what you want. Free or low cost development tools available. Easy for you to use. Well supported. Low impact on system cost. \$\endgroup\$ – Russell McMahon Jun 11 '17 at 8:10

Should I choose TI, Microchip, Arm?

ARM doesn't make any actual chips. They just license their design to chipmakers. Microchip (Atmel) and TI (among others) both make chips based on ARM architecture.

What is the difference except voltage operating level?

Peripherals: Different chipmakers will include different combinations of peripherals on their microcontrollers. One or the other might be a better match for your application.

Tools: Each chipmaker provides their own development tools for their chips. Third-party tools are also available for many microcontrollers. You might find you like one set of tools better than the others, which would be a point in favor of using the chips supported by that tool. FWIW, TI's free tool is based on Eclipse while Atmel's (a Microchip subsidiary) is based on Visual Studio. Microchip's tool for their legacy parts (pre Atmel acquisition) is (AFAIK, I haven't used it) proprietary.

Performance: Different chipmakers might offer microcontrollers with better or worse performance by some metric, such as clock frequency, power consumption, etc.

Architecture: As mentioned before, many chipmakers produce ARM-based chips, and these are very popular. But proprietary architectures are also still out there. You might find you prefer one or another, or that one is particularly suited to your application. Microchip's PIC architecture, for example, is a Harvard architecture, which has some advantages for keeping code and data separate (preventing code from being corrupted by rogue instructions meant to act on data).

Support: Some vendors might make it easier to contact an applications engineer to get help when you have trouble with their parts. Others might only provide a bulletin board system where users can help each other. Others might provide even less.

Price: Different vendors have different strategies for pricing and marketing. One might offer very low prices but only for very high volume customers. Others might have higher prices but give good support to smaller customers. Etc.

  • \$\begingroup\$ MC bought Atmel? DAMMMMNNNN. \$\endgroup\$ – Passerby Jun 10 '17 at 20:33
  • \$\begingroup\$ Microchip's MPLAB X is based on NetBeans. \$\endgroup\$ – Jeanne Pindar Jun 10 '17 at 23:20
  • \$\begingroup\$ "Atmel's [free toolchain] is based on Visual Studio." ... but of course Atmel's chips are probably more commonly-used with the Arduino toolchain, which is lighter-weight and more beginner-friendly. \$\endgroup\$ – Jules Jun 11 '17 at 0:59
  • \$\begingroup\$ @Jules, for hobbyists, maybe; not in industry. \$\endgroup\$ – The Photon Jun 11 '17 at 1:53
  • \$\begingroup\$ @ThePhoton - Yes, but (1) hobbyists massively outnumber professionals, and (2) the OP is almost certainly a hobbyist. \$\endgroup\$ – Jules Jun 11 '17 at 2:12

Unless you are targeting a specific feature, nearly all microcontrollers are the same.

How you choose can be up to you, but these are some of the things I look for when I am selecting a device or have looked for when choosing a device.

  1. What's my experience with the device ? If I have used a device before, that experience of knowing what to do (and what not to do) can save time. Also, if I have used the device before, I may already have developer tools (programmers, debuggers, toolchains etc..) for that device.

  2. How much support is available ? Is there a large community that I can ask for help if I need help. The major players (TI, Microchip, ST etc..) have good communities and there are lots of projects out there that use them. I came across a Zilog product, and I haven't heard of Zilog in over 10 years, and I don't know anyone using Zilog (except for this one product).

  3. How available are parts / dev boards ? Getting a dev board lets you get up and running quickly or having parts that can be easily soldered or breadboarded (is this a word?) make getting up and running alot easier than having a custom board made or having to wait weeks / months to get started.

  • 4
    \$\begingroup\$ In point 3: Don't forget the availability and the pricing for the tools needed! For more exotic devices you have to buy an expensive compiler license and to buy an expensive flashing device! \$\endgroup\$ – Martin Rosenau Jun 10 '17 at 20:20

Even if most manufacturer provide the same feature, some microcontroler has particularities. For exemple, TI's MSP430 use to consume less energy than ARM or PIC. Every developer also have preference, that can take place in the choice.


If you are new to MCU programming, then rather than pick an MCU type, you should pick a viable and easy to use development platform and toolset. Virtually all platforms will support GCC, so if your intent is to learn 'C' then the range is broad. If you wanted to use Python or BASIC for example, your range of available options is much reduced.

Start with your high level project needs (language, storage, database, Internet connection, Internet services, USB (Host), real time interrupt responsiveness etc, and this will help you make choices.

For example, if you want to provide a project controller that needs to supply Internet services (HTTP server) and a database to hold acquired data ...you might select a higher end controller such as the Raspberry Pi or ASUS Tinker. These run Linux and provide huge flexibility in the software (applications and languages) that you can use to address your project needs. The platforms can even provide a full standalone development environment to which you could attach mouse/keyboard and LCD screen.

If your project is much smaller and the microcontroller will not provide extensive services or need to host it's own development environment then the range of solutions is much broader. Of particular import here is whether you need real time responsiveness to I/O, anything much above about 100-200 Hz loop time may be a challenge for high level languages.

If you want to develop on a PC/MAC/Linux desktop then there are many toolsets/dev tools that can be installed and allow connection to standalone microcontroller boards.
For example, the Arduino boards (a large variety) connect seamlessly to their desktop development environment by either USB or via programmers specifically for the range of boards.
It becomes a somewhat religious war at this point with each developer sure that their most common range is the best.

My bias is to start people off with the Arduino Nano ....very low cost, simple development, and with a large range of support boards available. Everything from stepper motor drivers through to isolated I/O readily available. The format of the Nano allows it to be easily used as a component on your project specific PCB if that is your direction.


No difference except what you are comfortable with. TI is better IMHO but many people like Arduino/Atmel and even something like the ESP8266. So chose which ever one strikes your fancy.


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