66. La vida del microcontrolador

Published: Feb. 8, 2016, 5:08 a.m.

En este capitulo vamos a dar un repaso a la vida del microcontrolador. Veremos qu\xe9 diferencias hay con un microprocesador y el recorrido que ha tenido hasta llegar a los microcontroladores que tenemos en nuestras placas de Arduino. Hace unos d\xedas, publicamos un articulo llamado "La vida antes de Arduino", en este articulo tambi\xe9n damos un repaso a los microprocesadores y los microcontroladores antes de la llegada de Arduino pero en este capitulo vamos a ver un poco m\xe1s en detalle a los microcontroladores.

Pero como siempre, si quieres contactar con nosotros lo puedes hacer de diferentes maneras, a trav\xe9s del formulario de contacto, en el e-mail info@programarfacil.com, en Twitter (@programarfacilc) o en Facebook. Tambi\xe9n puedes mantenerte al d\xeda a trav\xe9s de la lista de distribuci\xf3n.

Microprocesador vs Microcontrolador

Un micropocesador es un chip encargado de realizar operaciones complejas a partir de unas instrucciones que solemos llamar programa y unos datos de entrada y salida. Para procesar estos datos y almacenarlos necesitamos conectarlo a trav\xe9s del bus del sistema a la memoria RAM y a los dispositivos de E/S a trav\xe9s de la placa base. Est\xe1n compuestos por registros, unidad de control, ALU y unidad de c\xe1lculo en coma flotante. Es el que mas conocemos todos, el que miramos cuando vamos a comprar un PC (i5, i7, AMD Athlon\u2026)

En cambio un en un microcontrolador tenemos en el mismo chip todo lo anterior, pero adem\xe1s tambi\xe9n tenemos en el mismo chip la memoria, las E/S, \u2026. y el programa que vamos a ejecutar. Estos chips est\xe1n pensados para un prop\xf3sito en particular, le programamos el c\xf3digo que queremos que ejecute y se dedica a realizar ese conjunto de tareas finito, en cambio un microprocesador esta pensado para un prop\xf3sito general, es decir para ir ejecutando distintos programas.

Tal vez, lo menos conocido es el microcontrolador, sin embargo nos rodea a cada instante. Ahora mismo es seguro que teng\xe1is uno cerca ya que los puedes encontrar en un mando a distancia, en las llaves del coche, en un frigor\xedfico, en la lavadora y as\xed en un sin fin de aparatos. Si todas estas caracter\xedsticas, a dem\xe1s le a\xf1adimos que los microcontroladores son mucho m\xe1s baratos que los microprocesadores se convierten en un elemento esencial para el IoT.

Los microcontrolador PIC

Son una familia de microcontroladores con arquitectura RISC fabricados por Microchip Technology, aunque los primeros microcontroladores no fueron estos sino los basados en la arquitectura CISC por Texas Instruments en 1972.

Programaci\xf3n de un PIC

Para pasarle el c\xf3digo de un ordenador a este microcontrolador necesitamos un dispositivo llamado programador. El programador es un dispositivo electr\xf3nico que configura las memorias de los microcontroladores. Se comunica con el ordenador a trav\xe9s del puerto serie o paralelo. El programador genera los voltajes necesarios para la programaci\xf3n. Actualmente se pueden programar directamente en el circuito de destino.

En la web de Microchip ten\xe9is programadores y software para programar estos chips. Los lenguajes t\xedpicos son C, Basic y Pascal, aunque son bastantes dif\xedcil de programar, mezclan lenguaje C a bajo nivel con lenguaje ensamblador

PICAXE

Estos PICs fueron una revoluci\xf3n en su dia, ya que integraban un firmware preprogramado con un int\xe9rprete de BASIC, lo que facilito mucho la programaci\xf3n. Otra mejora que introdujo es poder conectar directamente por el puerto serie a nuestro PC y as\xed elimino la necesidad de un programador.

Placa Parallax BASIC Stamp

Fue el siguiente avance en este mundo, tambi\xe9n se programa en BASIC y esta placa ya se va pareciendo m\xe1s a nuestro Arduino ya que tiene la misma filosof\xeda de ir a\xf1adiendo shields.

Los inicios de Arduino

En la \xe9poca en la que se creo Arduino, sobre 2015, los programadores de PICs utilizaban la placa anterior (BASIC Stamp) y como cuenta su fundador Massimo Banzi quisieron crear una placa accesible para todo el mundo debido a que la BASIC Stamp costaba sobre los 100$ y su dificultosa programaci\xf3n la hacia poco apetecible.

Con estas premisas comenzaron a desarrollar una placa que fuera bastante m\xe1s barata, con una plataforma accesible y que fuera f\xe1cil de programar. As\xed crearon Arduino, nombre que se inspiraron de un bar donde Massimo pasaba largas horas y se llamaba "Bar di re Arduino (Bar del rey Arduino, un rey Italiano sobre el a\xf1o 1000).

