1. Cómo programar un microcontrolador.

avrstudios

Para que el microcontrolador realice una tarea necesita tener corriendo un programa en su memoria. Ese programa lo realizamos en un entorno de desarrollo en nuestro ordenador y lo descargamos en el microcontrolador desde el pc con un programador. En función del sistema operativo que usemos y del coste, tenemos diversas opciones donde elegir para crear y descargar un programa en el microcontrolador.

Hoy en día en casi todos los productos electrónicos podemos encontrar uno o varios microcontroladores. Un microcontrolador es un circuito integrado que ejecuta una a una las instrucciones que grabamos en su memoria de programa (memoria FLASH), instrucciones que dicen al microcontrolador que ha de hacer con sus pines de entrada y salida y con su memoria de datos. Instrucciones que definen la tarea a realizar por el microcontrolador dentro del producto electrónico.

Para realizar el programa que grabamos en la memoria del microcontrolador necesitaremos un entorno de desarrollo para el microcontrolador en nuestro ordenador. Un conjunto de herramientas software (editor, compilador, ensamblador, linker, etc..) que nos permiten crear un programa para el microcontrolador, y generan a partir de este programa el archivo de instrucciones que grabamos en la memoria del microcontrolador.

Para grabar un programa en el microcontrolador necesitaremos una herramienta hardware, un programador, se conecta entre el conector de programación del microcontrolador y el pc y nos permite grabar un fichero del pc en la memoria de programa del microcontrolador.

 Atmel AVRISP mkII

Programador. Atmel AVRISP mkII

Atmel es uno de los pocos fabricantes de microcontroladores que da de forma gratuita todas las herramientas software necesarias para trabajar con sus microcontroladores (y sin restricciones). Por lo que si usamos windows el entorno de desarrollo de Atmel será una de nuestras primeras opciones para trabajar con sus microcontroladores, ya que es un entorno totalmente profesional y gratuito. No tendrémos necesidad de comprar otras herramientas software.

En cuanto al programador podemos encontrarlo desde unos pocos euros hasta cientos. Una opción interesante es usar los programadores de Atmel, por decenas de euros nos proporcionan un programador totalmente integrado y soportado por el entorno de desarrollo anterior.

Una alternativa al programador para descargar el programa en el microcontrolador es usar un bootloader (como hace Arduino). Un bootloader es un programa que grabamos en la memoria de programa (FLASH) del microcontrolador y que a través de sus pines de entrada y salida nos permite grabar en la memoria del microcontrolador nuevos programas. Para grabar el bootloader por primera vez en el microcontrolador necesitaremos de un programador externo, y este bootloader ocupará parte de la memoria de programa del microcontrolador.

Resumiendo. Para usar un microcontrolador en nuestros circuitos tendrémos que:

  1. Escribir un programa en el entorno de desarrollo elegido que defina la tarea a realizar por el microcontrolador dentro del circuito.
  2. Compilar el programa para que el entorno de desarrollo genere el fichero que debemos grabar en la memoria del microcontrolador.
  3. Grabar ese fichero en el microcontrolador mediante un programador.
  4. Comprobar que el programa funciona correctamente en el microcontrolador.

Los pasos anteriores los podemos realizar con una de las siguientes opciones de herramientas:

  • Windows. Atmel Studio + programador de Atmel: enlace.
  • Linux. eclipse + avrgcc + avrdude + programador: enlace.
  • Grabar el programa con avrdude + Arduino o programador de bajo coste: enlace.