Una de las mayores dificultades para aquellos que empiezan a usar microcontroladores es crear y configurar un proyecto nuevo desde cero. Esto se debe a que, a diferencia de la plataforma de Arduino, normalmente debemos de instalar y configurar distintos controladores de dispositivos (drivers) y archivos con código específico para cada tipo de microcontrolador. Arduino normalmente incluye todos estos archivos en su propia plataforma, por lo que es un excelente microcontrolador para principiantes y entusiastas.
El objetivo de este artículo es el de introducir la placa Tiva C Series Launchpad y el programa de desarrollo embebido (IDE) Keil µVision, y utilizarlos para hacer parpadear un LED.
Este artículo muestra los pasos para instalar el IDE, crear un proyecto y cargar el programa al LaunchPad. Debido a que no hay una versión en español de Keil, se necesitará un conocimiento básico del inglés para utilizar el programa.
El objetivo de este artículo es el de introducir la placa Tiva C Series Launchpad y el programa de desarrollo embebido (IDE) Keil µVision, y utilizarlos para hacer parpadear un LED.
Este artículo muestra los pasos para instalar el IDE, crear un proyecto y cargar el programa al LaunchPad. Debido a que no hay una versión en español de Keil, se necesitará un conocimiento básico del inglés para utilizar el programa.
TIVA C SERIES LAUNCHPAD & KEIL µVISION
Los Tiva C Series LaunchPad son una familia de microcontroladores de bajo costo desarrollados por Texas Instruments. Para este proyecto, usaremos el LaunchPad TM4C (EK-TM4C123GXL). Esta placa lleva un CPU ARM Cortex-M4 con 32 bits, reloj de 80MHz, punto flotante, 256kB de memoria flash con 100,000 ciclos de escritura y borrado, además de sistemas periféricos como PWM, 1-MSPS ADC, 8 UARTs, 4 SPI, 4 I2C, USB y hasta 27 relojes. La placa también incluye para la interfaz de usuario 2 botones de uso general, un botón de reinicio, un LED de poder y un LED RGB programable.
Para más detalles sobre el Tiva C Launchpad, visita la página de Texas Instruments
Fig 1. Tiva C Series Placa de Evaluación
µVision es una plataforma de desarrollo embebido para procesadores ARM creada por Keil. La plataforma provee administración de proyectos, edición de código, compilador, depuración (debugging) y simulación. Para este proyecto usaremos la versión 4 de µVision, ya que es más estable, cuenta con más soporte en línea que la reciente versión 5 y sobretodo, es la versión con la que tengo más experiencia.
Para más información sobre µVision, visita la página de Keil.
Fig 2. Imagen de inicio de Keil µVision 4
2. INSTALACION DEL SOFTWARE (IDE)
a. Primero, necesitamos instalar Keil µVision v4. Visita https://www.keil.com/demo/eval/armv4.htm, ingresa tu información de contacto y descarga el archivo MDK474.exe para instalar el IDE. El tamaño del archivo es de aproximadamente 590MB.
b. Ejecuta el instalador de MDK-ARM v4. En las siguientes ventanas acepta los Términos de Uso, elige donde quieres instalar el programar, ingresa tu información de contacto y espera que el IDE se instale. Después, marca la casilla “Add example projects…” y en la última ventana remueve la marca en la casilla “Launch Driver Installation” y presiona Finalizar.
c. Después de instalar Keil, necesitamos instalar los controladores (drivers) para nuestro microcontrolador. Para este paso, vamos a necesitar el LaunchPad. Primero, visita http://www.ti.com/tool/stellaris_icdi_drivers y descarga el archivo Stellaris ICDI Drivers.
Puedes usar las instrucciones de Texas Instruments siguiendo este vínculo.
Puedes usar las instrucciones de Texas Instruments siguiendo este vínculo.
3. CREANDO UN PROYECTO NUEVO
Después de instalar Keil y los controladores podremos comenzar nuestro proyecto nuevo.
a. Abre Keil µVision v4, haz click en el menú Project >> New µVision Project y escribe el nombre del proyecto nuevo.
b. En la siguiente ventana, tienes que elegir el microcontrolador que será usado en este proyecto. Para nuestra placa, selecciona de la lista Texas Instruments y el dispositivo TM4C123GH6PM.
Fig 3. Seleccionando microcontrolador para el proyecto
c. Luego acepta te pregunten si deseas copiar el archivo de inicio (startup) del microcontrolador a tu proyecto.
Fig 4. Pregunta del sistema para copiar archivo de inicio de microcontrolador
d. Tras aceptar, el archivo de inicio debe de aparecer bajo Target1 >> Source Group en la ventana de proyecto.
Fig 5. Vista de Keil con archivo de inicio
e. Para el siguiente paso, tenemos que copiar el archivo system_TM4C123.c a nuestra carpeta de proyecto. Este archivo contiene código para configurar los relojes para nuestro modelo microcontrolador y puede ser encontrado en la carpeta de instalación de Keil. En mi caso, el archivo se encuentra en C:\Keil\ARM\Startup\TI\TM4C123\system_TM4C123.c
f. Después copiar el archivo a tu carpeta de proyecto, haz click con el botón derecho en Source Group 1 en la ventana Project y luego haz click en Add existing files to Group ‘Source Group 1’ y selecciona el archivo system_TM4C123.c. Esto nos permite agregar archivos con código en diferentes formatos a nuestro proyecto.
Fig 6. Agregando archivos a proyecto en Keil
g. Finalmente, haz click con el botón derecho a Source Group 1 nuevamente y selecciona Add New Item to Group ‘Source Group 1’ para agregar un archivo nuevo al proyecto. Selecciona C File(.c), dale un nombre a tu archivo y haz click en Add para crear el archivo. Este va a ser tu archivo principal para el código de programación.
f. El IDE debe mostrar ahora el archivo startup, system y el archivo en blanco que acabas de crear bajo Source Group 1.
Fig 7. Imagen de Keil después de agregar los archivos necesarios
4. PROGRAMACION
a. Visita https://github.com/sphanlung/TivaC/blob/master/LedBlink.c y copia el código en esa página al archivo en C que creaste. El vínculo te llevará a mi repositorio en Github.
b. Luego, haz click en el menú Project y en Build Target. Este comando hará que Keil compile el código para el microcontrolador. En la parte de abajo también podremos ver el resultado de la compilación, errores y advertencias en la ventana Build Output.
Fig 8. Compilando el código en Keil
c. Ahora, necesitamos configurar Keil para poder cargar el programa en el microcontrolador. Haz click en Project y luego Options for Target ‘Target 1’. Cuando se abra la ventana de opciones, busca la pestaña Utilities y bajo Configure Flash Menu Command, y desmarca la casilla Use Debug Driver. Luego, bajo Use Target Driver for Flash Programming selecciona el controlador Stellaris ICDI y presiona OK.
Fig 9. Configuración del controlador para el LaunchPad
d. Finalmente, haz click en Flash y luego Download para cargar el programa en el microcontrolador
5. PRUEBA EN LA PLACA
a. Cuando el código termina de cargar, presiona el botón Reset en el LaunchPad para iniciar el programa.
b. Cuando ningún botón es presionado, el LED azul estará encendido. Si presionas el botón SW1, los LEDs azul y verde parpadearán. Si presionas el botón SW2, los LEDs rojo y azul parpadearán.
b. Cuando ningún botón es presionado, el LED azul estará encendido. Si presionas el botón SW1, los LEDs azul y verde parpadearán. Si presionas el botón SW2, los LEDs rojo y azul parpadearán.
Fig 10. Prueba del código en el LauchPad
Hola amigo, oye tnego una practica de esto sobre como hacer encender 3 leds en un protoboard con dos botones del mismo proto desde el puerto E pero no entiendo las configuraciones de este puerto, de verdad te lo agradeceria mucho si me puedes hechar la mano.
ReplyDeletesaludos.
Lee el tutorial "Contador de Presiones de Botón Usando Pantalla de 7 Segmentos con 4 Dígitos" que escribí hace poco. Allí uso el puerto E como salida para encender 4 pines en la pantalla.
ReplyDeletePara configurar los pines como entrada o salida tienes que modificar el registro de 8 bits GPIO_PORTE_DIR_R. Cada bit representa uno de los 8 pines. Si el pin es 1, es una salida. Si es 0, son entradas. Por ejemplo, si configuras GPIO_PORTF_DIR_R = 0x00, todos los pines del puerto E son entradas. Si es = 0x03, solo los pines E0 y E1 son salida y el resto entradas. Suerte.
http://idielectronica.blogspot.com/2016/02/contador-de-presiones-de-boton-usando.html