20
UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES Perfecta Combinación entre Energía e Intelecto PROYECTO DISEÑO CIRCUITOS ANALOGICOS Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532 Presentado a: ING. Alfredo Acevedo 1 RESUMEN: en el presente trabajo se describe brevemente el proceso que se llevo a cabo para realizar los objetivos propuestos por el profesor al final de la asignatura. A continuación se muestran las respectivas fases: Características del hardware del circuito 1.Diseño del esquema del circuito con ayuda de CAPTURE. 2.Diseño de la placa del circuito impreso mediante LAYOUT. 3.Realización de la placa. 4. Montaje del circuito. 5. código del protocolo i2c para la Comunicación del micro controlador y el acelerómetro. INTRODUCCIÓN Philips semiconductors inventó el bus de dos alambres al que llamo I2C para comunicación entre circuitos integrados en 1980, y desde entonces se ha convertido en el bus serial estándar, implementando en un gran número de circuitos integrados y con licencias otorgadas a más de 50 compañías con un total de 100 dispositivos compatibles I2C en el mercado mundial. Característica más importante del bus I2C Comunicación serial, utilizando un conductor para manejar el timming (SCL) (pulsos de reloj) y otro para intercambiar datos (SDA), que transportan información entre los dispositivos conectados al bus. Las líneas SDA (Serial Data) y SCL (Serial Clock) están conectadas a la fuente de alimentación a través de las resistencias de pull-up. Cuando el bus está libre, ambas líneas están en nivel alto. Los dispositivo puede ser considerado como Maestro (Master) o esclavo (Slave). El Maestro es el dispositivo que inicia la transferencia en el bus y genera la señal de Clock. Figura 1 Bus I2C con varios dispositivos conectados Ma est ro Es cla vo Es cla vo Es cla vo S D A S C L

Proyecto Final Xbee

Embed Size (px)

DESCRIPTION

manejo del protocolo de comunicacion serial i2c a travez de la comunicacion con xbee

Citation preview

Page 1: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

1

RESUMEN: en el presente trabajo se describe brevemente el proceso que se llevo a cabo para realizar los objetivos propuestos por el profesor al final de la asignatura. A continuación se muestran las respectivas fases: Características del hardware del circuito

1. Diseño del esquema del circuito con ayuda de CAPTURE.

2. Diseño de la placa del circuito impreso mediante LAYOUT.

3. Realización de la placa.

4. Montaje del circuito.

5. código del protocolo i2c para la Comunicación del micro controlador y el acelerómetro. INTRODUCCIÓN Philips semiconductors inventó el bus de dos alambres al que llamo I2C para comunicación entre circuitos integrados en 1980, y desde entonces se ha convertido en el bus serial estándar, implementando en un gran número de circuitos integrados y con licencias otorgadas a más de 50 compañías con un total de 100 dispositivos compatibles I2C en el mercado mundial.

Característica más importante del bus I2C

Comunicación serial, utilizando un conductor para manejar el timming (SCL) (pulsos de reloj) y otro para intercambiar datos (SDA), que transportan información entre los dispositivos conectados al bus. Las líneas SDA (Serial Data) y SCL (Serial Clock) están conectadas a la fuente de alimentación a través de las resistencias de pull-up. Cuando el bus está libre, ambas líneas están en nivel alto. Los dispositivo puede ser considerado como Maestro (Master) o esclavo (Slave). El Maestro es el dispositivo que inicia la transferencia en el bus y genera la señal de Clock.

Figura 1 Bus I2C con varios dispositivos conectados

MMaa

eesstt

rroo

EEss

ccllaa

vvoo

11

EEss

ccllaa

vvoo

22

EEss

ccllaa

vvoo

33

SS

DD

AA SS

CC

LL

Page 2: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

2

Transmisión de bits

Los bits de datos van por SDA Por cada bit de información es necesario un pulso SCL.

. Figura 2 Transmisión de datos del protocolo I2C

Los datos transitan en la bandeja del reloj.

El dato es recibido en el borde de bandeja del reloj El bit más significativo se envía primero

El nodo que recibe debe manejar un ACK (bajo en SDA) después de completado el byte.

El dispositivo maestro siempre genera el reloj.

Figura 3 Modo de transmisión de datos.

.3-DISEÑO DEL ESQUEMA DEL CIRCUITO CON AYUDA DE CAPTURE

Dado el circuito esquemático, a continuación se procede a crear dicho circuito en ORCAD capture, allí se procede a construir el circuito. Elementos como resistencias, condensadores, el cristal, conectores y demás; ya los elementos como XBEE, micro-controlador, se procede a crear su foot print, se añaden a una librería y posteriormente se unen al circuito, y de esta forma terminamos de hacer el esquemático. 4-LAYOUT

El proceso que realiza es el siguiente: - antes de pasar el layout se debe crear el netlis en capture, una vez lo compile, estamos listos para pasar layout.

Page 3: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

3

- el siguiente paso a seguir es crear los foot-prints, para ello nos guiamos por la hoja de datos; se debe prestar atención con las distancias entre pines, ancho y largo del elemento, eso debe ser bastante preciso para que encaje prefecto en la tarjeta. -ya en la ventana layout, creamos un nuevo proyecto, y a continuación el propio programa nos pide reemplazar cada componente de orcad por el froot-print respectivo en layout -una vez hechos los anteriores pasos, lo siguiente es acomodar los elementos de una manera conveniente dentro de un obstáculo de dimensiones de la tarjeta que se desea hacer. -tener en cuenta que los capacitores de acoplamiento queden cerca a las fuentes de alimentación. A continuación se procede a hacer el enrutado, usando dos capas, mediante el uso de vías puedo pasar de una capa a otra. -el siguiente paso es crear el plano tierras; y así ya hemos creado el circuito o tarjeta para imprimirla. A continuación nombramos los Ficheros que intervienen en la creación de una placa: .MNL (Netlist). Describe las conexiones de un esquema realizado en Capture, utilizando los nombres de los nudos

(nets), componentes y pines. El netlist contiene los footprints, nombre de los componentes, nombres de los nudos, asignaciones de los pines a los nudos, información adicional de los nudos, pines y componentes. .TCH (Technology template). Especifica las características de la placa. Incluye la estructura de capas, ajuste de rejilla, normas de espaciado y otros criterios afines. .TPL (Board template). Combina los límites geométricos de la placa, con los agujeros de montaje, conectores y otros objetos. .MAX (Board file). Contiene toda la información geométrica y eléctrica de la placa. 5-MONTAJE DEL CIRCUITO: A diferencia de la mayoría de nuestros compañeros, hemos trabajado con un diseño propio, con el acelerómetro y micro-controlador en una sola, es decir no se implementó la tarjeta hija. Una vez hecho el esquema en layout, siguiendo los pasos mencionados en el ítem anterior, procedemos de la siguiente forma: teniendo la PCB nueva, agregamos una gota de fotopolímero y la esparcimos sobre su superficie; esto lo hacemos en ambas caras de la PCB. A continuación pegamos el acetato sobre cada capa, dejándolo uniforme esparcido; una vez hecho lo anterior dejamos secar al sol por un lapso de unos 4 minutos por

Page 4: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

4

lado, de esta manera tenemos lista nuestra PCB. Ahora mostramos con imágenes el proceso anteriormente descrito, en la figura 1 se muestra la PCB con el fotopolímero esparcido sobre la capa de cobre y ya con el acetato puesto sobre la PCB .

Figura 4: PCB con el acetato y fotopolimero

El siguiente paso es poner secar al sol la PCB hasta obetenerla como se ve en la figura 5.

Figura 5 PCB resultante del proceso. Luego de tener nuestra tarjeta listo, procedemos a soldar en ella los elementos, como el micro-controlador, acelerometro, XBEE, y los conectores tanto en la entrada como en la salida. La posicion de los elementos no es simple casualidad, esto se ha hecho de manera que conociendo los requerimientos de diseño para los cuales se imoplementaran los sensores analizo su ubicación. como solo se utilizo el sensor de aceleracion de FREESCALE MMA7455 se destino para medir inclinacion asi que este fue ubicado en el centro de la tarjeta. 6- COMPROBACION DEL FUNCIONAMIENTO DE LA TARJETA

Page 5: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

5

Una vez soldados todos los elementos en la PCB, y teniendo todo listo, procedemos a verificar que haya salido bien todo el proceso de soldadura hecho previamente, estos es, que no hayan corto-circuitos entre pines de los elementos. Cabe anotar que se debe tener especial cuidado al soldar el micro-controlador, ya que sus pines no son como los elementos comunes, si no que quedaran superficiales en la tarjeta. 7-PROCESO DE COMUNICACIÓN ENTRE MICROCONTROLADOR Y ACELEROMETRO MEDIANTE PROTOCOLO I2C Para la comunicación I2C entre el MICROCONTROLADOR MCF51QE128 y el acelerómetro MMA745 Se debe tener en cuenta cada uno de los registros a utilizar, a continuación se explicara cada uno de los registros utilizados y se explicara la función de cada uno de ellos. Registro de Control (IICC)

Figura 6 Registro de control

IICEN: Permite Activar o Desactivar el Modulo I2C

1: Modulo I2C Habilitado 0: Modulo I2C Deshabilitado IICIE: bit que permite activar o no la interrupcion del modulo I2C

1: Interrupcion del modulo I2C habilitado 0: Interrupcion del modulo I2C deshabilitado MST: Modo de selección maestro

1: Modo maestro 0: Modo esclavo TX: Selección del modo de transmisión

1: Transmisor 0: Receptor TXAK: Habilitar reconocimiento de transmisión. 1: No envía señal de reconocimiento despues de recibir un byte. 0: Una señal de reconocimiento será enviada despues de recibir un byte RSTA: Repetir bit de inicio de transmisión

1: Repite señal de Inicio de transmisión. 0: No repite señal de inicio. Registro de Estado (IICS)

Page 6: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

6

figura 7 Registro de Estado (IICS)

TCF: Bandera de transferencia completa, indica cuando un byte ha sido transferido

1: Transferencia completa 0: Transferencia en proceso IAAS: Direccionamiento como esclavo

1: Direccionamiento como esclavo 0: No direccionado BUSY: Indica el estado del bus de transmisión. 1: El bus está ocupado 0: El bus está disponible ARBL: Perdida de Arbitraje

1: Perdida de arbitraje 0: Operación del bus normal SRW: Escritura o lectura del dispositivo esclavo. 1: El esclavo transmite y el maestro está leyendo información del esclavo 0: El maestro transmite y el esclavo está leyendo información del maestro.

IICIF: Bandera de interrupción. Este bit sera borrado por sofware, pero tomará el valor „1‟ cuando ocurra cualquiera de los siguientes eventos: 1-Perdida de arbitraje 2- Un byte fue transferido incompleto 3- problemas de direccionamiento. 1: Ocurrio interrupción 0: No ocurrió interrupción RXAK: Recepción de reconocimiento

1: señal de reconocimiento no recibida 0: señal de reconocimiento recibida. La explicación de los anteriores registros son de gran utilidad ya que en estos se basaron la escritura del código de comunicación con el acelerómetro y el micro controlador. LECTURAS DEL ACELEROMETRO La siguiente tabla muestra las lecturas de los tres ejes y observamos que corresponden a los valores correspondiente en el datasheet para una posición horizontal los valores esperados se muestran en la tabla 2 mientras que los valores medidos se ven en la tabla 1.

Page 7: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

7

Tabla 1 resultados del acelerometro

Tabla 2 resultados esperados. Haciendo una comparación entre los resultados esperados y los medidos se observa que presentan una mínima diferencia posiblemente falta de calibración del acelerómetro por ejemplo para z se esperaba una lectura de 63 y se obtuvo 64. En el anexo se observa la programación del micro controlador comunicándose con el acelerómetro a través del protocolo i2c. Modulo de transmisión XBBE.

Los modulos XBee viene en una especie de chip, están compuestos por un microcontrolador, un emisor y un receptor de RF.

Figura 8 modulo xbee. Los módulos Xbee proveen 2 formas de comunicación: Transmisión serial transparente (modo AT) y el modo API que provee muchas ventajas. Los módulos Xbee pueden ser configurados desde el PC utilizando el programa X-CTU o bien desde tu micro controlador. Los Xbee pueden comunicarse en arquitecturas punto a punto, punto a multi punto Una de las principales características de estos módulos es que pueden usarse para transmitir datos de un puerto serie inalámbricamente sin tener que configurar nada. Simplemente conectando el pin RX y TX. Lo único con lo que se debe tener cuidado es

