Stellaris Launchpad + Energia (pt. 1)

He decidido escribir una serie de posts, acerca del uso del Stellaris Launchpad. Este mini tutorial, vamos a analizar la primera versión del Stellaris Launchpad, que veía con el microcontrolador LM4F120H5QR, pero aplica a las nuevas versiones del board, que tienen el microcontrolador Tiva-C.

Este development board de Texas Instruments, sobresale de otros similares, por que su microcontrolador LM4F120XL tiene las siguientes características:

  • Microcontrolador Stellaris LM4F120H5QR con núcleo ARM® Cortex™-M4 con las siguientes características:
    • Operaciones de punto flotante
    • Velocidad de operación máxima de 80 MHz
    • 256 KB de memoria flash
    • EEPROM interna
    • SRAM de 32 KB
    • 8 UARTs
    • 4 I2C
    • 4 SPI
    • 27 Temporizadores
  • Interfaz ICDI (In-Circuit Debug Interface) USB incluida en la tarjeta.
  • Conexión micro USB-B para depuración.
  • Conexión micro USB-B de dispositivo para aplicaciones de usuario.
  • Switch selector de alimentación de dispositivo/depuración.
  • Pines BoosterPack XL, compatible con muchas tarjetas BoosterPack existentes.
  • 2 botones para aplicaciones de usuario
  • Botón de reset
  • 1 LED RGB
  • Puente (jumper) para medición de corriente
  • Cristal principal de 16 MHz
  • Cristal de 32.768 KHz para hibernación y reloj en tiempo real (RTC – Real Time Clock)

Si lo comparamos con el cásico y conocido Arduino, vemos que tenemos un procesador mucho más poderoso, con muchos mas pines de Entrada y Salida y mas periféficos, lo que permitirá que podamos diseñar aplicaciones embebidas con mayor facilidad. Además de esto, el Stellaris Launchpad, tiene un precio aproximado de USD.12,00  (en su nueva versión, que lleva un microcontrolador TIVA C) lo que lo coloca al nivel de los clones del Arduino Uno, por lo que vale la pena el intento.

Texas Instruments, con el fin de promover el uso de sus microcontroladores, permite descargar de forma gratuita (luego de un pequeño registro) sus herramientas de desarrollo, y son bastante completas. Pero al ser un entorno de desarrollo basado en Eclipse, es bastante lento y pesado, si no tienes un computador bastante potente.

Es aquí cuando aparece Energia. Este entorno de desarrollo, ha sido pensado para facilitar el desarrollo de aplicaciones usando la linea Stellaris de TI, presentando la posibilidad de usar el IDE de Arduino, para los procesadores de TI. Con este entorno, podemos programar fácil y rápidamente aplicaciones con el Launchpad, de la misma manera que lo hacemos con el Arduino, traduciéndose esto en velocidad de desarrollo, y facilidad de uso. Además, Energía es multiplataforma, existiendo versiones para Windows, MacOS y Linux.

En primer lugar, y si estamos trabajando bajo Windows, debemos descargar los Drivers Stellaris ICDI  para USB. esto lo podemos descargar desde este enlace. Si estamos usando Linux o MacOS, podemos saltarnos este paso sin problema.

Una vez descargados los drivers, los descomprimimos en alguna carpeta facil de ubicar, y procedemos a conectar el Launchpad a nuestro puerto USB. Se iniciará el proceso de detección del dispositivo, y deberemos buscar la carpeta donde se descomprimió nuestro Driver, para que windows lo detecte e instale los dispositivos. Si todo sale bien, debemos tener 3 dispositivos nuevos en nuestro computador.


stellaris1

 

Luego descargamos el IDE  Energia desde este enlace, escogiendo la versión que corresponda a nuestro sistema operativo. La descarga es algo grande (alrededor de 200MB) así que tomará algunos minutos. Una vez concluida la descarga, lo descomprimimos en una carpeta (puede ser en Mis Documentos) y listo, podemos empezar.

Al ejecutar Energia, a primera vista, observamos un clon del IDE de Arduino (algo bastante obvio, porque es un fork) pero en color rojo. Además del cambio de color, todas las barras de herramientas y menús, son identicos al IDE de Arduino.

 

