Microcontrollers for IoT application

HI all,

Generally what all the parameters deciding the selection of a microcontroller for IoT application?

  

I know that most of the IoT solutions are designed around ARM controllers like ARM Cortex-M series.

ARM Cortex-M series microcontrollers are optimised for low power applications and have lots of standy features and it will save power Say ARM Coretex-M0+ can run for 15 years from cell battery! So low power might be one criteria.

  

I would like to know other micrcontrollers used in the IoT applications.

  

Thanks and Regards,

Deepu

  • Hi Deepu,


    I don't think the approach will be wise if the micro controller is chosen first. You may need to chart out the IOT application requirements and choose the suitable low power microcontroller with enough computing power.


    Most of the times rather than the hardware being chosen the way it's programmed matters alot. For IoT applications you should look for tips on energy efficient programming


    Hope it helps 


    Regards 

    Techguyz

  • IMHO it is not a µC but board or system question. For higher availibility you need a watchdog and over the air update capability. I do have negative experience with 1-wire capable boards being not able to restart 1-wire on communication failures.

    Also SSL is a must for data and misuse protection. I would be glad if someone has pointers to a solution which may be used together with high level programming, but not relying to a cloud repository.

  • The 'I'-part means that there should be a way to connect to internet. That implies either suitable HW or at least suitable HW interface for an external communication device. I also think that amount of RAM becomes an issue - the system with protocol stacks and block buffers won't fit in 2kB RAM, and if bigger boards are used, the price tends to go up. There is no point in adding $300 board in $20 coffee brewer.

  • Sorry this is a have you switched it off and on again type question, but just to be sure, have you had a look at the featured content at

    Internet of Things

    Those may not be as helpful as one might want but they are a starter. I think a lot of people just get some boards that look like they would do what's required and get an idea of things that way.

  • Hi Deepu,

    As techguyz pointed out

    You may need to chart out the IOT application requirements

    first.

    Eventually, you will have to choose your microcontroller based on your application requirements. You need to consider these factors:

    • Register/Data Width - microcontrollers for IoT cover the entire span of word size available today, 8 to 64 bits.
    • Memory - microcontrollers for IoT will need various mixtures of type (Flash, EEPROM, FRAM, SRAM, DRAM) and size of memory.
    • Speed/Clock Frequency - some IoT applications will run satisfactorily at low speed, some will operate the MCU at higher speed to accomplish a more demanding task, some may need a variable clock frequency to throttle the MCU performance as needed.
    • Number of (GP)I/O pins - simple applications such as lamp on/off controller will need few I/O pins, some applications such as those that scan a keypad, LED array or matrix will demand more I/O pins.
    • Peripherals - diverse IoT applications require differing assortment of Timers, Display controller, UARTs, CAN, and other serial interfaces.
    • Analog Interface - MCUs with on-chip, low to high resolution ADC at low to moderate sampling rate are available. DACs may be available, in some cases D-A conversion can be done through PWM. Analog comparator is also available as a basic analog interface.
    • Sensor Interface - IoT stimulates a surge in the use of transducers/sensors. The interface to various sensors can be done through the peripherals (e.g., SPI, I2C, 1-Wire) or through an on-chip ADC input.
    • DSP Capability - some IoT applications (e.g., biomedical devices, scientific instruments) require DSP capability for analysis and manipulation of signal.
    • Connectivity - IoT devices, obviously, must have a connection to the internet. This can be done through a wired interface such as Ethernet, some through a wireless network such as wireless LAN, cellular phone network, Bluetooth, etc.
    • Security - security is of vital importance for IoT, some microcontrollers provide hardware support for security.
    • Power Consumption - IoT devices vary from implantables (even ingestible) and wearables to large machines. Some will have access to AC mains, some will be powered from tiny battery, some will harvest miniscule energy from the surroundings.
    • Cost - microcontrollers for IoT can be cheap because of simplicity or have premium cost for additional features.

    Aside from the microcontroller itself some other factors are

    • Operating System - some IoT applications will need GUI (Linux, Android, Windows), some will require the responsiveness of RTOS.
    • Development Tools - development boards, debugging tools, and associated sofware.

    These are also the criteria for other applications, IoT applications will just assign different weight to each criterion raising importance to connectivity and security.

    To provide further guidance on the factors more specific to IoT I tried to dig an article related to your question from my newsletters. My objective is to find one which is as vendor-neutral as possible. I cannot do it exhaustively, however. What I have is an article from MOUSER, conributed by Freescale (now part of NXP) and partner ARM. There is no heavy endorsement of Freescale products in this article and it's not ARM-specific.

    What the Internet of Things (IoT) Needs to Become a Reality

    The section "There are a few requirements that make an MCU ideal for use in the IoT." is the most relevant to you.

     

    I would like to know other micrcontrollers used in the IoT applications.

    Aside from ARM, other architectures used in IoT applications are: intel x86 (notably the Edison and Galileo), MIPS, Renesas RX, MSP430, AVR, PIC, 8051, etc.

    Regards,

    Goodwin

  • Hello,

    I second the recommendation that you need to look at the application and SW first before selecting HW.

    I strongly recommend that you look at

    mbed OS | mbed

    This will give you an idea of the sort of software you need to run a fully functional IoT node.

    Then you need to determine the requirements for the application itself that you planning.

    Together, these two sw items will define the software size and requirements at which point it becomes much easier to select a HW platform.

    Regards

    Diya