miércoles, 25 de marzo de 2015

MSP430: NTC + MSP430FR5739

Este capítulo es diferente a los anteriores ya que vamos a usar la placa de desarrollo MSP430-EXP430FR5739 de la empresa Texas Instruments. Dicha placa de desarrollo contiene el microcontrolador MSP430FR5739 cuya novedad es la memoria interna, ya que es del tipo FRAM.

La memoria o tecnología FRAM presenta ciertas ventajas a la inmunidad al ruido y a la escritura en memoria. Pero no debemos asustarnos, los periféricos se trabajan de forma similar a cualquier microcontrolador de la familia MSP430.

El hecho de emplear esta placa, es que trae incorporado ciertos sensores que pueden ser útiles en nuestros proyectos personales, en este caso, el ejemplo que traemos consistirá en leer la temperatura obtenida por medio del dispositivo externo NTC ( termistor ) y la enviaremos por la UART cada aproximadamente 3 segundos.

Del mismo modo, por medio de la interfaz gráfica, podremos cambiar el estado de los 8 LEDs que dispone la placa de desarrollo.

Y para hacerlo un poco más vistoso, dicha comunicación serie será a través de un par de módulos XBee de forma inalámbrica.

Antes de seguir, decir que un termistor ( NTC ) es dispositivo que cambia su resistencia dependiendo de la temperatura. El dato clave que deberíamos saber acerca de este dispositivo es su parámetro BETA, que es el que necesitaremos para calcular la temperatura incidente.

Pero desgraciadamente, Texas Instruments no ha ofrecido ningún tipo de información acerca de este NTC, solo que su valor nominal es de 100 kΩ y su conexión en el circuito ( recomiendo mirar las conexiones en la guía que pone a disposición Texas Instruments: MSP430FR5739 ).

Así que para este ejemplo, he puesto unos valores nominales del parámetro BETA que se podrá escoger desde la interfaz gráfica.



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

· MSP430 Launchpad FRAM: Evidentemente, nuestra placa de desarrollo con el microcontrolador MSP430FR5739 y el dispositivo externo NTC.

· Módulos XBee: Un par de ellos, en este caso, el módulo XBee es el modelo: XB24-ZB.

· 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.


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

/**
* @file      main.c
* @author    Manuel Caballero
* @date      20/3/2015
* @brief     Archivo principal.
* \copyright
*      AqueronteBlog@gmail.com
*
* Este archivo es propiedad intelectual del blog Aqueronte,
* cuya direccion web, es la siguiente:
*
*     http://unbarquero.blogspot.com/
*
* Se permite cualquier modificacion del archivo siempre y cuando
* se mantenga la autoria del autor.
*/

#include < msp430.h >
#include < stdint.h >
#include "variables.h"
#include "funciones.h"
#include "interrupciones.h"



/**
 *  \brief     void main( void )
 *  \details   Vamos a trabajar con la placa de desarrollo MSP-EXP430FR5739 y los
 *             periféricos disponibles externos e internos.
 *
 *             Este programa consiste en realizar una lectura de datos del sensor externo
 *             NTC cada, aproximadamente 3 segundos.
 *
 *             Así mismo, desde la interfaz gráfica se podrá cambiar el estado de los 8
 *             LEDs.
 *
 *             Una vez obtenidos los datos, se envían al ordenador por medio de un par de
 *             dispositivos XBee usando la UART. El resto del tiempo, el MCU permanecerá
 *             en estado bajo consumo LPM3.
 *
 *
 *
 *  \author    Manuel Caballero
 *  \version   0.0
 *  \date      20/3/2015
 *  \pre       La NTC disponible, TI no ha dado ningún dato técnico sobre la misma.
 *  \pre       Se utilizarán un par de módulos XBee XB24-ZB ( uno Coordinator y el otro End Device )
 *             a 9600 Baudios.
 *  \pre       El software de ordenador utilizado es el llamado UART1_SW, proporcionado con todos los
 *             archivos necesarios del éste proyecto.
 *  \pre       Code Composer Studio, Version: 6.0.1.00040.
 *  \pre       C Compiler, MSP430 GCC GNU v4.9.1.
 */
void main( void )
{
   conf_WDT    ();           // Configura WDT del sistema
   conf_CLK    ();           // Configura CLK del sistema
   conf_IO     ();           // Configura Entradas/Salidas
   conf_ADC10  ();           // Configura ADC10
   conf_UART   ();           // Configura UART
   conf_TA0    ();           // Configura Timer A0


   __enable_interrupt();     // Interrupciones ON.


   while(1)
   {
      LPM3;
      // __nop();            // Solo para DEBUG
   }
}

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:

MSP430FR5739: NTC + LEDs
Compilador IARCompilador MSPGCC
CC
MSP430FR5739: NTC + LEDs
MSP430FR5739: NTC + LEDs
MSP430FR5739: NTC + LEDs
MSP430FR5739: NTC + LEDs

Ahora, en el archivo a descargar, a parte del programa con todas las librerías necesarias empleadas para este programa, se han añadido toda la documentación en formato doxygen.

0 comentarios: