TI LaunchPad | C.I.r.E.

Home

Competición Robótica en España

Enlaces

Sobre el C.I.r.E.

Muchas son las placas que podemos encontrar de prueba/iniciación de las distintas familias de microcontroladores de diversos fabricantes, hace un año aproximadamente, Texas Instruments sacó la Launchpad , la opción más barata para probar y empezar a trabajar con un microcontrolador.

Por menos de 5 euros podemos encontrar la Launchpad en Farnell que trae todo lo necesario para trabajar con los microcontroladores de 16 bits de bajo consumo de TI, el kit consta de una placa que incluye un programador/emulador USB y donde podemos pinchar uno de los dos microcontroladores que nos dan.

Contenido del kit.

En la imagen se puede ver la placa con un microcontrolador pinchado, otro microcontrolador en su bolsa, un cristal de 32 KHz, el cable usb para conectar la placa con el pc y los conectores que debemos soldar en la placa para comunicar el micro con el mundo exterior.

1. Hardware.

La placa se divide en dos partes:

La parte del microcontrolador, donde pinchamos uno de los microcontroladores que nos dan y tenemos disponibles sus puertos al mundo exterior a través de los conectores. Esta parte también incluye un par de diodos led, uno rojo conectado al pin P1.0 y uno verde en P1.6, y un par de pulsadores, uno de reset y otro de usuario en P1.3.

Y la parte del programador/emulador:

Este es el punto fuerte de esta placa que le diferencia de las opciones similares, incluye un emulador. El “emulador embebido” además de permitirnos descargar los programas que hagamos en el pc en la memoria Flash del microcontrolador para que se ejecuten en éste, también nos permite que el programa que grabamos en el microcontrolador se ejecute en éste bajo el control de un debugger ejecutandose en un pc, es decir, podemos ejecutar el código en el microcontrolador paso a paso, establecer puntos de parada y ver los valores que toman los distintos registros del microcontrolador en el pc según se ejecuta el código en el microcontrolador, etc.. Lo que puede ser totalmente necesario cuando un programa no funciona y hay que buscar los fallos.

Además esta parte de la placa también nos sirve para que el microcontrolador se conecte con un pc para que puedan intercambiar datos.

Todas las familias de microcontroladores suelen tener esta opción del emulador/debugger, pero por lo general hay que comprar un hardware externo para conectar el microcontrolador al pc que en la mayoría de los casos cuesta varios cientos de euros.

La inclusión del debugger en los kits de iniciación de bajo coste es la “novedad” que ha parecido en el último año, también lo podemos encontrar en placas de iniciación de micros de 32 bits, siendo estos micros de 32 bits indicados para usuarios avanzados y muy poco adecuados para ser el primer microcontrolador con el que se empieza.

Siguiendo con el hardware en el kit nos vienen dos microcontroladores:

MSP430G2231IN14: datasheet . Página del microcontrolador .

Alimentación: 1.8 V a 3.6 V.

Oscilador interno a 16 MHz.

1 timer de 16 bits.

Módulo I2C/SPI.

ADC de 10 bits y 8 canales.

2 KB de memoria Flash, 128 Bytes de memoria Ram.

Encapsulado de 14 pines con 10 GPIO.

WDT, BOR.

MSP430G2211IN14: datasheet . Página del microcontrolador .

Alimentación 1.8 V a 3.6 V.

Comparador de señal analógica de 8 canales.

Para hacer un programa/proyecto clickeamos en el primero de los iconos, lo primero que nos pregunta es el nombre del directorio donde vamos a guardar nuestros proyectos, le damos el nombre que queramos, launchpad en mi caso.

Y entramos en el Code Composer Studio, lo primero es crear un proyecto: File ->New -> CCS Project y le asignamos el nombre que nos parezca.

Le damos a Next y seleccionamos el tipo de proyecto, MSP430 para nuestro microcontrolador y volvemos a pulsar Next.

En la siguiente ventana la dejamos como está y pulsamos Next.

Ahora nos pide que seleccionemos el microcontrolador en el menú desplegable, seleccionamos el que viene pinchado en la launchpad, el MSP430G2231 y le damos a Finish.

Ya tenemos el proyecto configurado, a continuación cerramos la pantalla de bienvenida del ccs dando a close.

