Por último, me gustaría recordar de nuevo al lector que el objetivo de este libro es acercarle a la programación de microcontroladores de forma sencilla y, aunque está pensado como una guía que se va apoyando en conocimientos previos, el lector puede ir consultando de forma independiente cada ejemplo, ya que están autocontenidos.
Así pues, y sin más dilación, le dejo continuar con la primera parte del libro, donde se contextualizará el papel de los dispositivos microcontroladores para pasar seguidamente a presentar las herramientas que se utilizarán y los ejemplos de programación.
1
INTRODUCCIÓN
En la actualidad estamos rodeados de numerosos dispositivos digitales que ejecutan un programa almacenado en su memoria que se encarga de recibir información a través de un número determinado de puertos de entrada, evaluar esta información y enviar una respuesta a través de sus puertos de salida. Entre este tipo de sistemas podemos diferenciar los sistemas basados en microprocesador, que generalmente cuentan con una mayor capacidad de procesado (mayor velocidad, registros, etc.) y dependen de un sistema operativo para gestionar sus periféricos (memoria, puertos de entrada/salida, etc.), y los sistemas basados en microcontrolador, que generalmente cuentan con unas prestaciones más reducidas (menor velocidad, número de registros reducido, tamaño de datos reducido, etc.), a la vez que integran todos sus periféricos en el mismo encapsulado.
Un ejemplo tradicional de sistema microprocesador lo encontramos en los ordenadores de sobremesa o portátiles, donde tenemos los diferentes periféricos (disco duro, RAM, teclado, ratón, etc.) conectados a una placa base en la que se aloja el microprocesador. Ejemplos de sistemas basados en microcontrolador los podemos encontrar en diferentes electrodomésticos que nos rodean, como una cafetera, el microondas o el mando a distancia del televisor. Estos dispositivos, a diferencia de un ordenador (sistema multipropósito), rara vez necesitan ser reprogramados o actualizados a una nueva versión de programa (firmware) y funcionan tal y como salieron de fábrica durante toda su vida útil. De ahí que reciban también el nombre de sistemas embebidos o empotrados, ya que están concebidos para un único propósito y muchas veces ni nos enteramos de que están ahí.
A partir de la diferenciación señalada queda claro que, en general, los sistemas basados en microcontrolador se encargan de realizar tareas relativamente sencillas que conllevan la gestión de un número determinado de entradas/salidas. Así, por ejemplo, en el caso de la cafetera citado anteriormente, el sistema microcontrolador se encargará de gestionar la pulsación de varios botones para el encendido/apagado de la cafetera, la solicitud de café, controlar la presión a la que se produce el café, el molido del grano, el volumen de café servido, la temperatura, el volumen de agua del contenedor, etc. Son elementos sencillos que no necesitan un sistema con gran capacidad de procesamiento.
A pesar de las reducidas prestaciones con las que generalmente cuentan, los sistemas microcontroladores son los semiconductores más vendidos en la actualidad debido a la gran variedad de aplicaciones hacia las que están orientados. Entre ellos, los más ampliamente utilizados son los microcontroladores de 8 bits, es decir, aquellos que trabajan con datos de 8 bits (muy alejados de los 64 bits con los que trabajan en la actualidad los sistemas microprocesadores más avanzados). Destacan como principales fabricantes de microcontroladores las compañías Intel™, Motorola™, Freescale semiconductor™, Zilog™, Mitsubishi Electric™, Texas Instruments™ o Microchip, y es esta última la que ofrece una gran variedad de dispositivos con múltiples configuraciones, herramientas de programación y una amplia comunidad de usuarios.
Los microcontroladores de Microchip reciben el nombre de microcontroladores PIC®, siglas que corresponden a Peripheral Interface Controller, y todo el mundo se refiere a ellos como PIC. Se basan en una arquitectura Harvard que cuenta con memoria de datos y de programa separadas físicamente y con una CPU RISC (Reduced Instruction Set Computer) que contiene un número reducido de instrucciones. Los PIC® se dividen, en función del número de bits de los datos que procesan, en 32 bits, 16 bits y 8 bits. Estos últimos se dividen, a su vez, en diferentes gamas en función de sus capacidades de procesamiento, el tamaño de las memorias o el número de periféricos que integran; así, se puede distinguir entre la gama baja, media, media mejorada y la gama alta.
Es importante destacar, por último —y antes de pasar a describir el entorno en el que vamos a trabajar en este libro—, que este tipo de dispositivos, debido a su simplicidad de programación, a la integración de nuevos y cada vez más complejos periféricos, a su reducido consumo y a su bajo coste, está siendo empleado en aplicaciones cada vez más avanzadas, donde va reemplazando de forma imparable la parte tradicionalmente reservada a la electrónica analógica. Por ello, su conocimiento resulta una parte esencial en la formación de cualquier persona interesada en la electrónica en particular o en la ingeniería en general.
2
ENTORNO DE PROGRAMACIÓN MPLAB® XPRESS IDE
El nuevo entorno de programación MPLAB® Xpress IDE que ofrece Microchip está basado en una programación en la nube en la que, mediante una serie de pasos muy sencillos, podremos realizar un programa, depurarlo y pasarlo al microcontrolador en el que se va a ejecutar. Todo lo que hagamos estará guardado en nuestra cuenta de usuario, la cual Microchip nos ofrece de forma gratuita. Este entorno ofrece al programador acceso a todos sus proyectos independientemente del lugar en el que esté y le permite trabajar en cualquier sitio sin necesitar instalar pesados programas o llevar copias de sus proyectos allá donde vaya. Sin embargo, este punto de vista no es del agrado de algunos programadores, que ven en este tipo de programación una dependencia a una conexión a Internet que, aunque está disponible en cada vez más lugares, no siempre está garantizada en lo referente a calidad y velocidad; también le achacan los problemas asociados a la seguridad en cuanto al acceso a sus proyectos, que podrían verse expuestos debido a vulnerabilidades del sistema. A pesar de todo, y aparte de las disquisiciones anteriores —en las que no vamos a entrar—, que atienden a un punto de vista personal de cada programador, MPLAB® Xpress IDE es una nueva y potente herramienta que aporta mayor flexibilidad a la hora de abordar el desarrollo de proyectos, acelera la labor del programador, acerca el desarrollo de sistemas microcontroladores a un mayor número de usuarios gracias a sus herramientas simplificadas y se complementa muy bien con la nueva filosofía actual de deslocalización del trabajo mediante la utilización de la nube. Además, cuenta con diferentes tarjetas de evaluación y desarrollo que se integran de forma sencilla con este sistema.
Sin entrar en más detalles, vamos a pasar a describir con claridad los primeros pasos que hay que dar para comenzar a utilizar este entorno de programación en nuestro ordenador. En primer lugar, es importante destacar que este entorno de programación, al estar basado en un plugin desarrollado en JAVA™, no se podrá ejecutar desde el navegador Chrome™ (que eliminó su soporte de JAVA™ en septiembre de 2015), por lo que se recomienda utilizar como navegador Explorer™ o Firefox™ (Windows™) o Safari™ (Mac OS X). Asimismo, es recomendable contar con la última versión de Java™ instalada en nuestro sistema para evitar posibles problemas (se puede descargar desde la página www.java.com), aunque esto lo podremos hacer más adelante. Una vez tenido en cuenta lo anterior, introduciremos la siguiente dirección en nuestro navegador:
https://www.microchip.com/mplab/mplab-xpress
Aquí