Como ya sab\xe9is, el fuerte de Arduino es su entorno de programaci\xf3n y los m\xfaltiples entornos que han ido saliendo con Scracth for Arduino que nos facilita adentrarnos en este mundo desde el minuto cero.

Y llego Genuino

Como pod\xe9is comprobar en la web de Arduino, ahora las placas que venden en Europa se llaman Genuino y fuera de Europa se siguen llamando Arduino. A mediados de 2015 comenzaron fue cuando comenzaron a llamarse en Europa Arduino y extra\xf1ados por este cambio de marca nos pusimos a buscar informaci\xf3n y aunque no encontramos informaci\xf3n oficial descubrimos lo siguiente:

Uno de los fundadores, Gianluca Martino, era el encargado de la producci\xf3n y este registro por si mismo la marca en Italia. La producci\xf3n la realizaba la empresa Italiana SmartProjects y esta le pagaba a la fundaci\xf3n Arduino los derechos por producci\xf3n a trav\xe9s de Gianluca.

Por alg\xfan motivo que se desconoce, la relaci\xf3n de Gianluca con el resto de fundadores se rompi\xf3 y este vendi\xf3 los derechos de la marca Arduino a la empresa que las produc\xeda dejando por tanto de percibir los derechos por producci\xf3n la comunidad de Arduino.

Esta empresa a pasado a llamarse Arduino slr y contin\xfaan vendiendo las placas de Arduino con esa marca. Asi es que las placas que actualmente se vendan como "Arduino made in Italy" pertenecen a esta empresa. Sin embargo esta empresa no tiene los derechos de la marca fuera de Europa por eso las placas de la comunidad fuera de Europa se siguen llamando Arduino.

Parece ser que toda esta historia esta en los tribunales para ver a quien pertenece realmente la marca pero hasta que no se resuelva esta es la situaci\xf3n actual. Por otro lado, esta empresa ha creado la web arduino.org que es una copia de la wed de la comunidad Arduino.cc

Los microcontroladores de Arduino, Atmel

La mayor\xeda de placas de Arduino llevan microcontroladores Atmel (AVR). Aunque estos microcontroladores tiene su propia arquitectura se basan en la arquitectura RISC al igual que los antes mencionados PICs.

La empresa se fundo en 1984 e inicialmente comenz\xf3 a construir memorias compitiendo contra el gigante Intel. Siempre han destacado por el bajo consumo de sus componentes y un alto rendimiento y en 1994 es cuando entra en el mercado de los microcontroladores introduciendo por primera ver memoria flash. A partir de ese a\xf1o ya fueron sacando sucesivamente su gama de microcontroladores AT que encontramos en la placa de Arduino.

ATmega8: El primero que se utiliz\xf3 para Arduino
CPU: 8-bit AVR
Flash (Kbytes): 8 Kbytes
Opera a 4.5V - 5.5V
Frecuencia (16 MHz)
ATmega328: El que tiene la placa Arduino UNO
CPU: 8-bit AVR
Flash (Kbytes): 32 Kbytes
Opera a 4.5V - 5.5V
Mayor frecuencia (20MHz)
M\xe1s E/S
Atmel SAM W25: El que utiliza la placa MKR1000
CPU: 32 Bits
WIFI ( WPA/WPA2)
256KB embedded Flash and 32KB SRAM
Frecuencia 48 MHz
Opera 2.7 to 3.6V
Micros Intel

Pero no solo encontramos microcontroladores Atmel en las placas de Arduino, por ejemplo en la placa Arduino 101 tenemos uno de Intel:

Microcontrolador Intel Curie:
CPU : 32 Bits
Bluetooth
Opera a 3.3V
Frecuencia 32 MHz
Memoria Flash 196KB
SRAM 24KB
Intel Galileo - Intel Edison
Placas de desarrollo compatibles con Arduino.
Intel tambi\xe9n apuesta por el c\xf3digo abierto
Intel Edison enfocado a wereables, PC del tama\xf1o de un tarjeta SD
El recurso del dia

ATmel Studio 7

Con este IDE no solo podr\xe1s programar los microcontroladores de ATmel, tambi\xe9n podr\xe1s programar otros PIC o tu placa de Arduino. Este entorno de desarrollo incluye herramientas para los proyectos m\xe1s codiciosos que te propongas. Utiliza C/C++ o ensamblador para programar el microcontrolador y te permite importar tus proyectos creados con el IDE de Arduino para poder pasar a un nivel superior. Entre los m\xfaltiples plugins que incorpora destacamos el espacio de trabajo basado en la nube donde se puede compartir y realizar un seguimiento de c\xf3digo de tu equipo y el visualizador en tiempo de ejecuci\xf3n, en que mediante un potente visualizador de datos nos proporciona con una vista de osciloscopio las mediciones de nuestras entradas.

Muchas gracias a todos por los comentarios y valoraciones que nos hac\xe9is en iVoox, iTunes y en Spreaker, nos dan mucho \xe1nimo para seguir con este proyecto.