Y le damos a File -> New -> Source File.

Y en Source File le asignamos el nombre de main.c.

Pulsamos Finish y ya tenemos nuestro proyecto preparado para comenzar a trabajar.

Cuando empezamos a trabajar con un microcontrolador y tenemos que escribir un programa por primera vez, lo más sensato es buscar programas hechos por otros que nos sirvan de ejemplo, en la página de la Launchpad encontramos programas de ejemplo: ejemplos para el MSP430G2xx2 y ejemplos para el MSP430G2xx1 . Descargamos los del primer enlace que se corrersponden con el microcontrolador que tenemos en la placa.

Abrimos el .zip donde podemos encontrar ejemplos en C y en ensamblador.

Nos vamos a la carpeta C donde tenemos varios programas de ejemplo, en el archivo !Readme tenemos una descripción de lo que hace cada .c. Lo primero para probar un micro suele ser hacer un hola mundo con un led, en este caso podemos usar uno de los leds que vienen en la placa. En !Readme encontramos el siguiente hola mundo: MSP430G2xx2_1.c Software Toggle P1.0. Abrimos el archivo .c, copiamos el programa y lo pegamos en nuestro proyecto, en main.c.

#include <msp430g2452.h> void main ( void ) { WDTCTL = WDTPW + WDTHOLD ; // Stop watchdog timer P1DIR |= 0 × 01 ; // Set P1.0 to output direction for ( ;; ) { volatile unsigned int i ; P1OUT ^= 0 × 01 ; // Toggle P1.0 using exclusive-OR i = 50000 ; // Delay do ( i– ) ; while ( i != 0 ) ; } }

El programa comienza desactivando el WatchDog, configura el pin P1.0 como salida poniendo a 1 el bit correspondiende en P1DIR, y a continuacuón conmuta este pin en un bucle encendiendo y apagando el led rojo de la placa, entre cada conmutación hay un retardo de tiempo producido por un segundo bucle controlado por la variable i, la cual se declara como volatile. Cuando declaramos una variable como volatile le estamos diciendo al compilador que de esa variable no se debe guardar una copia en los registros de la cpu por motivos de eficiencia, esto se hace cuando el valor de la varible puede cambiar repentinamente y en el registro tendríamos el valor sin modificar, lo que daría lugar a un valor incorrecto de la variable usada por el micro. En este caso y siendo el primer programa que veo de este microcontrolador diría que no es necesario declarar aquí la variable i como volatile.

Pegamos el código en main.c. Click en la imagen para mayor detalle.

Una vez que tenemos el código pegado en main.c hay que grabarlo en la placa del microcontrolador, para ello conectamos la Launchpad al puerto usb con el microcontrolador en su sitio. Windows instala el software correspondiente y ya está listo para utilizarlo. El micro viene con un programa grabado de fábrica y vemos como nada más alimentar la placa el led verde y rojo se encienden.

Para grabar el programa que hemos hecho pulsamos el botón de Debug (el botón con un bicho verde) con la placa conectada.

Nada más pulsar el botón el Code Composer Studio entra en vista de modo Debug y graba el programa en el microcontrolador.

CCS en modo Debug, click en la imagen para mayor detalle.

Podemos ver una pantalla donde aparece el programa, unos botones para controlar el código que corre en el microcontrolador y variables a visualizar, en este caso la variable i que controla el bucle de retardo mostrando el valor que toma según se van ejecutando las instrucciones.

El control del microcontrolador se realiza a través de los siguientes botones, donde podemos hacer que el programa corra en el micro al pulsar la flecha verde, detenerlo, hacer que se ejecute paso a paso o salte a un punto de interés al pulsar las flechas centrarles, resetear el microcontrolador, etc.. Al pasar el ratón por encima de cada botón nos indica la función de éste.

Si pulsamos la flecha verde el programa de ejemplo que hemos grabado empieza a correr, encendiendo y apagando el led rojo de la launchapad.

A la vista de debug del CCS le podemos añadir más cosas, como puede ser ver el código ensamblador que genera el compilador, una tabla para ver los valores que van tomando los registros del microcontrolador según se va ejecutando el código, etc.. Todo ésto lo podemos seleccionar en el menu view, click en la imagen para mayor detalle.

Se puede ver como se ha añadido la visualización de los registros, en este caso en rojo se ven los registros asociados con los pines de entrada y salida del microcontrolador, donde está el led rojo utilizado en el programa. Podemos ver el valor que toman los registros a cada instrucción de programa, la instrucción donde se encuentra el programa se puede ver marcada con una flecha azul en la parte del código en C y en la parte equivalente del código en ensamblador.

Para salir del modo debug, que el programa corra en el microcontrolador sin control del pc, y volver a la vista de CCS inicial pulsamos el botón del cuadrado rojo de la barra anterior. Cuando conectemos la placa a un puerto usb y el microcontrolador reciba alimentación el programa comenzará a correr.

3. Grace.

Además de mayor memoria de programa, otra razón para usar el Code Composer Studio (que va sobre Eclipse y requiere bastante recursos del pc) frente al IAR (entorno de desarrollo usado por varios micros de distintos fabricantes) es Grace .

Grace es un plug-in del CCS que nos permite generar el código necesario para configurar los distintos periféricos del microcontrolador, de una manera rápida y de forma gráfica, y sin tener que conocer el funcionamiento de estos módulos a nivel de registro, lo que nos va a ahorrar mucho tiempo de leer datasheets.

Podemos descargarlo aquí , para instalarlo descargamos el archivo y ejecutamos el .exe indicando que se instale en el mismo directorio que CCS, por lo general: c:\Program Files\Texas Instruments y reiniciamos CCS una vez instalado.

Para crear un proyecto y usar Grace abrimos el CCS, y seguimos los mismos pasos que antes: le damos a File -> New -> CCS Project, elegimos el nombre, seleccionamos el MSP430, dejamos como está la siguiente pantalla y le damos a Next, seleccionamos el micro a usar (MSP430G2231) dejando el resto como está, y llegamos a la siguiente pantalla:

Seleccionamos “Empty MSP430 Grace Project” y le damos a Finish, se crea el proyecto y vamos a la pestaña de presentación de Grace, donde encontramos enlaces a las diferentes guías, datasheets del micro, etc..

Pulsamos sobre “Device Overview”

Y aparecen los distintos bloques hardware que tenemos en nuestro microcontrolador, los que están en azul son los que se pueden configurar con Grace, y los que tienen la flechita verde son los que vienen configurados por defecto.

Pinchando con el ratón sobre uno de los bloques azules, entramos en ese bloque y se nos abre una pestaña con información y enlaces sobre el bloque y donde tenemos la posibilidad de habilitarlo. Por ejemplo pinchando sobre el timer se abre la siguiente pantalla (click para mas detalle):

Donde tenemos varias pestañas para configurar el módulo, seleccionamos una señal pwm de 50 Hz y 45% de ciclo de trabajo en P1.2.

Una vez que configuramos los distintos módulos le damos a build active project para que nos genere los archivos correspondientes con nuestra configuración.

Se generan los ficheros con nuestra configuración y los podemos ver en la barra lateral de la izquierda:

Abrimos el main.c y nos viene ya una plantilla indicandonos donde tenemos que escribir nuestro código.

/* * ======== Standard MSP430 includes ======== */ #include <msp430.h> /* * ======== Grace related includes ======== */ #include <ti/mcu/msp430/csl/CSL.h> /* * ======== main ======== */ int main ( int argc , char * argv [ ] ) { CSL_init ( ) ; // Activate Grace-generated configuration __enable_interrupt ( ) ; // Set global interrupt enable // >>>>> Fill-in user code here <<<<< while ( 1 ) { } return ( 0 ) ; }

Una vez escrito el código le damos al botón de debug para grabar el programa en el microcontrolado, y a la flecha verde para que comience a correr el programa éste. Si ponemos un osciloscopio en P1.2 podemos observar la señal que hemos configurado en Grace, una señal de 48 Hz y 45% de ciclo de trabajo, muy similar a la que habíamos puesto teniendo en cuenta que estamos usando el oscilador interno del microcontrolador y por tanto habrá un pequeño error.

Sin haber leído una sola hoja del datasheet del microcontrolador, ni haber hecho un programa antes con estos micros, he programado una señal pwm en un pin. Hacer ésto de la forma tradicional pues llevaría un buen rato de mirar los datasheets y empezar a conocer los registros y periféricos del microcontrolador.