Page 8: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

8

con la alimentación de 3.3v y se debe por lo tanto construir un driver adecuado para no quemar el dispositivo. De este modo es posible conectar un micro controlador directamente al modulo XBee mediante dos cables, con los que se denota aplicaciones de comunicación inalámbrica.

Interfaz de comunicación serie (SCI)

Permite realizar comunicación asíncrona de alta velocidad con diversos periféricos y otros micro controladores

Características del SCI:

-Operación full-duplex

-Formato estándar de marca/espacio NRZ

(non-return-to-zero)

-32 tasas de bauds programables

-Longitud de los caracteres programable a 8 o 9 bits

-Habilitación del transmisor y receptor por separado

-Solicitudes de interrupción separadas del receptor y el transmisor

-Polaridad de salida del transmisor programable

El SCI permite realizar comunicación serie asíncrona, utilizando señales NRZ en modo full dúplex el transmisor y el receptor funcionan de manera

independiente, aunque comparten el mismo generador de tasa de bauds

Sincronización de los xbee

Para la sincronización de los xbee se utilizo el software X-CTU el cual permite realizar operaciones de manera mas natural rápida y sencilla.

Figura 9 ventana de configuración para COM3

Page 9: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

9

Figura 10 ventana de configuración para COM4

Las figuras 9 y 10 muestran las ventanas de configuración para las direcciones de COM3 y COM4 se procede de la siguiente manera se busca que ambos tengan en la opción “function set” el mismo protocolo para la configuración AT lo que sigue es sincronizar lo relacionado a las direcciones; se procede a editar en COM 4 las dos primeras direcciones de COM3

Figura 11 direcciones serial number hihg y serial number low de COM3

Estas dos direcciones fijas en COM3 se editan en COM4 en las opciones destination address high” y “destination address low” de COM4

Figura 12 direcciones editadas de COM3 en COM4. Lo que sigue es hacer el proceso inverso las direcciones de serial number hihg y serial number low de COM4 se editan en las direcciones de destination address high” y “destination address low de COM3

Figura 13 direcciones de serial number high y serial number low de COM4

Figura 14 direcciones de COM4 editadas en COM3. Lo que sigue es lo relacionada con la velocidad de transmisión se configura

Page 10: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

10

en ambas ventanas la misma velocidad de transmisión en la opción “serial interfacing” en baud rate para lo cual se fija en 9600 baudios/seg.

Figura 15 configuración de velocidad de transmisión en COM3

Figura 16 configuración de velocidad de transmisión de COM4.

Con la configuración previa de los xbee se procede a realizar la lectura de los datos de los ejes del acelerómetro por lo cual se procede a cambiar los datos que están en bytes a formato ASCII que es lo permitido para poder realizar la lectura en el hyperterminal. En La tabla 3 se observa las lecturas de los ejes del acelerómetro.

Tabla 3 lecturas de los ejes del acelerómetro En la tabla 4 se observan los datos que se envían de manera correcta.

Tabla 4 lecturas en el hyperterminal

Page 11: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

11

CODIGO Este código permite la lectura de los tres ejes del acelerómetro MMA7455 y trasmitir de manera inalámbrica las lecturas por los módulos X-BEE hacia el hyperterminal . Se debe inicializar el modulo sci con un baud rate de 9600.el modulo i2c fue configurado a la frecuencia mas alta de 209 khz cabe aclarar que esta frecuencia se debe ajustar de acuerdo a cada microcontrolador para una optima trasmisión. #include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */

#ifdef __cplusplus extern "C" #endif

//----definiciones---///

#define LED1 PTDD_PTDD1 #define LED2 PTDD_PTDD0 #define LED3 PTHD_PTHD7 #define LED4 PTHD_PTHD6 #define LED5 PTED_PTED7

//-----------------------------------------------------------------------

----------

#define IIC_WriteAdr 0x1D // $1D dirección del acelerometro #define IIC_ReadAdr 0x1D // $1D desplazada y con un 1 = $3B

//Definiciones de funciones---//