Antes de empezar a programar, debemos cerciorarnos de que estamos utilizando la configuración correcta para nuestro Launchpad. Para esto, debemos seleccionar el puerto serie, y tipo de board correctos en el menu Herramientas. En mi caso estoy usando el puerto COM7 y el board LM4F120, que es de la primera serie de los Launchpad con Cortex M4.

stellaris3

Ahora si tenemos todo listo para empezar a programar, y vamos a empezar con el “Hello World!” de los microcontroladores: El blink. Vamos a crear un pequeño sketch que encienda el led Rojo del Launchpad, espere 1 segundo, lo apague, espere 1 segundo, y lo vuelva a encender. Para esto, pegamos el siguiente código en la ventana del editor Energia.

#define LED RED_LED
void setup() {                
  pinMode(LED, OUTPUT);     
}

void loop() {
  digitalWrite(LED, HIGH);   
  delay(1000);               
  digitalWrite(LED, LOW);    
  delay(1000);              
}

Una vez copiado el código, presionamos en boton de descarga, y listo! El Led rojo de nuestro Launchpad empieza a parpadear.

Si queremos jugar un poco, podemos cambiar el color del Led. El launchpad incluye un led RGB, que podemos hacerlo parpadear cambiando esta línea:

#define LED GREEN_LED

O por

#define LED BLUE_LED

En los próximos días, continuaré con la serie, explicando como usar los distintos periféricos, y algunas funciones avanzadas del Launchpad.

6 comentarios en “Stellaris Launchpad + Energia (pt. 1)

  1. Hola que tal, excelente blog, tengo un problema, al darle en upload al final da un mensaje de: “Found ICDI device with serial: 0E207FE2
    ICDI version: 9270”
    sabes a que se debe? de antemano gracias, saludos.

  2. Hola, como estas. Si te aseguraste que los drivers de stellaris estén correctamente instalados?

    Yo recuerdo que alguna vez me daba ese error con las primeras versiones del IDE Energía, pero actualizando se solucionó. Lo que recuerdo que hacía cuando tenía ese error, era compilar el codigo con energía, y el compilado lo cargaba al stellaris usando la herramienta lmflash que la puedes encontrar en http://www.ti.com/tool/lmflashprogrammer

    Algo molesto, pero funcionaba

  3. Hola de nuevo y gracias por responder. Si, de hecho tengo exactamente lo mismo a tu imagen, http://patolin.com/files/2014/06/stellaris1.png
    lo cual indica que tengo bien instalados los dirvers, tengo la versión Energia 0101E0013, que según la pagina es la mas actual, la configuración que puse es COM7 y la board que tengo es la Tiva C Series TM4C123G LaunchPAd Evaluation Kit EK-TM4C123GXL, acabo de bajar el LM Flash, me da 2 opciones, reparar y remover, sabes cual elijo? de antemano gracias.

  4. Hola, que tal, escribo porque tengo problemas para configurar los pines como entrada, quiero usar la funcion de escritura y no logro que funcione! si me podes aconsejar como hacerlo! uso el CCS 5! gracias!

  5. Hola Rodrigo. Sabes que en los ejemplos del CCS está el cómo configurar los pines como entrada o salida dependiendo de los requerimientos.
    Lastimosamente no tengo instalado el CCS en mi computador, pero quizás si descargas esta aplicación, y revisando el código que genera, podrías facilmente determinar como configuras cada pin de los puertos del stellaris.

    http://www.ti.com/tool/tm4c_pinmux

    Otra cosa que quizas no entiendo bien (o estás confundido) es que quieres usar un pin de entrada, con una función de escritura de dato a puerto, ojo que tienes que usar la función de lectura del puerto, con la máscara de entrada respectiva.

    Avísame si necesitas algún dato adicional, y espero que esta info te sea útil

  6. Buenas noches tengo duda en como hacer un toggling al presionar los dos switches, primero debe prender y apagar tres veces cada medio segundo, despues otras tres veces cada dos segundos y despues otras tres veces cada medio segundo, usando el puerto f, no entiendo en cuanto a los calculos de tiempo espero me puedas ayudar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *