lunes, 14 de octubre de 2013

MSP430: UART 1

Esta entrada tiene el propósito de demostrar como configurar y trabajar con el módulo interno del microcontrolador llamado UART, explicado en el siguiente capítulo: MSP430: UART.

Vamos a trabajar sobre la placa MSP430 Launchpad y en este caso, usaremos el microcontrolador MSP430G2553. Dicho microcontrolador es uno de los pocos, dentro de la familia MSP430Gxxxx y en encapsulado PDIP, que tenga el módulo UART implementado de manera física (Hardware).

Y el programa de demostración que vamos a emplear consiste en encender o apagar los leds (LED1 y LED2) de la placa MSP430 Launchpad mediante una interfaz gráfica, al principio, ambos leds estarán encendidos.

 El material que vamos a necesitar y su función, es la que se muestra a continuación:

· MSP430 Launchpad: Evidentemente, nuestra placa de desarrollo con el microcontrolador MSP430G2553.
· TUSB3410: Conversor USB <---> RS-232 incorporado en la placa MSP430 Launchpad.
· Leds: Ambos leds (LED1 y LED2) incorporados en la placa MSP430 Launchpad. 
· Interfaz Gráfica: Software que se ejecuta en un ordenador con sistema operativo Windows con al menos, la versión .NET Framework 4.0. Dicha interfaz gráfica se puede descargar más adelante junto al Firmware.

Para la comunicación entre el ordenador y nuestra placa MSP430 Launchpad, utilizaremos el conversor incorporado en la MSP430 Launchpad llamado TUSB3410 (Datasheet).

Dicho conversor, actuará de puente entre el módulo interno UART del microcontrolador y el puerto USB del ordenador (creando un puerto COM virtual en el ordenador).

Pero antes de presentar el código, debemos tener en cuenta algunas consideraciones:

· Preparación placa MSP430 Launchpad: Dependiendo de la versión de la placa MSP430 Launchpad que tengamos, se deberá acondicionar de manera apropiada. En mi caso, dispongo de la versión Rev.1.4 y si observamos la serigrafía de la placa, en la patita P1.1 pone TXD y en la patita P1.2 pone RXD, es decir, las patitas necesarias del módulo UART (TXD: Transmite Datos y RXD: Recibe Datos).

Pero en la hoja de características del microcontrolador MSP430G2553, la función de dichas patitas están invertidas, es decir, en nuestro microcontrolador, la patita de transmitir datos (TXD) está en la P1.2 y la de recibir datos (RXD) en la P1.1.

Es por ello que no debemos hacer caso a la serigrafía que nos muestra la placa y tenemos que acondicionar la comunicación entre el conversor (TUSB3410) con el microcontrolador (UART), para ello, debemos cruzar los conectores disponibles en la placa MSP430 Launchpad (conector J3), tal y como se muestra en la siguiente figura:


Donde se puede observar la siguiente modificación:

· Rectángulo AZUL: Pin superior TXD se conecta al pin inferior RXD.
· Rectángulo NARANJA: Pin superior RXD se conecta al pin inferior TXD.

Dichas conexiones se pueden realizar con cables hembra-hembra y su finalidad, es coincidir con las patitas TXD y RXD del microcontrolador MSP430G2553 que vamos a usar en este capítulo.

El código del programa principal, es el siguiente:

/*----------------------------------------------------------------------
     AqueronteBlog@gmail.com            
                                                      
Este archivo es propiedad intelectual del blog Aqueronte,  
cuya dirección web, es la siguiente:                       
                                                       
   http://unbarquero.blogspot.com/           
                                                       
Se permite cualquier modificación del archivo siempre y cuando
se mantenga la autoría del autor.                          
                                                      
----------------------------------------------------------------------
                                                       
Filename:       main.c                              
Date:           4-October-13                                
File Version:   vs0.0                                     
Compiler:       IAR 5.60.1 [Kickstart]   

Author:         Manuel Caballero                           
Company:        Hades                          
                       
----------------------------------------------------------------------
                                                      
Notes:  En este programa vamos a mostrar como trabajar con el 
        módulo UART.

        El programa consiste en poder cambiar los estados de los LEDS
        disponibles en la placa Launchpad por medio del módulo UART.
                  
        Se utilizará el conversor USB <---> RS-232 TUSB3410 incorporado
        en la propia placa MSP430 Launchpad a 9600 Baudios.

        El microcontrolador estará en modo bajo consumo LPM3 hasta
        que reciba una orden desde el ordenador.
*/

