Las herramientas de desarrollo estn formadas por un
conjunto de programas e interfaces que permiten realizar los proyectos de la forma ms eficiente posible. Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores se describen a continuacin Ensamblador. La programacin en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versin gratuita para los microcontroladores ms populares. Compilador. La programacin en un lenguaje de alto nivel (como C o Basic) permite disminuir el tiempo de desarrollo de un producto y si adems est familiarizado con C o Basic es una buena opcin. No obstante, cuando el compilador convierta el cdigo del programa a un lenguaje ensamblado, cada lnea de cdigo del programa en lenguaje de alto nivel habr generado bastantes ms lneas de cdigo en lenguaje ensamblador, normalmente en una relacin de uno a tres. Esto significa que para utilizar un lenguaje de alto nivel necesitaremos un microcontrolador con una capacidad de memoria relativamente grande. Si el programa que estamos desarrollando necesita utilizar nmeros con decimales, o con notacin cientfica o se utilizan operaciones complejas, como pueden ser las trigonomtricas, es casi obligado utilizar un lenguaje de alto nivel. Pero si lo que se va a hacer es manipular bits en registros, entradas, salidas y clculos sencillos, el lenguaje ensamblado es la mejor opcin. Las versiones ms potentes de compiladores suelen ser muy caras, aunque para los microcontroladores ms populares
pueden encontrarse versiones
compiladores gratuitos.
demo
limitadas
incluso
Como compilador gratuito puede utilizarse el compilador C
GNU, que es un compilador C de cdigo abierto tan bueno como los compiladores C comerciales pero que sin embargo tiene un proceso de instalacin que no es sencillo. Adems hay que comprobar que arquitecturas de microcontrolador soporta. Algunas de las cuales son MSP430 de TI, AVR de Atmel y HC11 de Motorola, (ver www.gnu.org y www.fsf.org). Tambin puede conseguirse un compilador C GNU en binario ya construido. Por ejemplo para la arquitectura ARM puede conseguirse un compilador C GNU binario para win32 desde www.gnuarm.com, que trabaja con lnea de comandos e incluye un depurador de cdigo. Para obtener un entorno de desarrollo (IDE) para windows que pueda utilizarse con el conjunto de herramientas GNU puede utilizarse la aplicacin VIDE, que puede conseguirse en www.objectcentral.com/vide.htm. Simulador. Se trata de software que es capaz de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecucin de un programa, siendo ideales para la depuracin de los mismos. Su gran inconveniente es que es difcil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso fsico de la implementacin de un modo ms seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Placas de evaluacin. Se trata de pequeos sistemas con un microcontrolador ya montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fcil acceso a los pines de E/S, etc. Pueden incluir un programa de control o sistema operativo que recibe el nombre de programa monitor. El programa monitor de algunas placas de evaluacin, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecucin paso a paso, monitorizar
el estado del microcontrolador o modificar
almacenados los registros o en la memoria.
los
valores
Emuladores en circuito. Se trata de un instrumento que se
coloca entre el PC anfitrin y el zcalo de la tarjeta de circuito impreso donde se alojar el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la placa de la aplicacin es como si lo hiciese el mismo microcontrolador que luego ir en el zcalo. Presenta en pantalla toda la informacin tal y como luego suceder cuando se coloque la cpsula. Programador. Es un dispositivo que conectado a un PC permite grabar en el microcontrolador el programa desarrollado. Algunos puede fabricarlos uno mismo (ver Programador PIC y EEPROM JDM y Programador JDMD) y resultan muy econmicos. Tambin existe software gratuito para programar no ya solo microcontroladores sino tambin otros dispositivos, como memorias (ver Programacin de PIC con ic-prog). Actualmente se tiende a realizar la programacin en la propia placa de utilizacin mediante ISP, In System Programmation o ICSP, In Circuit Serial Programation. De esta manera se puede programar al microcontrolador una vez est montado en la placa del circuito utilizando una conexin de dos, tres o cuatro terminales. Para utilizar esta tcnica se utiliza un programador que suele ser muy sencillo y que en algunos casos puede construir uno mismo. Otra posibilidad es utilizar un "cargador de arranque", muy util en la etapa de desarrollo de un programa. Un cargador de arranque es un pequeo programa en el microcontrolador que est montado en la placa del circuito que se est desarrollando y que puede comunicarse con las herramientas de desarrollo (que se van a utilizar para escribir el cdigo del programa de la aplicacin) a travs de un enlace serie, como puede ser RS232, USB, I2C o un bus CAN. El programa cargador de arranque debe interpretar comandos para leer, grabar y borrar la parte de memoria reservada para el programa de la aplicacin. Cuando se desea verificar el programa que se est desarrollando se inicia la comunicacin
con el programa cargador de arranque, que carga el cdigo de
programa en la memoria de programa del microcontrolador. Despus el programa cargador de arranque transfiere el control al programa cargado y entonces se puede ejecutar y verificar el programa cargado. Esta operacin de carga y prueba puede realizarse tantas veces como sea necesario. Los requerimientos que tiene que cumplir el microcontrolador a utilizar son: Suficiente memoria de programa para alojar tanto el cargador de arranque como el programa en desarrollo. Que el microcontrolador permita que pueda modificarse la memoria de programa por si mismo. Un puerto serie para la comunicacin. Por ejemplo, el microcontrolador LPC210x de la casa Philips incluye un cargador de arranque serie integrado que est ubicado en los 8 K primeros de su memoria Flash. Estndo el terminal P0.14 a masa y generndo un reset el LPC210x ejecuta el programa cargador de arranque. Utilizndo un programa para PC gratuito de la casa Philips y un cable serie conectado entre el PC y la UART del microcontrolador LPC210x (a travs de un conversor TTL/RS232 como el c.i. MAX232) se puede realizar la programacin del microcontrolador. Tambin resulta interesante el interface JTAG (que por ejemplo posee el microcontrolador LPC210x), que puede utilizarse para programar el dispositivo y para depurar un programa durante su ejecucin en el microcontrolador. Para utilizar el interface JTAG se necesita un mdulo interfaz de depuracin JTAG que se conecta con entre el sistema de desarrollo del microcontrolador y el PC que lo aloja. En el mercado existen distintos mdulos interfaces JTAG comerciales pero tambi se pueden encontrar otros en Internet. Paquetes IDE
Actualmente existen paquetes de software denominados
"Entornos de Desarrollo Integrado", IDE, que suelen funcionar bajo Windows y que incluyen editores de texto para el ensamblador o el compilador, permiten la simulacin del programa y tambin pueden integrar el control de emuladores y programadores de dispositivos. Ejemplos de estos entornos de desarrollo son MPLAB de Microchip (ver MPLAB-IDE v6.60) que permite programar en lenguaje ensamblado y PCWH de la casa CCS que incluye un compilador C para los microcontroladores PIC de Microchip. MPLAB es gratuito y muy bueno, incluye un editor, un ensamblador y un simulador y tambin puede trabajar con compiladores y emuladores de otros fabricantes.