Pongo el video donde muestran el uso de Grace.

4. Conclusiones.

Después de ver la Launchpad por primer vez la conclusión que se puede sacar es que si queremos aprender a usar un microcontrolador, sin duda la Launchpad de TI es la mejor opción.

Muy por delante de Arduino, ya que Arduino no es para personas que quieren aprender a usar un microcontrolador, si no para personas que necesitan usar un microcontrolador para hacer “algo”, y se deciden por Arduino ya que les proporciona un nivel de abstracción que evita conocer el microcontrolador.

Con la Launchpad por 5 euros tenemos TODO lo necesario para trabajar con un microcontrolador, un entorno de desarrollo, un porgramador/debugger, un compilador y además una herramienta innovadora como Grace, que a la larga no nos va a librar de tener que leer datasheets (ya que ésto siempre es necesario según se avanza), pero si que nos puede ahorrar muchas horas de tener que configurar los periféricos del microcontrolador en cada proyecto nuevo que hagamos.

En la página de texas Instruments encontramos todo lo necesario de forma rápida para empezar, página de la Launchpad .

Desde el punto de vista de un aficionado, buscando un microcontrolador para hacer un pequeño proyecto, la principal pega de la Launchpad es que los microcontroladores que vienen son muy sencillos/limitados, tienen pocos periféricos y poca memoria frente a otros microcontroladores de 8 bits, que serían las otras opciones a considerar. También hay kits de iniciación de microcontroladores de 32 bits, que por un precio bajo también lo tienen todo (o casi todo), pero la curva de aprendizaje con estos microcontroladores es mucho más lenta y son más indicados para usuarios avanzados.

Si las características del proyecto permiten el uso de un microcontrolador con pocos recursos, si es un proyecto donde se requieren microcontroladores de bajo consumo, o simplemente queremos dar los primeros pasos en el mundo de los microcontroladores, valorando lo que nos dan y lo que pagamos por ello y a falta de herramientas previas, la Launchpad se convierte en la primera opción a considerar.

Además tenemos complementos que conectar a la Launchpad y otros kits de iniciación con el MSP430 que TI va sacando a precios muy atractivos, por lo que puede ser intenresante plantearse trabajar con esta familia de microcontroladores. Algunos ejemplos de kits de evaluación que TI va sacando para el MSP430:

430BOOST-SENSE1 , placa con leds y sensores capacitivos que podemos pinchar en la launchpad.

MSP-EXP430FR5739 , placa de evaluación de un micro con FRAM, memoria no volátil más rápida y longeva que la Flash.

EZ430-Chronos , un reloj programable en la muñeca, con distintos sensores y que se puede comunicar de forma inlámbrica con el pc.

Como pega decir que los conectores de la Launchpad podrían venir soldados, para mucha gente que empieza ésto puede ser un problema ya que no tiene herramientas, una tira de pines hembra como en las placas de Arduino sería lo más acertado, y también sería interesante la opción de tener un cristal externo con los 16 MHz.

Dejo un par de enlaces, un libro sobre el MSP430 en inglés y una blog en español donde han utilizado la Launchpad y el IAR como entorno de programación para hacer un robot velocista: Severobot .

Javier says: November 29, 2011 at 00:00 Gracias amigo, me has sacado muchas dudas, xD

Gracias amigo, me has sacado muchas dudas, xD

diego says: May 1, 2012 at 23:39 me parece muy barato y muy bueno !! por eso lo compre!! pero no he podido programar tengo algun problema con el CCSV5 y v4 nose que pasa sigo los pasos copio el ejemplo de sensor de temperatura y lo copio en main.c, lo guardo y cuando le doy debug se traba y se cierra el programa. lo he hecho con las dos versiones y en dos computadores diferentes en mi laptop y en el de scritorio pero ………….. no he podido te agradeceria un poco de ayuda…. ya no se que hacer …. instalo la carpeta en C directamente no en programas, cambie la visualizacion de windows 7 a XP por si corria mejor (como pasa con matlab)….. algun requisito de CCS parawindows 7??????? bueno te agradezco cualquier tipo de informacion, esta bien estoy algo (o muy) estresado, realmente no encuentro muchas personas que hablen español y programen LAUNCHPAD en CCS bueno cualquier cosa mi correo es ing.diego.centeno@webdelcire.com David says: August 18, 2012 at 18:38 a mi me pasaba lo mismo y era culpa de que no cambie en la primera linea el #include por #include un saludo David says: August 18, 2012 at 18:39 se comió una parte del blog, lo que cambie fue el include, en mi caso msp430G2553

