martes, 20 de marzo de 2012

El Pequeño Launchpad

En mi artículo anterior hablé sobre la Familia Discovery. Se trataba de una familia de placas de bajo coste para el desarrollo de aplicaciones con microcontroladores. Estas placas, con costes que pueden caer por debajo de 10€, no son, sin embargo, la opción más barata. En el capítulo de costes, el premio se lo lleva la placa Launchpad de Texas Instruments.

Las imágenes que se muestran a continuación muestran las versiones 1.4 y 1.5 de la placa Launchpad. A parte de pequeñas diferencias eléctricas, los microcontroladores que se incluyen son bastante distintos. Imagino que, a dia de hoy, únicamente se venden las de versión 1.5 que son, con mucho, las mejores.

Launchpad Rev 1.4
Lauchpad Rev 1.5

Con un precio de menos de 4€ (en Farnell, por ejemplo) esta placa incluye un programador/emulador USB, espacio para conectar un microcontrolador, pulsadores de reset y de usuario y dos leds programables.  Más aún, a falta de uno se incluyen dos microcontroladores de la familia de 16 bits MSP430.
En la versión 1.4 se incluía con el Launchpad un MSP430G2211 y un MSP430G2231, pero, actualmente, se han subido las apuestas y se incluye, en la versión 1.5, un MSP430G2553 y un MSP430G2452.
Todo ello por menos de lo que costarían los dos microcontroladores que se incluyen en el pack si los compráramos por separado al por menor aunque, dicho sea de paso, no son tan fáciles de conseguir.
Con esta placa, Texas Instruments intenta claramente apostar por los usuarios de microcontroladores no profesionales intentando arañar un poco del mercado que Atmel ha obtenido con el famosísimo Arduino.

Después de esta explicación general, pasaré a explicar con un poco más de detalle el contenido del pack.


Los procesadores

Los microcontroladores de 16 bits que se incluían en la versión 1.4 del Launchpad eran el MSP430G2211 y el MSP430G2231. Ambos pertenecen a la serie de bajo coste Value Line de la familia MSP430. Algunas características comunes que tienen son:

  • Encapsulado DIP de 14 pines
  • Alimentación de 1.8V a  3.6V
  • 2 kBytes de memória Flash
  • 128 bytes de memória RAM
  • Temporizador y Watchdog
  • 8/10 líneas de E/S (P1.0 a P1.7 / P2.6 , P2.7)

Las diferencias entre los dos Chips son:

  • El G2211 tiene un comparador con 8 canales
  • El G2231 tiene un ADC de 10 bits y 8 canales
  • El G2231 tiene una USI (algo menos que una UART)


Como se ve son procesadores bastante modestos, no obstante, para aplicaciones sencillas de baja potencia, que es donde destacan, pueden resultar bastante interesantes.
En todo caso, en los Lauchpad que se venden actualmente, con la versión 1.5 los procesadores son el MSP430G2452 y el MSP430G2553. Sus características son:

  • Encapsulado DIP de 20 pines
  • Alimentación de 1.8V a  3.6V
  • Comparador con 8 canales
  • Convertidor A/D de 10bits con 8 canales
  • 14 líneas de E/S (16 si no se usa el cristal de 32kHz)
  • Watchdog
  • 8/10 líneas de E/S (P1.0 a P1.7 / P2.6 , P2.7)

Las diferencias entre los dos Chips son:

  • El G2452 tiene 8kB de Flash, mientras que el G2553 tiene 16kB
  • El G2452 tiene 256 bytes de RAM mientras que el G2553 tiene 512 bytes
  • El G2452 tiene un timer y el G2553 tiene 2
  • El G2452 tiene una USI mientras que el G2553 tiene una UART


Como se ha indicado, los procesadores disponibles, aún siendo de 16 bits, son algo sencillos , si bien han mejorado notablemente en la versión 1.5 del Launchpad. El procesador que incluye la placa STM8S Discovery, pese a ser de 8 bits, dispone más memoria y lineas de E/S disponibles. No obstante, ese es el punto fuerte del Launchpad, su simplicidad. El uso de emplear integrados de tipo DIP14 y DIP20 hace que uno pueda sacar el integrado después de programarlo e incluirlo en cualquier proyecto sencillo realizado en placas de prototipado. Más aún, dado que la programación/depuración se hace con sólo dos líneas que no interfieren con los puertos de E/S, es posible depurar el sistema con el microcontrolador en otra placa usando el emulador de la placa Lauchpad.


El Emulador

El emulador que incluye la placa está construido principalmente en torno a dos integrados: Un microcontrolador MSP430F1612 (bastante más completo que los que demuestra la placa) y un chip TUSB3410 que realiza el interfaz con el puerto USB y que incorpora dentro, a su vez, un procesador 8052. Cada uno de ellos, comprado por separado, es mucho más caro que la placa Launchpad entera. 

Emulador de la placa v1.5

El emulador permite, a parte de cargar el código en el microcontrolador, realizar debug con breakpoints, ejecución de instrucciones paso a paso y visualización de los valores de las variables.  Adicionalmente se  incluye un puerto serie virtual a través de USB igual que en la placa Arduino. A Texas Instruments sus propios chips le deben de salir muy baratos para regalarlos incorporando un sistema de emulación completo con el Launchpad.

Este tipo de soluciones con emulador son económicamente inviables en una placa como Arduino, por lo que en ésta, la carga de programas se realiza mediante un Bootloader que carga el programa a través de un puerto serie virtual que se crea sobre el interfaz USB. Por tanto, no tenemos acces a funciones de debug.
El bootloader, además de que ocupa espacio en memoria, tiene que estar previamente en el microcontrolador para que la placa cargue los programas desde el PC. Dicho de otro modo, en una placa Arduino UNO no podemos comprar un ATmega328 nuevo y vacío y substituir el que viene en la placa sin más ya que, al no tener bootloader no podrá comunicarse con el PC. Afortunadamente se venden chips ATmega328 con el bootloader de Arduino incluido y, misterios de los volúmenes de ventas, pueden ser incluso mas baratos que los ATmega328 vacíos.

En el caso del Launchpad no hay que preocuparse por nada de esto ya que la placa es capaz de programar cualquiera de los microcontroladores que soporta aunque esté completamente vacío. Eso es importante ya que los 2kBytes de memoria de los chips que se incluyen con el kit son demasiado escasos para ocuparlos parcialmente con un bootloader.

La comunicación del emulador con el resto de la placa se hace con 5 jumpers por lo que, si se quitan, el emulador se desconecta completamente del resto de la placa quedando únicamente conectadas las masas de ambos.


El resto de la placa

El resto de la placa viene debajo del emulador e incluye un zócalo para el microcontrolador y acceso a los distintos periféricos y líneas de E/S.

Resto de la placa v1.5


 Los elementos de E/S incluidos en la placa son

  • Un pulsador de Reset
  • Un pulsador de Usuario conectado a P1.3
  • Dos leds conectados a P1.0 (Verde) y P1.6 (Rojo)
Si en nuestro proyecto no nos interesa usar los leds, se pueden desconectar mediante dos jumpers provistos al efecto.
Como se ha comentado, el interfaz del emulador cuenta con dos líneas para establecer un interfaz RS-232 bidireccional con el Microcontrolador a través de los pines P1.1 (TX) y P1.2 (RX). Si no se desea hacer uso de este interfaz, estos pines se pueden usar como E/S de propósito general.

Los extras

Junto a la placa, dentro de la caja en que viene el Launchpad se incluye:
 
