CARGA DE PROGRAMAS EN EL

Texto completo

(1)

C

ARGA DE PROGRAMAS EN EL

MICROCONTROLADOR

El programa de control para el vehículo autobalanceado debe implementarse en el microcontrolador incorporado en el mismo. Para ello es necesario escribir el pro-grama y compilarlo. Una vez que se tiene el propro-grama compilado, para propro-gramar el microcontrolador o, lo que es lo mismo, cargar el programa en la memoria no volátil incorporada en la placa del controlador, se utilizará el circuito programador apropiado a nuestro microcontrolador.

En nuestro caso, al tratarse de un microcontrolador ATMega128 del fabricante At-mel, se ha recurrido a un dispositivo programador genérico para esta familia de mi-crocontroladores, el AVRISP mkII In-System Programmer, del mismo fabricante. En la Fig. 6.1 se muestra el programador utilizado.

(2)

El programador AVRISP mkII está diseñado para la programación y actualización de la memoria Flash de controladores de la familia AVR RISC de 8-bits a través de una interfaz ISP, sin necesidad de extraer el microcontrolador del sistema en el que se en-cuentra embebido, lo cual permite la programación en el mismo sistema de trabajo. La interfaz ISP (o SPI, Serial Peripheral Interface) proporciona un bus de comunicaciones para la transferencia de información entre circuitos integrados en equipos electróni-cos.

Existen dos formatos de conexión para la interfaz ISP, uno de 6-pines y otro de 10-pines. El programador AVRISP mkII (con conexión USB) se suministra actualmente con el conector de 6-pines, mientras que la placa microcontroladora mavric-iib con la que contamos tiene un conector de 10-pines. Debido a esto será necesario preparar un cable adaptador que modifique la distribución de señales a los pines. La distribución de señales en cada caso se muestra en la Fig. 6.2.

Figura 6.2:Distribución de pines en las dos configuraciones de ISP.

Para solucionar este inconveniente se ha preparado un adaptador con dos bloques correspondientes a cada uno de los dos tipos de conectores, de forma que se pueda conectar por una parte el programador de 6-pines y por otra un nuevo cable adaptado a 10-pines para la placa del microcontrolador. La adaptación se ha realizado mediante cableado en una placa perforada y se ha sellado con cola térmica para evitar contactos. El adaptador puede verse en la Fig. 6.3.

(3)

El la Fig. 6.4 se puede apreciar el conjunto de programador y adaptador necesarios para programar la placa mavric-iib.

Figura 6.4:Conjunto programador y adaptador ISP 6 a 10-pines.

En el extremo a conectar en la placa microcontroladora, la conexión debe realizarse de modo que el pin 1 del conector coincida con el del bloque en la placa, tal y como se muestra en la Fig. 6.5.

Figura 6.5:Conexión del adaptador ISP a la placa microcontroladora.

El programador AVRISP mkII incluye un kit de desarrollo para sistemas que in-corporan microcontroladores de la familia antes mencionada. El software incluido en el mismo nos permite cargar el programa en memoria a través de dos herramientas software. La primera de ellas es AVR Studio, el entorno de desarrollo de Atmel para la plataforma Windows. Es una herramienta más compleja ya que está pensada para la simulación, programación y depuración de código siempre y cuando el sistema lo permita. La segunda permite utilizar el programador desde la línea de comandos en entorno MS-DOS.

(4)

El PC desde el cual se va a cargar el programa a la memoria del microcontrolador debe tener instalados los drivers del programador y el software asociado al mismo. De igual modo debe tener un puerto USB libre ya que será la interfaz a través de la cual el programador se conecte al PC.

Los pasos a seguir para la carga del programa en la memoria del microcontrolador son:

1. Conectar el programador a un puerto USB del PC.

2. Conectar el programador (a través del adaptador) al puerto ISP de la placa del microcontrolador (sin alimentación).

3. Alimentar la placa microcontroladora. Esto hará que el LED del programador tome color verde.

4. Desde la consola de ”Símbolo de Sistema” en Windows, ir al directorio donde se encuentra el programa STK500 que se ha instalado con el software de AVR. En la instalación por defecto será:

C:\Archivos de programa\AtmelAVR Tools{\}STK500

5. Ejecutar el programa stk500 con los siguientes comandos:

stk500 -cUSB -dATMEGA128 -e -pf -ifc:\mica128\main.hex

6. Durante la programación el LED toma color naranja. Una vez finalizada la pro-gramación vuelve a color verde. Una vez terminado el proceso, cortar la alimen-tación del microcontrolador y retirar el conector del programador (adaptador). Los parámetros utilizados al ejecutar el programa STK500 corresponden a:

- c: Configura el puerto de comunicación a utilizar. En nuestro caso USB. - d: Nombre del dispositivo a programar. En nuestro caso ATMEGA128. - e: Borra el dispositivo antes de realizar la programación.

- pf: Dispositivo a programar. En este caso la "fïndica que es del tipo flash. - if: Nombre del archivo flash de entrada. El formato del archivo debe ser HEX Intel Extendido. La rutac:\mica128\main.hexindica donde se encuentra el

(5)

Para lograr mayor comodidad y rapidez a la hora de cargar los programas, se ha dejado fija la ruta al archivo con el programa. De esta forma, una vez compilado, se co-pia el contenido de la carpetabuild(de la aplicación compilada dentro del proyecto

de TinyOS), es decir, la carpetamica128, a la carpetaC:\ y de esta forma podremos

acceder a la programación con la misma instrucción y parámetros. Posibles problemas durante la programación:

El LED del programador toma color rojo: El programador no detecta la alimen-tación del circuito objetivo.

El software de programación avisa de que el dispositivo a programar no es al-canzable: Puede que uno de los conectores no esté conectado de manera correcta o el circuito objetivo no esté alimentado.

Habrá que tener en cuenta que si no se copia el archivo a programar, es decir, la carpeta mica128 actual, al directorio raíz, es posible que se esté cargando una versión no actualizada del programa o un programa distinto.

Advertencia:Un corte en la alimentación mientras se está programando la memo-ria flash o la desconexión del programador durante el proceso pueden provocar un mal funcionamiento de la placa microcontroladora al no contener un contenido co-rrecto en la memoria flash o eeprom. En ese caso el microcontrolador puede incluso llegar a quedar inutilizable salvo reprogramación con programadores de sobretensión que suelen ser de coste elevado y poco comunes.

(6)

Figure

Actualización...

Referencias

Actualización...

Related subjects :