void MCU_init(void); // Device initialization void Retardo(byte count); //retardo Us void pere(unsigned int t) ; //mas retardo en ms void TX(byte dat); //trasmision al X_BEE

void Write(unsigned char reg, unsigned char val); //de escritura

Page 12: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

12

char Read(unsigned char reg); // de lectura

//variables char Xdata=0; //valor de lectura del EJE X char Ydata=0; //valor de lectura del EJE Y char Zdata=0; //valor de lectura del EJE Z byte xdat=0; unsigned char ACK, write1; int n,a=0; char medidax[4],mediday[4],medidaz[4]; // Vector de medidas char xuni,xdec,xcen,yuni,ydec,ycen,zuni,zdec,zcen=0; //

//-----------------------------------------------------------------------

- //Main void main(void) {

///-----inicializacion de los puertos para los LEDs como salida-----/// PTDDD_PTDDD1=1; PTDDD_PTDDD0=1; PTHDD_PTHDD7=1; PTHDD_PTHDD6=1; PTEDD_PTEDD7=1;

/////_------------ //////

MCU_init();

Write(0x16,0x05); // Configura el acelerometro en modo de lectura y 2g

// variables a cero

Xdata=0; //Inicia la las variables en 0 Ydata=0; // Zdata=0;

for(;;) {

//--------- Lectura permanente de los ejes X, Y, y Z -------// // Xdata=Read(0x06); // lectura del Eje X

Ydata=Read(0x07); // lectura del Eje Y

Page 13: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

13

Zdata=Read(0x08); // lectura del Eje Z

Retardo(0xFF);

//---- manipulación de la lectura para poder enviarse al hyperterminal -

//-----PARA EL EJE X

medidax[0] = Xdata/100; // Para obtener centenas Centenas medidax[1]=(Xdata - medidax[0]*100)/10; //Obtener centenas Dentenas medidax[2]= Xdata - medidax[0]*100 - medidax[1]*10; //Unidades medidax[3] = 0x00; //-----PARA EL EJE Y

mediday[0] = Ydata/100; // Para obtener centenas Centenas mediday[1]=(Ydata - mediday[0]*100)/10; // Para obtener decenas mediday[2]= Ydata - mediday[0]*100 - mediday[1]*10; //unidadaes mediday[3] = 0x00;

//-----PARA EL EJE Z

medidaz[0] = Zdata/100; // Para obtener centenas medidaz[1]=(Zdata - medidaz[0]*100)/10; // Para obtener decenas medidaz[2]= Zdata - medidaz[0]*100 - medidaz[1]*10; // unidades medidaz[3] = 0x00;

///-----CONVERSION DE LA LECTURA A ASCII ------

xuni= medidax[0]+0x30; xdec= medidax[1]+0x30; xcen= medidax[2]+0x30;

yuni= mediday[0]+0x30; ydec= mediday[1]+0x30; ycen= mediday[2]+0x30;

zuni= medidaz[0]+0x30; zdec= medidaz[1]+0x30; zcen= medidaz[2]+0x30;

Page 14: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

14

//// -----TRASMISION DE LOS CARACTERAES --------

TX(0x0D); // TX('X'); // X = TX(' '); // TX('='); // TX(' '); // TX(xuni); // envía las centenas al hyper

TX(xdec); // envía las decenas al hyper

TX(xcen); // envía la unidades al hyper TX(0x00); // TX(0x09); // function CR ascii

TX('Y'); TX(' '); TX('='); TX(' '); TX(yuni); TX(ydec); TX(ycen); TX(0x00); TX(0x09); //TX(0x0A); //TX(0x0D); //TX('LF'); //TX('CR');

pere(10);

TX('Z'); TX(' '); TX('='); TX(' '); TX(zuni); TX(zdec); TX(zcen); TX(0x00);

pere(10);

/// secuencia de lectura que se muestran en los leds ////

if (Ydata>53 & Ydata<73) // UMBRALIZADOR DE Y 1g {

Page 15: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

15

int i; for(i=0;i<2;i++){ LED1=1,LED2=0,LED3=0,LED4=0,LED5=0; pere(120); LED1=0,LED2=1,LED3=0,LED4=0,LED5=0; pere(120); LED1=0,LED2=0,LED3=1,LED4=0,LED5=0; pere(120); LED1=0,LED2=0,LED3=0,LED4=1,LED5=0; pere(120); LED1=0,LED2=0,LED3=0,LED4=0,LED5=1; pere(60); } }

if (Ydata>183 & Ydata<203) // UMBRALIZADOR DE Y - 1g { int i; for(i=0;i<2;i++){ LED1=0,LED2=0,LED3=0,LED4=0,LED5=1; pere(120); LED1=0,LED2=0,LED3=0,LED4=1,LED5=0; pere(120); LED1=0,LED2=0,LED3=1,LED4=0,LED5=0; pere(120); LED1=0,LED2=1,LED3=0,LED4=0,LED5=0; pere(120); LED1=1,LED2=0,LED3=0,LED4=0,LED5=0; pere(80); } } if (Xdata>55 & Xdata<71) // UMBRALIZADOR DE X 1g { int i; for(i=0;i<2;i++){ LED1=1,LED2=0,LED3=0,LED4=0,LED5=1; pere(150); LED1=0,LED2=1,LED3=0,LED4=1,LED5=0; pere(150); LED1=0,LED2=0,LED3=1,LED4=0,LED5=0; pere(80);

} }

if (Xdata>185 & Xdata<202) // UMBRALIZADOR DE X - 1g

Page 16: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

16

{ int i; for(i=0;i<2;i++){ LED1=0,LED2=0,LED3=1,LED4=0,LED5=0; pere(150); LED1=0,LED2=1,LED3=0,LED4=1,LED5=0; pere(150); LED1=1,LED2=0,LED3=0,LED4=0,LED5=1; pere(80);

}

}

if (Zdata>185 & Zdata<202) // UMBRALIZADOR DE Z -1g { int i; for(i=0;i<2;i++){ LED1=0,LED2=1,LED3=1,LED4=1,LED5=0; pere(90); LED1=0,LED2=0,LED3=0,LED4=0,LED5=0; pere(80); LED1=1,LED2=0,LED3=0,LED4=0,LED5=1; pere(80);

}

}

}

/* loop forever */ /* please make sure that you never leave main */ } //-----------------------------------------------------------------------

-- //-----------------------------------------------------------------------

-- // --- function de retardo Us ------

void Retardo(byte count) { byte i; for (i=0; i<count; i++) { }

Page 17: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

17

} //-----------------------------------------------------------------------

---- // void Write(unsigned char reg, unsigned char val) { IIC1C1_IICEN=1; //habilita el modulo IIC1C1_TX=1; // habilita modo de trasmision IIC1C1_MST=1; // Envia un start bite IIC1D = (IIC_WriteAdr<<1); // envia dirección + bit W 3A

while (IIC1S_IICIF==0) // espera a que el dato se trasmita Retardo(5); IIC1S_IICIF=1;

if (IIC1S_RXAK==1){ IIC1C1_MST=0; //sino se recibe ack de respuesta parada ACK=0; // se detiene la comunicacion

} else{ ACK=1; } IIC1D = reg; //escritura del registro while (IIC1S_IICIF==0) //espera a que se complete la trasmision

IIC1S_IICIF=1;

if (IIC1S_RXAK==1){ IIC1C1_MST=0; ACK=0;

} else{ ACK=1; } IIC1D = val; // envia el valor a escribir while (IIC1S_IICIF==0)// Retardo(5); IIC1S_IICIF=1; if (IIC1S_RXAK==1){ IIC1C1_MST=0; ACK=0; // si no recibimos ack detenemos comunicacion } else{ ACK=1; } IIC1C1_MST=0; write1=1;

Page 18: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

18

} //-----------------------------------------------------------------------

------- //-----------------------------------------------------------------------

-------

/// FUNCION DE LECTURA ////

char Read(unsigned char reg) { char data; IIC1C1_IICEN=1; //habilita el modulo IIC1C1_TX=1; //habilitacion modo de trasmitir IIC1C1_MST=1; //envia una secuencia de inicio IIC1D = (IIC_WriteAdr<<1); //direccion del acelerometro con bit w 3A Retardo(0x20); while (IIC1S_IICIF==0) //Esperamos a que la trasmision del byte // termine

Retardo(5); IIC1S_IICIF=1; //limpiamos la bandera para su posterior uso if (IIC1S_RXAK==1){ //esperamos el ack o bit de reconocimiento IIC1C1_MST=0; // si no recibimos ack detenemos Comunicacion ACK=0;

} else{ ACK=1; } IIC1D = reg; // enviamos el registro a escribir

