BOARD uC DODOBoard V1.0

{{CondorInfoBox|

Desarrolladores
}}

= DESCRIPCIÓN = La tarjeta de desarrollo UNIANDES DODOBoard V2.0, ofrece una interfaz para acoplar diferentes módulos de comunicación (Ethernet, Bluetooth, Xbee y tarjeta serial RS232) a un sistema de entradas y salidas de 4 pines (que pueden ser tanto análogas como digitales), con la opción de almacenar los datos obtenidos en una tarjeta microSD junto con una estampa de tiempo, o simplemente visualizarlos en un dispositivo que cuente con el software Terminal. Adicionalmente, consta de un sistema de alimentación regulado, el cual permite obtener una salida de 3,3 V para ser utilizada por otros módulos.



=PROGRAMACIÓN=

Básicamente, el BOOTLOADER es un programa que se escribe en la sección de bootloading que se encuentra al final de las direcciones disponibles de la memoria FLASH. La programación del BOOTLOADER, se debe realizar con un dispositivo de programación convencional (Programador Uniandes ­ USBtinyISP o AVR MKII). El BOOTLOADER que se utilizó en la DODOBoard V2.0 se basa en el proyecto KAVR­Bootloader (http://sourceforge.net/projects/kavr/files/), al que se le realizaron algunas modificaciones para que fuera compatible con los elementos utilizados al igual que con las necesidades del proyecto.
 * La programación de las tarjetas se fundamenta en la utilización de un BOOTLOADER, que permite cargar archivos de programación enviados por protocolo serial en la memoria FLASH.
 * Para el microcontrolador utilizado para la implementación de la tarjeta, ATMEGA328­PU, el tamaño del archivo de programación del BOOTLOADER es de 798 bytes, por lo que es necesario reservar una sección en memoria FLASH de 512 "palabras" (1024 bytes) para alojar el programa. Adicionalmente, se debe configurar el microcontrolador, de forma que al ser encendido permita al usuario enviar un nuevo programa. Estas características son configuradas a partir de la modificación de los "fusibles" (fuses) del microcontrolador. La línea de comandos utilizada para la configuración de los "fusibles", usando el USBTINY es la siguiente:

avrdude -c usbtiny -p m328p -U lfuse:w:0x62:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m -F -D


 * Finalmente, se debe enviar el archivo de programación del BOOTLOADER utilizando la siguiente linea de comandos:

avrdude -c usbtiny -p m328p -U flash:w:KAVR.hex


 * El archivo de programación junto con los archivos fuente se incluyen a continuación:






 * Es importante resaltar que el archivo de programación KAVR.HEX está configurado para ser programado sobre un ATMEGA328 con los "fusibles" configurados de la forma como se indicó anteriormente, por lo que si se desea instalar el BOOTLOADER en otro microcontrolador, se deben realizar modificaciones sobre los archivos fuente y compilar el nuevo KAVR.HEX.


 * Una vez se ha instalado el BOOTLOADER en el microcontrolador, se debe establecer una conexión por protocolo serial. La tarjeta cuenta con un puerto mini­USB que utiliza un integrado FTDI, para establecer la interfaz serial entre el microcontrolador y un compurador. Para utilizarlo, simplemente se debe conectar el dispositivo por medio de un cable mini­USB al Computador y esperar a que se instalen los drivers necesarios. Adicionalmente, se debe utilizar un programa terminal que permita la comunicación serial. Se aconseja el uso de COOLTERM (http://freeware.the­meiers.org/) (https://www.dropbox.com/sh/dxt2816fjn0i4ge/6vp5bGppTJ)


 * Luego de establecer la conexión serial, la DODOBOARD V2.0 enviará el siguiente mensaje cada segundo: ..DODOBOARD!.., hasta el momento en el que se le envíe un archivo de programación válido. Una vez el programa ha sido enviado, se indicará el proceso de carga por medio de símbolos '*' y se indica la finalización del proceso con el mensaje DONE!. El programa principal se debería ejecutar cada vez que la tarjeta se encienda.


 * A partir de este momento, el usuario tendra la posibilidad de enviar nuevos archivos de programación durante 1 segundo al iniciar la tarjeta. Adicionalmente, se podrán enviar archivos utilizando el comando 'P'.

=COMPONENTES=

Elementos básicos
La configuración básica de la tarjeta se muestra a continuación. Cabe resaltar que en ésta no incluye ninguno de los módulos de comunicación previamente mencionados.



1. Pines de alimentación con fuente externa. La entrada de alimentación corresponde a un voltaje DC que varía entre 4.5 y 18 Voltios.

2. Led indicador de alimentación exitosa. Permanecerá encendido mientras la tarjeta se esté alimentando correctamente.

3. Led indicador del regulador. Permanecerá encendido mientras el regulador esté funcionando correctamente.

4. Botón Reset.

5. Pines de comunicación con el programador AVRISPMK II o Programador Uniandes ­ USBtinyISP.

6. Selección ID del nodo y modos de funcionamiento establecidos. Las entradas 1 y 2 del dip switch, permiten determinar el modo de funcionamiento a utilizar. De la misma manera, las entradas 3 y 4 indican el ID del nodo. La salida correspondiente a cada una de las 4 posibles combinaciones entre los niveles (alto y bajo) de estas entradas, se muestra en la siguiente tabla.



Es importante tener en cuenta que si se desea guardar datos en la memoria microSD la entrada 1 del dip switch debe estar encendida. Bajo ninguna circunstancia se podrán guardar en la microSD si el nivel de esta entrada es '0'.

7. Led indicador del funcionamiento de la memoria microSD. Corresponde a un led RGB cuyo color de iluminación varía en función de la configuración elegida con el dip switch y tal y como se muestra en la siguiente tabla.



8. Pines de entrada/salida. El pin 1 corresponde al indicado por medio de la flecha. La tarjeta cuenta con 8 pines de entrada/salida dispuestos tal y como se muestra a continuación:





En la figura anterior, los pines 1, 2 y 3 corresponden a salidas de voltaje. Éstas pueden ser utilizadas para alimentar otras partes del sistemas como sensores y/o amplificadores. El pin 4 es utilizado como una bandera de interrupción. Esta bandera puede ser activada en el caso que el sensor tenga un dato a la salida (por ejemplo). De esta manera, no sería necesario evaluar la salida del sensor el 100% del tiempo para ver si se ha tomado algún dato, si no esperar a que la bandera de interrupción se active. Finalmente, los pines 5, 6, 7 y 8, corresponden a entradas análogas o entradas y salidas digitales. Es importante aclarar que el voltaje máximo permitido a la entrada es de 3.3 V. Los ADC disponibles en estos pines corresponden a los canales 6, 7, 2 y 3, respectivamente.

9. Jumper de aliemtación. Por medio de este jumper se puede elegir entre alimentar la tarjeta por medio de miniUSB o por fuente externa. Se ubica entre el pin de la mitad y alguno de los extremos, los cuales se encuentran rotulados.

10. Interfaz de conexión de Ethernet.

11. Interfaz de conexión de Bluetooth.

12. Interfaz de conexión de Xbee.

13. Interfaz de conexión miniUSB para comunicación serial y alimentación. No se puede conectar al mismo tiempo que el Bluetooth.

14. Led indicador de Tx. Se enciende cuando la tarjeta transmite datos a través de una comunicación serial.

15. Led indicador de Rx. Se enciende cuando la tarjeta recibe datos a través de una comunicación serial.

16. Led indicador de comunicación por Xbee. Se enciende cuando la tarjeta se está comunicando a través del Xbee.

17. Socket para microSD.

18. Socket para pila de litio de 3V, 12.2 mm de diámetro. Para el correcto funcionamiento del RTC.

Modo de funcionamiento
Para cambiar entre los modos de funcionamiento de la DODOBOARD, es necesario modificar la posición de los interruptores 1 y 2 del dip­switch.

Modo estándar

Posiciones 01

En el modo estándar la tarjeta se mantiene en espera y opera de acuerdo a los comandos que el usuario le envía. El usuario gobernará el funcionamiento de la tarjeta mediante los comandos que se presentan más adelante. Cualquier programación realizada por medio de los comandos será temporal y se almacenerá en la memoria RAM del microcontrolador. Basta reiniciar la tarjeta para borrar los datos programados en este modo de funcionamiento.

Modo de prueba

Posición 11

En este modo la tarjeta realiza en un test de sus periféricos que se sintetiza en el siguiente algoritmo:


 * Se encienden los LED's del LED tricolor
 * Se revisa la fecha y hora almacenada en el Reloj en Tiempo Real (RTC). Se esperan 3 segundos y luego se presenta la hora y fecha nuevamente. El usuario deberá revisar que la diferencia entre los datos sea justamente 3 segundos.
 * Se inicializa la memoria SD.
 * Si no hay memoria SD en el socket se mostrará un mensaje indicando que no se reconoció la memoria
 * Si la memoria no está formateada con FAT32 o está dañada se indicará que el formato no es FAT32. Es necesario realizar un formato FAT32 desde un computador
 * Si se puede reconocer la memoria correctamente, se indicará el tipo de memoria conectada.
 * Se leen cada uno de los conversores análogo digital (ADC). Si la memoria se inicializó correctamente, los datos se guardan en la SD con el nombre DODOTEST.TXT. El usuario deberá desconectar la tarjeta y revisar que el archivo sea correcto.

Luego de realizar este test, la DODOBOARD no realizará acción alguna hasta que la posición del interruptor 2 sea modificada. Cuando ésto suceda, entrará en el modo datalogger, en el que leerá continuamente del ADC seleccionado por el ID (los interruptores 3 y 4 del dip­switch) continuamente con una frecuencia de 1Hz. Los datos serán transmitidos y almacenados en la memoria SD en el archivo DODOLOGG.TXT, en caso de que ésta se haya inicializado correctamente. Para salir de este modo, es necesario reiniciar la tarjeta.

Comunicación
Bluetooth

Permite realizar la transmisión de datos entre diferentes dispositivos de manera inalámbrica (ondas de radio de 2.4 GHz). Para ello, hace uso de una técnica de modulación (FHSS) mediante la cual la señal es emitida sobre una serie de frecuencias que varían de manera sincrónica con el transmisor. De esta manera, sólo los receptores autorizados pueden obtener la señal.

Xbee

Al igual que el Bluetooth, permite realizar una comunicación de manera inalámbrica en la banda de 2.4 GHz (pero en una única frecuencia).

Serial

Corresponde a una interfaz física de comunicación en donde la información se transmite bit a bit (enviando uno a la vez). Se utiliza un cable USB a microUSB para conectar la tarjeta al computador. Cuando se conecte, se deberá esperar a que el driver de la tarjeta se instale para utilizarse ésta comunicación.

IMPORTANTE: La comunicación por Bluetooth y Xbee es de hecho una comunicación serial. Su principio de funcionamiento es idéntico al de la comunicación por el cable USB disponible en la tarjeta. Por este motivo NO deben conectarse estos modos de comunicación al mismo tiempo. Si se va a utilizar comunicación Bluetooth o Xbee, alimente con una fuente distinta al cable USB.

=Configuración=

Instrucciones
Existen cinco tipos de instrucciones. Las primeras corresponden a instrucciones de configuración, las cuales permiten establecer valores predeterminados como el número de muestras a utilizar o el período de muestreo. Las instrucciones de estado, permiten conocer el estado de diferentes partes del sistema en el momento en que se solicite. Las instrucciones de datos permiten leer los datos ingresados en cada uno de los canales de entrada. Las instrucciones de memoria permiten inicializar la memoria y configurar las características del archivo que se va a guardar en la microSD. La tabla que se muestra a continuación resume las principales instrucciones.



Para poder emplear cada una de estas instrucciones, es necesario antes de todo, enviar el ID del nodo para establecer la conexión. De acuerdo con la sección de Elementos básicos, el ID se establece por medio del dip switch, y es éste el que se debe enviar. En la foto de la sección indicada anteriormente se observa que las entradas 3 y 4 se encuentran en la posición 01, por lo que se debería enviar la instrucción ID1. A partir de ese momento no es necesario volver a enviar el ID del nodo a menos que se resetee. Para el modo de prueba y el modo datalogger no es necesario enviar este comando.

Para poder hacer un correcto uso de la memoria microSD, se debe enviar el comando M01 para inicializarla antes de comenzar a guardar. Este comando únicamente será reconocido como válido cuando la posición de la entrada 1 del dip switch esté encendida. Al emplear este comando y luego comenzar a guardar en la memoria, se creará un archivo DODOFILE.TXT en donde se almacenarán los datos adquiridos. En caso de querer cambiar el nombre del archivo se debe ejecutar el comando M02 antes de comenzar a guardar.

El comando O01 permite realizar la comparación entre el ADC6 y el ADC7, si el primero es mayor que el segundo la salida de la comparación se ajusta en '1', de lo contrario la señal de salida es '0'. Para salir del modo de comparación basta con oprimir cualquier tecla.

=EJERCICIO PRÁCTICA 1=

Materiales y equipos necesarios


 * Tarjeta DODOBoard V2.0
 * Cable USB ­ miniUSB
 * Fuente de alimentación (5V DC)
 * Protoboard.
 * Potenciómetro 10K­ohms.

Configuración Terminal


 * Ubique el jumper en modo de alimentación USB. Conecte el cable USB a la tarjeta y a su computador y revise que que los LED's de alimentación (rojo) y regulación (verde) se enciendan.
 * En su computador, espere que se instale el driver de la tarjeta. Una vez instalado, vaya al panel de control>Dispositivos e impresoras. Revise que exista un dispositivo instalado como FT232R USB UART.



Haga doble click en el dispositivo y revise el número de puerto serial. (Se indica por COM).




 * Abra algún programa de comunicación serial: ej: Terminal, CoolTerminal, etc. Allí, realice la conexión con el puerto serial identificado atrás:



En el paso 2, ingrese el número de puerto identificado atrás:




 * Ubique los interruptores 1 y 2 del dip­switch en 11. Pulse el botón de reiniciar.




 * La tarjeta entra en modo de prueba. (Ver atrás en modo de prueba). La tarjeta enviará información como la siguiente en caso de que haya insertado una memoria micro SD:

MODO DE PRUEBA PROBANDO LED FIN PRUEBA LED PROBANDO RTC Fecha: 01/01/2000   Dia: L     Hora: 00:11:58 Fecha: 01/01/2000   Dia: L     Hora: 00:12:01 FIN PRUEBA RTC PROBANDO REGISTRO SD    SD (v 2.x) detectada Lectura de ADC2: 167    Lectura de ADC3: 142    Lectura de ADC6: 90    Lectura de ADC7: 11    FIN PRUEBA SD

Ejercicio de aplicación Etapa 1 ­ Pruebas ADC
 * El ejercicio de aplicación diseñado para la familiarización de los estudiantes con la tarjeta, se compone de 3 etapas.
 * La primera etapa consiste en la utilización de los puertos de entrada análoga, para la medición de un voltaje externo. Para tal fin, siga los siguientes pasos:
 * Conecte la DODOBoard por medio de un cable miniUSB a un computador y configure el programa terminal como se ha descrito anteriormente.
 * Configure la tasa de muestreo en 500ms (C04) y el número de muestras en 20 (C03).
 * Realice el siguiente montaje en una protoboard. Tenga en cuenta que los nodos de tierra y alimentación (3.3V) deben corresponder a las salidas designadas en los pines 2 y 3 respectivamente en de la regleta de entrada/salida.



Etapa 2 ­ Reconstrucción de señales Etapa 3 ­ Generación de una señal PWM
 * El objetivo de esta segunda etapa es reconstruir una señal análoga a partir de muestras tomadas con la tarjeta. Para lograrlo siga los siguientes pasos:
 * Conecte la DODOBoard por medio de un cable miniUSB a un computador y configure el programa terminal como se ha descrito anteriormente.
 * Configure la tasa de muestreo en 1ms (C04) y el número de muestras en 100 (C03).
 * Con el generador de señales y el osciloscopio, obtenga una señal sinusoidal con voltaje pico a pico de 3V, voltaje de offset de 1.5V y frecuencia de 10Hz. Esto con el objetivo de garantizar que la señal a reconstruir varía entre 0V y 3V. Es de gran importancia que a la entrada de los ADC no se conecten señales con voltajes mayores a 3.3V.
 * Conecte la señal generada a una entrada de ADC. Tenga en cuenta que el nodo de referencia debe coincidir con el de la tarjeta.
 * Configure la tarjeta para que inicie una adquisición de datos continua en el ADC donde conectó la señal del generador.
 * Exporte los datos medidos a una hoja de cáculo de MS­Excel y realice una gráfica de dispersión. Observe los resultados y compare con la señal de entrada.
 * El objetivo de esta tercera etapa es utilizar la tarjeta para generar una señal con longitud de pulsos modulados. Para lograrlo siga los siguientes pasos:
 * Implemente un circuito como el utilizado en la etapa 1.
 * Conecte la salida 'A' del circuito a la entrada correspondiente al ADC6.
 * Obtenga una señal sinusoidal como la utilizada en la etapa 2.
 * Conecte la señal del generador a la entrada del ADC7.
 * Conecte la sonda del osciloscopio al pin 4 correspondiente a la salida de comparación
 * Configure la tarjeta para que se inicie el modo de comparación (O01).
 * Observe la señal en el osciloscopio. Varie el valor del potenciometro y observe como se modifica la señal en el osciloscopio.

=GUÍA RÁPIDA DE SOLUCIÓN DE PROBLEMAS=

Preliminares
En electrónica, muchos problemas residen en una alimentación incorrecta. Antes de sospechar de cualquier componente de la tarjeta, revise que esté bien alimentada. Revise la posición del jumper de alimentación de acuerdo a la alimentación que esté realizando: USB o por fuente externa (BAT). Al lado del jumper, se encuentran dos LED's que le indicarán si la tarjeta está bien alimentada. El LED rojo indica que está alimentada correctamente y el LED verde que la regulación es exitosa. Si este último no enciende, es porque el regulador está dañado (por alimentar a más de 20V), o porque el voltaje de entrada es muy pequeño (se recomienda alimentar a más de 4.5V).



El computador no reconoce la tarjeta
Descargue el driver del módulo FTDI en el siguiente enlace de acuerdo al sistema operativo que tiene su computador:

driver (http://www.ftdichip.com/Drivers/D2XX.htm)

Descomprima la carpeta descargada y guarde la ruta de la carpeta. Las instrucciones de instalación las puede descargar en el siguiente link:

Instrucciones de instalación del driver (http://www.ftdichip.com/Support/Documents/InstallGuides.htm)

No reconoce la tarjeta SD
Las librerías que utiliza la tarjeta para el manejo de la tarjeta SD funcionan si ésta tiene formato FAT32. El formato FAT32 (Fat Allocation Table) es un sistema de archivos típico de Windows OS. Para darle formato a la tarjeta vaya a Equipo y haga click derecho sobre la memoria SD.





El RTC se corrompe
El Reloj en Tiempo Real (Real Time Clock o RTC) funciona con un oscilador de 32,768 KHz. Al tocar el socket de la batería, la señal del oscilador se puede ver corrompida y por lo tanto el funcionamiento del RTC se vería afectado. Es recomendable entonces no tocar el portapilas. Utilice tornillos para separar la tarjeta de cualquier objeto bajo ella. Si el problema persiste, revise el voltaje de la pila. Se sugiere que éste sea superior a 3V.

En caso de que no disponga de una pila. El RTC guardará los datos mientras la tarjeta se encuentra energizada. Si desconecta la tarjeta de la fuente de alimentación, la información se perderá.

Código Fuente