me parece muy barato y muy bueno !! por eso lo compre!! pero no he podido programar tengo algun problema con el CCSV5 y v4 nose que pasa sigo los pasos copio el ejemplo de sensor de temperatura y lo copio en main.c, lo guardo y cuando le doy debug se traba y se cierra el programa. lo he hecho con las dos versiones y en dos computadores diferentes en mi laptop y en el de scritorio pero ………….. no he podido

te agradeceria un poco de ayuda…. ya no se que hacer …. instalo la carpeta en C directamente no en programas, cambie la visualizacion de windows 7 a XP por si corria mejor (como pasa con matlab)…..

algun requisito de CCS parawindows 7???????

bueno te agradezco cualquier tipo de informacion, esta bien estoy algo (o muy) estresado, realmente no encuentro muchas personas que hablen español y programen LAUNCHPAD en CCS

bueno cualquier cosa mi correo es ing.diego.centeno@webdelcire.com

David says: August 18, 2012 at 18:38 a mi me pasaba lo mismo y era culpa de que no cambie en la primera linea el #include por #include un saludo David says: August 18, 2012 at 18:39 se comió una parte del blog, lo que cambie fue el include, en mi caso msp430G2553

a mi me pasaba lo mismo y era culpa de que no cambie en la primera linea el #include

por

#include

un saludo

David says: August 18, 2012 at 18:39 se comió una parte del blog, lo que cambie fue el include, en mi caso msp430G2553

se comió una parte del blog, lo que cambie fue el include, en mi caso msp430G2553

JMN says: May 3, 2012 at 16:31 Ni idea de lo que te está pasando, yo he podido instalar los dos compiladores que recomiendan y sus entornos en windows sin problemas, como se describe en la entrada. Saludos.

Ni idea de lo que te está pasando, yo he podido instalar los dos compiladores que recomiendan y sus entornos en windows sin problemas, como se describe en la entrada.

Saludos.

qwerty says: August 23, 2012 at 10:39 Hola, me e comprado el launchpad y tengo problemas para configurar las entradas, por algun motivo que no llego a comprender (y seguro que es alguna tonteria) el programa ignora las señales de entrada y sigue su curso normal porque al compilar no me da ningun problema. JMN says: August 23, 2012 at 11:10 Hola qwerty, supongo que tendrás algún error en el programa, ya sea en la configuración del puerto o a la hora de leer el pin de entrada. En la página de la Launchpad puedes encontrar varios ejemplos de programas, para preguntar dudas y pegar el código el único foro que conozco en español es éste: http://www.todopic.com.ar/foros/index.php?PHPSESSID=ameiufqtghq0k9tud33jq2f4s6&board=15.0 . A la hora de preguntar en el foro es recomendable que pongas el código que tienes y detalles el hardware, para poder obtener una buena respuesta. Saludos qwerty says: August 23, 2012 at 16:09 Ya lo solucione mirando ejemplos de la pagina de it, y si me faltava un paso para terminar de configurar las entradas, gracias igualmente por el aporte de el foro.

Hola, me e comprado el launchpad y tengo problemas para configurar las entradas, por algun motivo que no llego a comprender (y seguro que es alguna tonteria) el programa ignora las señales de entrada y sigue su curso normal porque al compilar no me da ningun problema.

JMN says: August 23, 2012 at 11:10 Hola qwerty, supongo que tendrás algún error en el programa, ya sea en la configuración del puerto o a la hora de leer el pin de entrada. En la página de la Launchpad puedes encontrar varios ejemplos de programas, para preguntar dudas y pegar el código el único foro que conozco en español es éste: http://www.todopic.com.ar/foros/index.php?PHPSESSID=ameiufqtghq0k9tud33jq2f4s6&board=15.0 . A la hora de preguntar en el foro es recomendable que pongas el código que tienes y detalles el hardware, para poder obtener una buena respuesta. Saludos qwerty says: August 23, 2012 at 16:09 Ya lo solucione mirando ejemplos de la pagina de it, y si me faltava un paso para terminar de configurar las entradas, gracias igualmente por el aporte de el foro.