Accesorios inckuidos en la version 1.5

  • Un cable USB-A a Mini-USB
  • Dos tiras de pines hembra
  • Dos tiras de pines macho en la versión 1.4
  • Un cristal de cuarzo de 32 kHz
  • Un breve folleto
  • Un par de pegatinas 
  • El procesador que no venía montado en la placa

El cristal de cuarzo es realmente pequeño, y requiere muy buena vista para soldarlo a la placa. El motivo por el que no se halla ya soldado en la placa es que, si no se suelda, los dos pines a que va conectados pueden usarse como E/S de propósito general en los puertos P2.6 y P2.7

Vista del oscilador de 32kHz

En el primer Launchpad que compré era la versión 1.4 y las tiras de pines estaban sin soldar por lo que era fácil elegir entre pines macho o hermbra para las E/S. El último Launchpad que he comprado ( v1.5), lleva ya soldadas las tiras de pines macho. Se siguen suministrando las tiras hembra, pero resulta algo incómodo tener que desoldar las otras para ponerlas. Imagino que se dan ya presoldadas para minimizar el trabajo que ha de hacer el usuario para usar la placa.


Programando el Launchpad

Hablar sobre la programación del Lauchpad ya me daría, por si sólo, para una serie de artículos. Es por eso que únicamente haré un breve comentario.

Para programar el Launchpad hay varias opciones. Entre ellas:



  • Code Composer Studio: Code Composer es un entorno comercial de programación/depuración de Texas Instruments. Dispone, sin embargo, de una licencia gratuita que permite generar código de hasta 16kB. Esto es justo la memoria Flash que tiene el  MSP430G2553 incluido en los últimos Launchpad de versión 1.5.
  •  IAR Embedded Workbench: Éste es otro entorno comercial como el anterior. Dispone también de una versión gratuita denominada kickstart que se halla limitada a 4kB. Esta limitación no era importante para la versión 1.4 de la placa, pero es un serio problema con la versión 1.5, por lo que no creo que sea una opción recomendable.
  • Eclipse y GNU Compiler: Eclipse es un entorno de programación  realizado en Java  de código libre que permite programar en multitud de entornos. El este vínculo se explica como poner en marcha un entorno de programación para el Launchpad basado en estas herramientas.  El procedimiento es algo largo por lo que emplear una de las aplicaciones comerciales anteriores es más sencillo. Un dia de estos, cuando tenga tiempo, miraré de probarlo.


IAR Embedded Workbench depurando un programa en el Launchpad
I


Conclusiones

El Launchpad es una placa muy interesante. Por apenas 4€ tenemos un sistema completo con dos microcontroladores a elegir, emulador completo por USB, e incluso un cuarzo de 32kHz para aplicaciones donde interesa temporización en tiempo real. La versión 1.4 de la placa proporcionaba unos microcontroladores bastante modestos pese a ser de 16 bits, pero en en la versión 1.5 la cosa ha mejorado notablemente. En todo caso su programación no es tan fácil ni tiene tantos ejemplos y librerías como Arduino, pero para quien le interese ver como funcionan por dentro los microcontroladores e ir más allá de la simplicidad que aporta Arduino, es una muy buena opción. Finalmente, al precio que tiene, es realmente un regalo.


Actualización a 21/3/2012

He puesto en marcha un entorno Eclipse para el Lauchpad que permite realizar compilación y depuración sin ningún límite de código. Ya le dedicaré un artículo cuando tenga tiempo.

Depurando el Launchpad con Eclipse

Actualización a 17/4/2012

La explicación de como poner en marcha el entorno eclipse se halla en
este enlace.





1 comentario:

  1. saludos... mi inquietud es la siguiente, el cristal de 32khz es necesario que se soldado a la placa? o esta puede funcionar de igual forma sin el?... estoy utilizando el entono de IAR para programar los micros, pero no logro hacer que funcionen, cual es la complicación que menciona usted que se presenta para las versión 1.5?? tengo dudas en como declara pines de entrada y salida para estos micros

    ResponderEliminar