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 IAR | Compilador MSPGCC | ||||||||||||
C | C | ||||||||||||
|
|
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:
Publicar un comentario