Hola qwerty,

supongo que tendrás algún error en el programa, ya sea en la configuración del puerto o a la hora de leer el pin de entrada. En la página de la Launchpad puedes encontrar varios ejemplos de programas, para preguntar dudas y pegar el código el único foro que conozco en español es éste: http://www.todopic.com.ar/foros/index.php?PHPSESSID=ameiufqtghq0k9tud33jq2f4s6&board=15.0 . A la hora de preguntar en el foro es recomendable que pongas el código que tienes y detalles el hardware, para poder obtener una buena respuesta.

Saludos

qwerty says: August 23, 2012 at 16:09 Ya lo solucione mirando ejemplos de la pagina de it, y si me faltava un paso para terminar de configurar las entradas, gracias igualmente por el aporte de el foro.

Ya lo solucione mirando ejemplos de la pagina de it, y si me faltava un paso para terminar de configurar las entradas, gracias igualmente por el aporte de el foro.

A.R.D.E.

Categorías Diseño digital (12) Electrónica (50) FPGA (1) General (33) Humor (1) Impresoras 3D (5) Linux (2) Microcontroladores (45) Programación (21) Robot Zero (1) Robótica (59) vinciDuino (8) ZigBee (1)

Diseño digital (12)

Electrónica (50)

FPGA (1)

General (33)

Humor (1)

Impresoras 3D (5)

Linux (2)

Microcontroladores (45)

Programación (21)

Robot Zero (1)

Robótica (59)

vinciDuino (8)

ZigBee (1)

Posts por autor C.I.r.E. (20) David (21) Guillermo (2) JMN (100) M. A. Rivera (2) Oscar (25) Raul (4)

C.I.r.E. (20)

David (21)

Guillermo (2)

JMN (100)

M. A. Rivera (2)

Oscar (25)

Raul (4)

Entradas más visitadas Robot Zero. A Line Follower for Beginners - 178206 hits Android + Processing + Bluetooth - 155750 hits Kinematic model of a differential drive robot - 142898 hits Robot Zero. Velocista para principiantes. - 109357 hits Comenzando con ZigBee. - 80685 hits

Robot Zero. A Line Follower for Beginners - 178206 hits

Android + Processing + Bluetooth - 155750 hits

Kinematic model of a differential drive robot - 142898 hits

Robot Zero. Velocista para principiantes. - 109357 hits

Comenzando con ZigBee. - 80685 hits

Últimos Comentarios martin duran on Autodesk Inventor: Ensamblaje de partes Juan D. on Final de una etapa richard zerpa on Sobre el C.I.r.E. JMN on Sobre el C.I.r.E. richard zerpa on Sobre el C.I.r.E.

martin duran on Autodesk Inventor: Ensamblaje de partes

Juan D. on Final de una etapa

richard zerpa on Sobre el C.I.r.E.

JMN on Sobre el C.I.r.E.

Blogroll A.R.D.E. Barrapunto Dangerous Prototypes eleCrab Foro C.I.r.E. Hack a Day LimoncelloDigital Medialab Prado Sistemas O.R.P. StackExchange vinciDuino

Barrapunto

Dangerous Prototypes

eleCrab

Foro C.I.r.E.

Hack a Day

LimoncelloDigital

Medialab Prado

Sistemas O.R.P.

StackExchange

vinciDuino

Encuesta ¿Qué microcontrolador es el que más usas en tus proyectos? Microchip 16 bit TI MSP430 Microchip PIC ARM Arduino Microchip PIC32 Otros Atmel AVR View Results Loading ...

¿Qué microcontrolador es el que más usas en tus proyectos?

Microchip 16 bit

TI MSP430

Microchip PIC

ARM

Arduino

Microchip PIC32

Otros

Atmel AVR

View Results

Visitas desde 17 Sept 2012 Visit Today : 93 This Month : 93 Total Visit : 344085 Hits Today : 116 Total Hits : 686302 Who's Online : 0 plugins by Bali Web Design

Visit Today : 93

This Month : 93

Total Visit : 344085

Hits Today : 116

Total Hits : 686302

Who's Online : 0