3

How do you choose a micro-controller for your project? My hardware requirements are :

  1. I2c
  2. SPI
  3. ADC channels
  4. SMD package
  5. 3.3V operating voltage
  6. A few GPIOs.

There are so many microcontrollers available from various companies which satisfy these hardware requirements(almost all I know of satisfy 1,2,3,4,6)? So then should I choose the microcontroller based on my familiarity with the controller and resourses/documentation available about it or is there any other method to choose one?

Michel Keijzers
  • 13,867
  • 18
  • 69
  • 139
Soham
  • 75
  • 3
  • If you consider Atmel/Microchip without using the Arduino platform, I suggest choosing the XMEGA series instead of the ATMEGA. XMEGA is better documented, easier to use from a hardware-register perspective and there are lots of ready-to-use libraries from the ASF (Advanced (a.k.a. Atmel) Software Framework). The Atmel Studio IDE is pretty good as well and integrates all the ASF stuff and supports lots of development/evaluation boards. – Rev Jan 10 '19 at 12:41
  • 2
    Possible duplicate of [How to choose a MCU platform?](https://electronics.stackexchange.com/questions/37423/how-to-choose-a-mcu-platform) – Rev Jan 10 '19 at 12:43
  • This is a thinly veiled request for a product recommendation...you provided the specific needs of your project in the question. Voting to close. – Elliot Alderson Jan 10 '19 at 13:10
  • This spec meets thousands of different MCUs. Notably, you never just need ADC, but ADC of a certain resolution. This might narrow down the results. – Lundin Jan 10 '19 at 13:41

3 Answers3

4

I think it depends on many things, like:

You mentioned already:

  1. Capabilities/features
  2. Familiarity (yourself)

Others can be:

  1. Cost
  2. Familiarity in your company
  3. Expected support from the manufacturer
  4. Swappability (how easy it is to later convert to different models when hardware requirements change)
  5. Software/tools/IDE support (thanks to Peter Smith)

This list can probably be much longer.

Michel Keijzers
  • 13,867
  • 18
  • 69
  • 139
4

Almost all microcontrollers have / can support the features you list. So in my opinion you will not find what you need by looking at the features in your list.

A very important feature (for me) is how easy it is to use and develop using a microController. The Arduino IDE is easy to use (I think) and free. Also you will find loads of examples for that platform.

But then you're "stuck" with the uCs that are supported by that platform. So that's mostly the ATMega uCs. Is that an issue? For me it is not as I use uCs only for hobby projects. I simply buy an Arduino-NanoPro clone on ebay for less than $2 and use that.

If you need a uC for some gadget and it needs to be mass produced and as cheap as possible then there are uCs that cost only 3 cents each. But these need a special development platform and can only be programmed once.

But to learn about uCs for hobby projects: just use an Arduino. With the knowledge you gain from doing that you will be able to make better use of any uC you will be using in the future.

Bimpelrekkie
  • 80,139
  • 2
  • 93
  • 183
0

Nano won't do 3.3V that I know of.

But a 3.3V/8MHz Promini will, plug on an FTDI Basic or equivalent clone to program/debug it. Same Atmega328P uC as the Nano and Uno.

CrossRoads
  • 3,453
  • 1
  • 6
  • 14
  • If by "Nano" you mean Arduino Nano: those use ATMega328 and similar MCUs which have a 1.8 V to 5.5 V supply voltage range! So they can work at 3.3V. Also: 3.3 V is such a common standard that it would be foolish not to support it. It can be that some MCUs have their **brownout** detection set to a somewhat high voltage. If you program that detection properly you can make an ATMega MCU work at 1.8 V without problems. I know that as I have done that myself. – Bimpelrekkie Jan 10 '19 at 14:10
  • Yes, except they are shipped with 16 MHz resonator. Operating at 3.3V (by powering from 3.3V on the 5V pin, and bypassing the 5V regulator) means the chip is then operating out of spec - ~10.xMHz is the max for 3.3V to be fully compliant, and errors may occur, often seen in hardware serial communications. Many folks do not have a Programmer to reset the fuses to alter the brownout detection level. Or the knowledge to do so based on questions seen here and in Arduino stack exchange (and often in the Arduino forum). Best bet then is to start with a 3.3V/8MHz board such as Promini. – CrossRoads Jan 10 '19 at 15:38