#include "io430.h"
#include "variables.h"
#include "funciones.c"
#include "interrupciones.c"


void main( void )
{  
  conf_WDT  ();            // Configura WDT del sistema
  conf_CLK  ();            // Configura CLK del sistema                                              
  conf_IO   ();            // Configura Entradas/Salidas
  conf_UART ();            // Configura UART

  
  __enable_interrupt();    // Interrupciones ON.
  
  
  while(1)
  {        
    LPM3;                  // Modo bajo consumo: LPM3
    
    if (datoLeido == '0')
      P1OUT ^= BIT0;       // Cambia estado LED1
    else
      P1OUT ^= BIT6;       // Cambia estado LED2
  }
}

Como vemos, el ejemplo es bastante simple, se recomienda bajar los archivos disponibles más abajo para indagar entre sus librerías y leer sus funciones de manera más detallada.

Un vídeo que demuestra lo explicado anteriormente se presenta a continuación:



Os pongo a vuestra disposición el programa en lenguaje C (IAR y MSPGCC) para que lo podáis descargar y probar:

MSP430: UART 
Compilador IARCompilador MSPGCC
CC
MSP430: UART1
MSP430: UART1  
MSP430: UART1
MSP430: UART1
MSP430: UART1
MSP430: UART1

Como se ha podido ver en el transcurso de este capítulo, es fácil el uso del módulo UART y su comunicación, en este caso, con un ordenador.

· NOTA 1: El módulo TUSB3410 está, al parecer, configurado a 9600 baudios como máximo en la placa MSP430 Launchpad, por lo que si queremos mayor velocidad, deberemos emplear un conversor externo al de la placa.

· NOTA 2: En caso de que en el Software empleado para cambiar el estado de los leds de la placa, no reconozca ningún puerto COM, es síntoma de que no se tiene los drivers necesarios del dispositivo TUSB3410, por lo que se deberá instalar para un uso correcto ya que el ordenador no lo reconoce.

· NOTA 3: En posteriores revisiones de la placa MSP430 Launchpad, el incoveniente de intercambiar los pines de TXD y RXD se ha corregido así como, la serigrafía en las patitas P1.1 y P1.2.

· NOTA 4: Los pasos para un correcto funcionamiento son los siguientes:
  1. Cargar/Grabar el programa en el microcontrolador.
  2. Desconectar y volver a conectar la placa MSP430 Launchpad al ordenador: El FET del IDE del IAR se apropia del conversor USB <---> RS-232 por lo que debemos liberarlo para que lo use la interfaz gráfica de manera correcta.
  3. Adaptar el conector J3 convenientemente. 
  4. Ejecutar la interfaz gráfica (Software).

5 comentarios:

Anónimo dijo...

Hola, Perdón falta el archivo "interrupciones.c"

AqueronteBlog dijo...

Buenas:

Tienes razón, ya está subsanado y restaurado los archivos. Seguramente al crear el archivo comprimido para subirlo a la web, se me pasó el documento interrupciones.c.


Muchas gracias por el apunte, un saludo.

Anónimo dijo...

Hola, acabo de probar el código, funciona a la perfección. Mi duda es en la parte del programa UART1_SW, como es que mandas datos al puerto COM, es posible que subas el código de este programa

Aníbal Alejandro dijo...

Hola, una pregunta, en que compilador quemaste el programa_

AqueronteBlog dijo...

Buenas:

@Anónimo: De momento no damos soporte del código fuente de los programas software.

@Aníbal: Lenguaje C, IDE: Code Composer Studio, dicha información la tienes en los comentarios del código.


Un saludo.