Microcontroladors d'ús professional
Quan prenem la decisió d'escollir un microcontrolador per a un producte, idealment, hauria de ser el que millor s'adapti a les necessitats específiques del que volem desenvolupar. Ens condicionarà el coneixement d'aquells microcontroladors que ja hem fet servir, la facilitat en poder desenvolupar un prototip, el preu per quantitats, els terminis de lliurament dels proveïdors i l'impacte en el preu final del producte. Per a l’Internet de les Coses valorarem els consums molt baixos i la possibilitat d'adormir-lo (deep sleep). També tindrem en compte en quin llenguatge el programarem i quins entorns de desenvolupament existeixen.
A finals del segle passat hi havia tota una indústria de compiladors en C, a la majoria de casos eren empreses independents del fabricant de xips que només era accessible a una petita elit que es podia permetre el preu de les seves llicències. Era l'evolució després de fer servir llenguatges ensambladors que eren diferents per a cada arquitectura. Temporalment va coincidir amb l'extinció de les EPROM integrades al microcontrolador, amb la seva finestreta característica per a esborrar-los amb llum ultraviolada, i a la generalització d'ús de la memòria flaix per a emmagatzemar programes. El primer compilador per a llenguatge C a un preu raonable va ser el CCS per a les diverses famílies de PIC de Microchip . Tot això va fer un tomb a inicis de segle amb l'aparició de compiladors creuats de programari lliure per a arquitectures AVR, el que va provocar una eclosió de plaques de desenvolupament. Els microcontroladors ATtiny i ATmega d'Atmel es van posicionar en aquell moment per la facilitat de la seva programació fent servir eines lliures. El projecte més exitós i sostingut amb el temps ha estat el d'Arduino.
Actualment Arduino té un nombrós catàleg de plaques de desenvolupament amb microcontroladors diferents. Però el gran èxit ha estat el seu famós entorn de desenvolupament basat en Processing; l'Arduino IDE. Fa molt fàcil poder compartir biblioteques desenvolupades per a qualsevol perifèric que se li pugui connectar. Però el que el fa molt poderós és la facilitat en poder afegir la programació d'altres xips que no siguin de la família Arduino. Xips, ara mateix, tan populars com l'STM32, l'ESP8266 o l'ESP32 són molt fàcils de programar en aquest entorn aprofitant biblioteques genèriques de perifèrics, pensades originàriament per Arduino. El següent IDE en popularitat és l'Eclipse.
Els exemples existents a Internet fan la funció de les clàssiques notes d'aplicació presents al final dels fulls de característiques (datasheets) dels xips.
També podem classificar els microcontroladors entre aquells que es poden fer funcionar amb sistema operatiu (SO) i els que no. Tot i això, darrerament la frontera és molt confusa i han aparegut SO capaços de funcionar amb arquitectures molt reduïdes. Un exemple és el Mongoose OS.
Més enllà de la popularitat de la Raspberry Pi, i similars com la NanoPi Duo, com a placa de desenvolupament capaç de funcionar amb un sistema operatiu GNU/Linux, voldria destacar aquests tres projectes completament oberts:
- La família de plaques BeagleBoard, totes elles basades en Cortex-A8; BeagleBoard-xM ,BeagleBone i PocketBeagle.
- A64-OlinuXino amb un ARM Allwinner A64 d'1,2GHz Quad-Core Cortex-A53 de 64 bits de l'empresa búlgara Olimex que pot funcionar amb Linux i Android. A banda de ser maquinari lliure, també ha estat dissenyada amb programari lliure (KiCad, projecte impulsat pel CERN) amb tots els documents alliberats.
- NextThingCo/CHIP basat en un Allwinner R8 (Cortex-A8)
Com a fenomen interessant hi ha l'aparició de microcontroladors de disseny obert (maquinari lliure), com l'arquitectura de conjunt d'instruccions RISC-V, originalment dissenyada per a la recerca i l'educació i ara ja un estàndard d'arquitectura oberta per a la indústria. Alguns exemples basats en RISC-V són OnChip Open-V, SiFive, lowRISC o el projecte LibreCores de la FOSSi Foundation.
Tenim la sort de viure un moment amb un esclat de plaques de desenvolupament amb microcontroladors a un preu molt accessible. Això, combinat amb la seva compatibilitat amb entorns de desenvolupament molt populars, ens permet poder desenvolupar prototips més ràpidament que mai, podent comparar els resultats emprant diferents tecnologies.