while (IIC1S_IICIF==0) Retardo(5); IIC1S_IICIF=1; if (IIC1S_RXAK==1){ IIC1C1_MST=0; ACK=0;

} else{ ACK=1; } IIC1C1_TX=1; //HABILTA EL MODULO IIC1C1_RSTA=1; //ENVIA RESTART IIC1D =(IIC_ReadAdr<<1)|0x01; //direccion del acelerometro con bit 3B

Page 19: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

19

Retardo(10);

while (IIC1S_IICIF==0) Retardo(5); IIC1S_IICIF=1; if (IIC1S_RXAK==1) { IIC1C1_MST=0; ACK=0;

} else{

ACK=1; } IIC1C1_TX=0; // habilito modo de recepcion IIC1C1_TXAK = 1; // envia nack data=IIC1D; //primera lectura.. se descarta porque puede

ser erronea while (IIC1S_IICIF==0) //Espera a que termine de enviar dato Retardo(5); IIC1S_IICIF=1; data = IIC1D; while (IIC1S_IICIF==0) Retardo(5); IIC1S_IICIF=1; IIC1C1_MST = 0; return(data); } //-----------------------------------------------------------------------

---- // funcion de retardo en ms--------//

void pere(unsigned int t) { unsigned int i,j; for (j=200;j>0;j--) { for(i=0;i<t;i++) { asm(nop); } } }

//------ FUNCION DE COMUNICACION SCI CON EL X-BEE -------- ///

Page 20: Proyecto Final Xbee

UNIVERSIDAD INDUSTRIAL DE SANTANDER ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES

Perfecta Combinación entre Energía e Intelecto

PROYECTO DISEÑO CIRCUITOS ANALOGICOS

Integrantes Iván Darío Peñaloza Borras cód.: 2005418 Carlos Fernando López Toledo cód. 2073532

Presentado a: ING. Alfredo Acevedo

20

void TX(byte dato) { SCI1D=dato;

while(!SCI1S1_TDRE) //Espera a que el buffer de transmision este vacio //Si esta lleno significa que no se ha terminado de transmitir //El ultimo dato

{} pere(10); }

OBSERVACIONES Y CONCLUCIONES: -en cuanto a la implementación de la tarjeta se realizo con anticipación respecto al desarrollo de los demás compañeros de la asignatura, lo que se pretendía era adelantar lo concerniente al montaje; proceso de soldadura, comprobación de funcionamiento y lo relacionado a la programación del micro controlador. -respecto a la posición de los elementos en la tarjeta su ubicación fue determinada buscando la optimización en cuanto a los resultados pretendidos por la asignatura por ejemplo la posición del acelerómetro fue determinada buscando la mejor forma de poder censar la posición en cuanto a la aceleración manejando sus tres eje, x,y,z razón por la cual se ubico el mismo casi en la mitad de la tarjeta. -es importante resaltar lo relacionado a la disponibilidad de los elementos

necesarios para el desarrollo del proyecto pues los recursos son de vital importancia ya que las herramientas disponibles tarjetas del micro controlador herramientas de simulación y el optimo manejo del programa para el mismo permitieron lograr lo propuesto concerniente a la comunicación mediante el protocolo I2C

-si bien es cierto que realizar la PCB en la forma en cómo la hicimos no es la más aconsejable, ya que se puede arriesgar seguridad en la comunicación o eficacia del sistema por economía, ese no es el fondo de nuestro proyecto, y ni siquiera de la asignatura. El motivo de estar aquí es aprender, “cacharrear” y poner a prueba nuestras capacidades. En una eventualidad o urgencia no habrá la posibilidad de esperar tiempo de realización de la PCB, en cambio con la técnica seguida por nosotros hemos aprendido algo nuevo y hemos mostrado una capacidad que parece esta obligado a ser recursivo y hacer cosas por si mismo.