Sie sind auf Seite 1von 94

CONTENIDO

INTRODUCCIN ...................................................................................................................................................3 CAPTULO 1 DISEO E IMPLEMENTACIN DE UN MAPEO NO LINEAL.......................................................................................5 1.1 Tent Map ............................................................................................................................................................................... 5 1.2 Implementacin electrnica del mapeo casa de campaa...................................................................................... 7 1.3 Aplicacin del circuito electrnico mapeo casa de campaa ............................................................................... 13 CAPTULO 2 CONVERSOR A/D DEL DSPIC30F4013 Y CONVERSOR D/A DACO8OO.................................................................... 16 2.1 2.2 2.3 2.4 2.5 2.6 2.7 El microcontrolador DSPIC30F4013 .......................................................................................................................... 16 Conversor A/D de 12-bits ............................................................................................................................................... 16 El convertidor digital-analgico y analgico-digital ............................................................................................. 18 Caractersticas de un DAC .............................................................................................................................................. 18 Resolucin .......................................................................................................................................................................... 19 Ecuacin de entrada-salida ............................................................................................................................................ 21 Caractersticas del ADC ................................................................................................................................................... 21 2.7.1 Ecuacin de entrada-salida ................................................................................................................................. 21 2.8 Convertidor digital a analgico de 8 bits: El DAC 0800 .......................................................................................... 23 2.9 Aumento de resolucin de conversores ...................................................................................................................... 25 CAPTULO 3 EL AMPLIFICADOR OPERACIONAL ..................................................................................................................... 29 3.1 Tecnologa de amplificadores operacionales ........................................................................................................... 29 3.2 Smbolo y terminales del circuito ............................................................................................................................... 30 3.3 Configuraciones utilizadas en esta tesis...................................................................................................................... 30 3.3.1 Seguidor ..................................................................................................................................................................... 30 3.3.2 Inversor ...................................................................................................................................................................... 31 3.3.3 No inversor ................................................................................................................................................................ 32 3.3.4 Sumador inversor .................................................................................................................................................... 32 CAPTULO 4 CARACTERIZACIN Y RESULTADOS DEL TENT MAP............................................................................................. 34

CONCLUSIONES .......................................................................................................................................................................... 58 APNDICE A MANUAL DE PROGRAMACIN Y CONSTRUCCION DE PROYECTOS ....................................................................... 60 A1.1 Introduccin .................................................................................................................................................................... 60 A1.2 Practica 1, Construccin de un sistema mnimo .................................................................................................... 60 A1.3 Uso del puerto ICSP ....................................................................................................................................................... 62

A1.4 Precauciones al usar el ICSP ....................................................................................................................................... 64 A1.5 El programador MASTER-PROG USB ........................................................................................................................ 65 A1.6 Uso del MPLAB Y MPLAB C30 compiler.................................................................................................................... 65 A1.7 Prctica 2, los puertos de entrada y salida ............................................................................................................. 68 A1.8 Prctica 3, el temporizador (Timer)......................................................................................................................... 71 A1.9 Prctica 4, el UART ........................................................................................................................................................ 74 A1.10 Prctica 5, uso del convertidor analgico digital ............................................................................................... 80

BIBLIOGRAFA ........................................................................................................................................................................... 92

INTRODUCCIN
La Teora del Caos es una denominacin popular de la rama de las matemticas y la fsica que estudia lo complicado, lo impredecible, lo que no es lineal. De manera ms tcnica, es una rama de la matemtica que trata ciertos tipos de comportamientos aleatorios; es decir, caticos de los sistemas dinmicos. La Teora del Caos no es necesariamente una teora, sino ms bien un gran campo de investigacin que abarca lneas de pensamiento, y que gracias a los valiosos conocimientos aportados por diversos cientficos a la formacin de su cuerpo terico, es que amenaza en convertirse en una ciencia por derecho propio. Da a da se fortalece ms, encontrando cabida en muchos rincones y en ambientes de investigacin cientfica, como la econmica, biolgica, matemtica, etc. Aparentemente es un eslabn perdido de la ciencia que promete dar una nueva perspectiva a la explicacin de eventos en ambientes dinmicos y turbulentos, alejndose cada vez ms la visin mecanicista que ha predominado en nuestros modelos mentales. Lo interesante del caos es que se puede llegar a pensar en una ley universal, en la que todo fluye con todo e interacta de una forma que para nuestro entender es aleatorio y catico, pero que puede llevar un orden. La teora del caos nos hace pensar mucho ms all de los ejemplos concretos que nos encontramos, y de los cuales algunos se han hecho mencin en este trabajo. Hablar del caos parece ser muy complicado sin embargo, muchos de los fenmenos aparentemente impredecibles e incalculables estn regidos por leyes sumamente simples, tales como los conocidos fractales de Mandelbrot, las lneas de Turng, la reaccin BZ de Belousov, y las leyes de Lorenz. Descubrieron distintas facetas de una gran idea, es decir dentro de lo impredecible existen patrones y estructuras. Pero que tienen en comn el clima de Lorenz y los qumicos de Belousov siendo sistemas muy complicados y distintos, en primera es que se basan en sorprendentemente simples reglas matemticas, en segunda estas reglas tienen una propiedad nica y es referida como acoplamiento o retroalimentacin. 4

En este trabajo se muestra una nueva visin de algunos de los beneficios que se pueden obtener del comportamiento catico de un sistema en especfico. La teora del caos se relaciona tambin con la familia de mapas tienda casa de campaa que es una subclase de los mapas PWL que constan nicamente de dos intervalos. Dentro de esta familia a su vez se pueden distinguir cuatro subfamilias: el mapa de tienda de campaa o tent-map" (TM), el mapa de tienda de campaa sesgado o skew tent-map" (SKTM), el mapa de tienda de campaa simtrico o symmetric tent-map" (S-TM), y el mapa de tienda de campaa sesgado bipolar o bipolar skew tent-map" (BSK-TM). En este trabajo de tesis, se propone realizar un circuito electrnico con la posibilidad de generar secuencias aleatorias basadas en la funcin del mapeo casa de campaa (TM), siendo esta propuesta una de las realizaciones electrnicas ms simples que se puedan dar para generar este tipo de comportamiento. La caracterstica principal del circuito para generar el mapeo casa de campaa es su fcil implementacin, debido a que se usan solamente componentes analgicos, aunque para realizar las operaciones iterativas es necesario utilizar una etapa digital. Esta tesis consta de cuatro etapas importantes: 1. Circuito generador del mapeo casa de campaa TENT MAP. 2. Circuito convertidor Analgico a Digital de 12 bits a partir del IC DSPIC30F4013 de MICROCHIP. 3. Circuito convertidor Digital a Analgico de 12 bits a partir de dos convertidores digitalanalgico DAC0800 de 8 bits. 4. El amplificador operacional. En los captulos siguientes, se hablar del desarrollo de cada una de las etapas del proyecto, en el orden antes mencionado.

CAPTULO 1
DISEO E IMPLEMENTACI0N DE UN MAPEO NO LINEAL
Un nmero aleatorio es un nmero generado siguiendo una aproximacin no determinstica y es equiprobable de ser generado dentro de un rango finito. En la actualidad, la generacin de nmeros aleatorios es una tarea muy importante, a causa de que los nmeros aleatorios son la base para el desarrollo de campos como la criptografa [1], simulacin por computadoras, video juegos, etc. La generacin de secuencias aleatorias por lo general se realiza por medio de computadoras, que son mquinas de Turng gobernadas por leyes determinsticas, que generan secuencias pseudoaleatorias de 16 a 64 bits, las cuales comienzan con una semilla 0 .

As cuando se utiliza esta semilla para llevar a cabo la secuencia pseudoaleatoria de

compresin, estamos solamente utilizando la entropa generada por esa semilla. Y cuando se lleva a cabo la rutina de descompresin, resulta que tiene que ser igual a la rutina generadora pseudoaleatoria de compresin, la cual usualmente no es de ms de unos cientos de bits de informacin. Debido a que la rutina de generacin usualmente es del dominio pblico, esta no representa una fuente de entropa por ser solamente la de la semilla. Por lo tanto, la generacin de la secuencia pseudoaleatoria no genera entropa inviolable [2]. La ecuacin del circuito electrnico propuesto se puede normalizar y encontrar que se a . La ecuacin anterior puede representar el mapeo logstico o la casa de campaa dependiendo si es igual a 2 o a 1, respectivamente (en nuestro caso ser igual a 1), y A es el parmetro de bifurcacin que controla las propiedades del mapeo. describe por: +1 = (1 |2 1| ), = 0, 1, 2 , donde la ecuacin describe un mapeo de

1.1 Tent Map


Los sistemas dinmicos no lineales en tiempo discreto se describen generalmente como un mapa iterativo dado por su ecuacin de estado: 6

+1 = ( ), = 0, 1, 2, ,

(1.1)

Donde

Es el estado del sistema al tiempo y +1 denota el siguiente estado del sistema. La de la poblacin infectada al tiempo , mientras que en economa puede ser el precio por unidad al tiempo para un cierto producto comercial [18].

0 es el estado inicial, es la dimensionalidad del espacio de estados,

interpretacin del vector de estados depende del contexto, por ejemplo, en poblaciones biolgicas es normalmente el tamao de la poblacin en la generacin , en epidemiologa es la fraccin

conoce como una rbita. En la dcada del 70, el bilogo Robert May [3] descubri que procesos

Las repeticiones iterativas de proporcionan una secuencia de puntos { } que se =0

iterativos muy sencillos estudiados en modelos biolgicos, originaban comportamientos sumamente complejos y caticos. Trabajando con la ecuacin del modelo logstico de crecimiento poblacional, May encontr un sistema catico que a diferencia de los anteriores, era unidimensional. El mapeo casa de campaa es una de las funciones de iteracin ms simples, ya sea solo o en compaa de otras aplicaciones. Este tiene la forma de una tienda como se muestra en la Figura 1.1, y en su evolucin toma un punto sobre el intervalo [0, 1] y se mapea en otro punto auxiliado por la siguiente ecuacin:

+1 =

(1 )

para

para n <
1 2

(1.2)

Figura 1.1. Grfica del mapeo casa de campaa.

[1, 2] que controla las propiedades del mapeo casa de campaa. Muchas de las propiedades bsicas de este mapeo se encuentran en el libro de Elaydi [4] sobre caos discreto. A travs de la

Donde [0,1], y es un parmetro real de bifurcacin comprendido en el intervalo

variacin del parmetro de control del mapeo casa de campaa se podran examinar los diagramas de bifurcacin del sistema realizado y su posterior comprobacin con el modelo terico, aprecindose una excelente correspondencia entre el desarrollo experimental y el modelo matemtico.

1.2 Implementacin electrnica del mapeo casa de campaa


En esta seccin, se presenta una de las realizaciones electrnicas ms simples del mapeo casa de campaa, por ejemplo en Tanaka et al. [5] se muestra un diagrama de un circuito tpico de un mapeo catico en una dimensin, junto con su operacin de iteracin la cual se muestra en la Figura 1.2. Por lo tanto en esta seccin realizaremos una novedosa propuesta de () .

Figura 1.2. Diagrama a bloques tpico del mapeo casa de campaa. Que es un excelente modelo de ingeniera del correspondiente sistema matemtico.

En diferentes implementaciones del circuito casa de campaa [6, 7], se emplean los multiplicadores analgicos como ncleo del circuito para su realizacin, con una normalizacin de la seal por un factor de 10. Esta normalizacin, es necesaria a causa de las restricciones fsicas en el mismo multiplicador analgico. El punto de inicio es el diagrama a bloques del mapeo casa de campaa que se muestra en la Figura 1.3. Tpicamente este circuito contiene amplificadores operacionales, los cuales realizan operaciones lineales como la integracin y suma, as como de elementos acoplados de circuitos integrados que desempean las operaciones no lineales, como la multiplicacin. Aqu se describe un circuito nuevo que contiene componentes activos, velocidades de radiofrecuencia capaz de reproducir las transiciones del estado estable a caos, como se observa en la ecuacin casa de campaa cuando el parmetro de bifurcacin se sintoniza. El diagrama de flujo usado para la construccin del circuito electrnico mapeo casa de campaa se muestra en la Figura 1.3(a). El comportamiento casa de campaa se basa sobre dos lneas rectas dadas por 1 y 2 2 + 1 con dominio [0, ) y [0.5, ), respectivamente. (1 + 2) cuando est en el intervalo [0.5V, 1V). La respuesta de la rama inferior y superior se > 1 . La salida se da por 1 cuando permanece en el intervalo [0V, 0.5V) y por

muestra en la Figura 1.3 (b) y (c), respectivamente. Este enfoque permite realizar los cambios en la

pendiente de a . Se puede pensar que el sistema tiene dos puntos crticos, < 0 y

Sin embargo, la respuesta del circuito es cero para esas entradas. En ausencia de ruido, el circuito mapeo casa de campaa podr permanecer en uno de esos puntos fijos, pero en el mundo real de los componentes electrnicos analgicos siempre existe algn ruido que genera la dinmica en el circuito.

Figura 1.3. (a) Diagrama a bloques del mapeo casa de campaa usado para la construccin del circuito electrnico. (b) Respuesta de la rama inferior del diagrama a bloques. (c) Respuesta de la rama superior del diagrama a bloques.

Considerando lo anterior la Figura 1.4 muestra el diagrama esquemtico del mapeo casa de campaa, el cual consiste de cinco amplificadores operacionales (de U1 a U5), cuatro diodos (D1 - D4), 13 resistencias (de R1 a R13) y una fuente de voltaje dc (Vdc). La simpleza del circuito se debe al hecho de que las operaciones matemticas lineales de conmutacin, se realizan por los amplificadores operacionales en el bloque de conmutacin, mostrado en la Figura 1.3. Asumiendo un desempeo ideal de todos los componentes, el circuito en la Figura 1.4 se modela por la siguiente ecuacin:
1

8 7

9 6

9 5

10 4

3 1

22

para

para

<

22 1

(1.3)

22

electrnico mapeo casa de campaa. Debe notarse que el bloque de conmutacin mostrado en la Figura 1.3 se realiza a travs del nodo b. 10

Donde y son los voltajes de entrada y de salida respectivamente, del circuito

Figura 1.4 Diagrama esquemtico del circuito electrnico mapeo casa de campaa.

= 5
4

3 1

2 2

para

para

V <

22 1

(1.4)

22

As, la Ecuacin (1.3) tienen un comportamiento equivalente al de la Ecuacin (1.2) para respectivamente. En realidad, este conjunto de valores no es nico ya que la Ecuacin (1.3) contiene ms de un parmetro, por lo que un diseador de circuitos tiene la libertad de escoger los componentes en particular que satisfacen otras restricciones de diseo para su aplicacin en especfico. A pesar de las reactancias parsitas, el ancho de banda finito de los componentes activos y otras perturbaciones experimentales, el circuito electrnico muestra un comportamiento igual al del modelo matemtico dado por la Ecuacin (1.2). El circuito electrnico se mont sobre una tarjeta de circuito impreso (PCB), en el que se us el amplificador operacional LM324 [8] alimentado con una fuente de poder de suministrado por una fuente variable de dc con un rango de salida de 0 - 30 V. 11 15 V y puesto sobre un socket. El voltaje es los valores de los componentes dados en la Tabla 1.1, y reemplazando y por y +1 ,

Tabla 1.1. Valores de los componentes electrnicos empleados en la construccin del circuito electrnico mapeo casa de campaa.

Dispositivo 1,2,3,4,7,8,10,12,13 5,6 11 1 ,2,3,4 1,2,3,4,5

Valor 1 k Resistencia 5 k Potencimetro 100 k Potencimetro 1n1419 Diodo LM324 Op. Amp.

Y para tener una operacin iterativa, ver Figura 1.2, el circuito se auxilia de un microcontrolador DSPIC30f4013 [9] de la compaa Microchip, y dos IC convertidor D/A DAC0800 [10] de National Semiconductors con un tiempo de procesamiento de 100 entre muestras de voltaje. Obviamente, existen diferentes formas de desempear esta operacin iterativa, pero esto depende del diseador y la aplicacin. El valor del parmetro de bifurcacin se puede fijar a ciertos valores al ajustar los

potencimetros R5 y R6, localizados en la retroalimentacin de los amplificadores operacionales U2 y U3. La relacin entre los resistores R5 y R6 de la Ecuacin (1.5) con el valor de la Ecuacin (1.2) se da s = 6 y 5 = 26 = 2 .

1 2

para

para

<

2 1 2

(1.5)

Simplificando la Ecuacin (1.5).

1 5 2

(1 )
12

para

para

<

2 1 2

(1.6)

Por lo que al considerar diferentes valores de R5 y R6, el circuito puede mostrar parte de su dinmica. La Figura 1.5 muestra parte del diagrama de bifurcaciones del circuito al sintonizar el parmetro , para valores de los resistores en el intervalo cerrado [1, 4].

En esta figura se pueden observar puntos fijos, oscilaciones peridicas, periodos doble y

caos. Tambin se puede ver que el circuito exhibe el rango completo del comportamiento del mapeo casa de campaa. De hecho, los resultados experimentales obtenidos de la dinmica de este circuito estn acorde con los resultados tericos. Para = 2 en la Figura 1.6 se muestra una serie de tiempo del voltaje de salida. Las mediciones para cada serie de tiempo experimental, de la serie de tiempo se estim por la siguiente ecuacin: contienen 650 datos colectados para diferentes valores del parmetro de bifurcacin . El ruido

= +1 ( )

(1.7)

se da por la Ecuacin (1.2). En la Figura 1.7 se muestra el histograma del ruido calculado para 650 datos de la seal del tiempo con = 2.

Donde y +1 son los datos experimentales del circuito mapeo casa de campaa, y (. )

Figura 1.5. Diagrama de la bifurcacin experimental del mapeo casa de campaa.

13

1.3 Aplicacin del circuito electrnico mapeo casa de campaa


En esta seccin se muestran los resultados experimentales del circuito, como generador de nmeros aleatorios. La Figura 1.8 muestra una serie experimental de nmeros pseudoaleatorios generados con el circuito casa de campaa, tomando como condicin inicial un valor de 0.51 y una de 2. La serie de tiempo solamente muestra un bloque de 50 datos experimentales con valores entre 0 y 1 que es el rango de operacin del circuito.

Figura 1.6 Serie del tiempo de la dinmica catica generada por el mapeo casa de campaa para = 2.

Figura 1.7. Histograma del ruido estimado por medio de la Ecuacin (1.6).

14

Figura 1.8. Datos experimentales.

Para analizar la aleatoriedad de los nmeros generados por el circuito (conjunto de datos de 1000 muestras) se realizan dos pruebas nicamente. La primera es realizada para determinar la divergencia de los datos con respecto a la distribucin uniforme, prueba de Kolmogorov- Smirnov. Esta es una prueba apropiada para determinar cuando dos distribuciones de probabilidad en una dimensin difieren. La Figura 1.9 muestra los resultados cuando esta prueba se aplica al generador de nmeros aleatorios. Los resultados obtenidos del anlisis para la mxima desviacin estndar son de = 5% y desviacin permitida de = 0.185072. Por lo tanto, no se puede rechazar la hiptesis de distribucin uniforme. La segunda prueba se realiza para investigar el nivel de autocorrelacin de los datos experimentales, ver las pginas 38, 39 y 40 en [11]. Los resultados de esta prueba se muestran en la Figura 1.10. Se aprecia que la autocorrelacin decae muy rpido con el incremento de la distancia, esto se toma como un indicador de la existencia de un comportamiento estable independiente en los datos muestreados (la hiptesis de no autocorrelacin no es rechazada). Ver tambin las pginas 74 y 75 en [12]. En sistemas caticos, existe una extrema sensibilidad por la dinmica del sistema con respecto a las condiciones iniciales.

15

Figura 1.9. Prueba de Kolmogorov-Smirnov

muestras y () es la autocorrelacin.

Figura 1.10. Autocorrelacin de los datos muestreados. En esta figura es la separacin relativa entre dos

Como un resultado, dos rbitas caticas con diferente condicin inicial, que permanecen en una pequea vecindad en un espacio vectorial, divergirn y no habr correlacin entre ellas.

16

CAPTULO 2
CONVERSOR A/D DEL DSPIC30F4013 Y CONVERSOR D/A DAC0800 2.1 El microcontrolador DSPIC30F4013
Un Microcontrolador es un circuito integrado o ms comnmente llamado chip, que cumple las funciones de cerebro de cualquier aplicacin, y es responsable del buen funcionamiento del circuito que gobierna. Como todo cerebro, este chip tiene que procesar alguna informacin contenida en su memoria y de esta forma decidir qu hacer. A esta informacin que debe tener el chip se le llama software o programa de aplicacin. Microchip, el lder mundial de los microcontroladores de 8 bits, ha desarrollado los DSC (Controlador Digital de Seal), que son una combinacin de microcontroladores clsicos con los recursos bsicos de los DSP (Procesador Digital de Seal). De esta forma los DSC ocupan el nivel intermedio entre los MCU y los DSP. En la actualidad ya se comercializan ms de 50 modelos.

El modelo que nos interesa en este caso es el DSPIC30F4013. Algunos de los rasgos ms caractersticos del microcontrolador son: arquitectura Harvard modificada, 84 instrucciones bsicas, ancho de instrucciones de 24 bits, y un ancho de datos de 16 bits. Puede almacenar 48 Kbytes en su memoria de programa, tiene una RAM de 2 Kbytes y una EEPROM de 1 Kbyte, una velocidad de operacin de 30 MIPS, 33 fuentes de interrupcin, 16 registros de trabajo de 16 bits y 2 acumuladores de 40 bits. Uno de los componentes fundamentales en un microcontrolador es el conversor A/D [13]. El presente trabajo se centra en el estudio del conversor integrado en el DSPIC30F4013, mencionado anteriormente.

2.2 Conversor A/D de 12-bits


El conversor A/D de 12-bits permite la conversin de seales analgicas de entrada a nmeros digitales de 12 bits. Provee una velocidad de muestreo de 100,000 muestras por segundo. Tiene hasta 16 entradas analgicas multiplexadas en un amplificador de muestreo y 17

retencin (sample & hold). La salida al amplificador es la entrada al conversor, que genera el resultado. La referencia analgica de voltaje se puede seleccionar por software a las terminales AVDD /AVSS o VREF+/VREF-. El conversor A/D posee la caracterstica especial de funcionar con el dispositivo en modo Sleep (si el oscilador est en RC). El conversor tiene 6 registros de 16-bits Registro de Control A/D 1 (ADCON1) Registro de Control A/D 2 (ADCON2) Registro de Control A/D 3 (ADCON3) Registro de configuracin de modo simple/diferencial (ADCHS) Registro de configuracin del puerto A/D (ADPCFG) Registro de seleccin de los canales a muestrear (ADCSSL) Los registros ADCON1, ADCON2 y ADCON3 controlan la operacin del conversor. El registro ADCHS selecciona los canales de entrada. ADPCFG configura los pines del puerto como entradas analgicas entradas/salidas digitales. Los temas que se enumeran a continuacin se localizan en las hojas de datos dedicadas al modulo A/D, en ellas se puede encontrar a detalle las distintas formas de configuracin y operacin del mdulo. 1. El buffer de resultados

2. La operacin de conversin

5. Interrumpir una conversin 8. Modos de apagado

4. Programacin del disparo de conversin

3. Seleccin de la secuencia de conversin

7. Requisitos de la adquisicin A/D 10. Efectos del reset 9.

6. Seleccionar el tiempo de conversin Funcionamiento del conversor en estado sleep o idle del procesador

11. Formatos de salida

12. Configuracin de los pines del puerto analgico 13. Consideraciones de conexin

18

2.3 El convertidor digital-analgico y analgico-digital


Los procesos que se dan en el mundo real producen seales analgicas cuya variacin es continua. La velocidad de esta variacin a veces es muy lenta, como es el caso de las variaciones de la temperatura; pero tambin pueden ser muy rpidas, como en un sistema de audio, la mejor manera de describir los procesos analgicos es mediante nmeros decimales y letras del alfabeto. Por otra parte, en los microprocesadores y en las computadoras para representar nmeros y letras o smbolos se utilizan patrones binarios. Es complicado guardar, manejar, comparar, calcular o recuperar datos de manera precisa utilizando para ello tecnologa analgica. En cambio las computadoras si son capaces de realizar estas tareas rpidamente; pueden trabajar prcticamente con una ilimitada cantidad de informacin, de manera precisa, utilizando para ello tcnicas digitales. Debido a lo anterior surgi la necesidad de contar con convertidores que sirvan para vincular entre s a los mundos analgico y digital. Mediante el convertidor analgico a digital (ADC) el mundo analgico se comunica con las computadoras. Las computadoras se comunican con las personas y los procesos fsicos mediante convertidores digitales a analgicos (DAC).

2.4 Caractersticas de un DAC


Para explicar claramente las caractersticas ms importantes de un DAC deben plantearse tres preguntas: Primera: Cuntos valores de salida es posible obtener con un DAC? Segunda: en qu magnitud cambia el voltaje de salida en respuesta al cambio en la palabra de entrada digital, al cambiar esta en un bit menos significativo (Least significant bit, LSB)? Tercera: Cul es la ecuacin de entrada- salida del DAC mediante la cual se calcula el voltaje de salida cuando se conoce la palabra de entrada digital.

19

2.5 Resolucin
En la Figura 2.1 se muestra el smbolo del circuito del DAC de 4 bits, as como sus caractersticas de entrada-salida. Hay cuatro entradas digitales, lo que indica que se trata de un DAC de 4 bits.

DAC

V0 = salida analgica

D3

D2

D1

D0 = entradas digitales

Figura 2.1 Smbolo del convertidor digital a analgico.

Por cada entrada digital se requiere una seal elctrica que represente ya sea un 1 lgico o un 0 lgico, D0 es el bit menos significativo (Least significant bit, LSB), D3 es bit ms significativo (most significant bit, MSB).

En la Figura 2.2 se grafica el voltaje de salida analgico en funcin de 16 posibles palabras de entrada digitales. Tambin se muestra el valor de v0 correspondiente a diversas palabras digitales.

20

Figura 2.2 Grfica del voltaje analgico de salida vs. Cdigo digital de entrada para un DAC de 4 Bits

La resolucin se define de dos maneras:

1. La resolucin es la cantidad de valores de salida analgicos que se puede obtener con un DAC. En el caso de un DAC de n bits:

= 2

(2.1)

2. Tambin se define la resolucin como la relacin del cambio de 1 LSB en las entradas digitales.

21

Para calcular la resolucin de acuerdo con esta ltima definicin, se necesita contar con dos tipos de informacin que pueden obtenerse en hojas de datos del fabricante del dispositivo: el voltaje de salida a escala total, V0fs, y la cantidad de entradas digitales, n. Se define a V0fs como el voltaje que se obtiene cuando todas las entradas digitales son 1. Por lo tanto, la resolucin es:

= 2.6 Ecuacin de entrada-salida

2 1

(2.2)

En el caso de un DAC, mediante una funcin de transferencia o ecuacin de entrada-salida se da respuesta a la pregunta: en qu medida se modifica el voltaje de salida analgico como respuesta a un cambio en una palabra de entrada digital? Para obtener esta ecuacin se multiplica la resolucin por el cambio que se produce en los LSB. Expresado lo anterior en forma de ecuacin:

0 =

(2.3)

En la que V0 es el voltaje de salida analgico, la resolucin esta expresada en la Ecuacin (2.2) y D es el valor decimal de la entrada digital.

2.7 Caractersticas del ADC 2.7.1 Ecuacin de entrada-salida


En la Figura 2.2 se grafica la salida digital de un ADC ideal de 4 bits en funcin de un voltaje de entrada analgico. Al igual que en el caso de los DAC, la resolucin de un ADC se define de dos maneras. Primera: la resolucin es la cantidad mxima de cdigos digitales de salida. Esta manera de definir la resolucin del ADC es similar a la del ADC y a continuacin se repite;

22

= 2

(2.4)

La resolucin tambin se define como la relacin del cambio necesario en el valor del voltaje de entrada, Vi, necesario para producir una salida digital en la que todos los dgitos sean 1, la resolucin se calcula de la siguiente manera:

2 1

(2.5)

Vi Entrada analgica

ADC

D3 D2 D1 D0
Figura 2.3 Smbolo de un ADC 4 Bits

Figura 2.4

Caractersticas de entrada-salida de un ADC

23

La expresin ms sencilla de la ecuacin de entrada-salida de un ADC es la siguiente:

(2.6)

En la cual D es el valor decimal de la seal digital; o bien, D es igual a la cantidad de bits presentes en la salida digital; D se calcula mediante la expresin:

(2.7)

2.8 Convertidor digital a analgico de 8 bits: El DAC 0800


El DAC 0800 es un DACM (DAC Multiplidador) rpido y econmico, encapsulado en un DIP de 16 terminales (pines) en la Figura 2.5 se estudian sus principios de funcionamiento haciendo referencia a la tarea que se realiza es sus terminales. Las terminales 13 y 3 son las terminales de alimentacin positiva y negativa respectivamente, y su valor puede ir de 4.5 a 18 V. Deben conectarse con capacitores de 0.1F, como se muestra en la Figura 2.5. La flexibilidad del DAC 0800 aumenta si en vez de una entrada de referencia se utilizan dos de ellas. Las terminales 14 y 15 trabajan con voltajes de referencia tanto positivos como negativos. En el caso de la Figura 2.5 existe una entrada de voltaje de referencia positivo. Se puede ajustar la corriente de escalera de entrada, Iref, muy fcilmente, desde 4A hasta 4mA; su valor caracterstico es de 2mA. Se puede conectar el DAC de manera que se tenga una salida de voltaje unipolar o bipolar como se muestra en la figuras 2.5 y 2.6 respectivamente, en esta tesis se utiliza la configuracin de salida unipolar.

24

Figura 2.5 Conexin de un DAC-0800 para un voltaje unipolar.

25

En las terminales de la 5 a la 12 se encuentran las entradas digitales. La nmero 5 es la del bit ms significativo (MSB), D7. La terminal 12 es la del bit menos significativo (LSB), D0. Las terminales son compatibles con TTL o CMOS. La entrada lgica 0 es de 0.8 V, o menos. El 1 lgico es de 2.0 V, o ms, independientemente de los voltajes de alimentacin. Por lo general, la terminal 1, VLC est conectada a tierra. Y tambin se utiliza para ajustar el voltaje de umbral de entrada lgica, VTH, de acuerdo con la igualdad VTH = VLC + 1.4 V. Estas entradas digitales controlan ocho interruptores de corriente internos.

2.9

Aumento de resolucin de conversores

Como se explic en las secciones anteriores un conversor digital-analgico tiene como entrada una seal digital y su salida es una seal analgica. El valor de la salida depende de una tensin de referencia VREF suministrada al conversor. Ahora sea la entrada Ain una seal (o palabra) digital de N bites de la forma:

Ain = a1 2 N 1 + a 2 2 N 2 + ... + a N 1 21 + a N 2 0

(2.8)

Donde los coeficientes ai (bites) pueden tomar los valores 0 1. Se define aN como el bit menos significativo (LSB) y a1 como el bit ms significativo (MSB). La seal de salida del conversor (Vo) viene dada por:

Vo = Ain

VREF 2N

(2.9)

El esquema que debe seguirse se muestra en la Figura 3.10

26

Figura 2.6 DAC0800 conectado como voltaje de salida bipolar.

27

Figura 2.7 Construccin de un DAC de 12 bits a partir de dos de 8 bits

Teniendo en cuenta las ecuaciones 2.8 y 2.9, la salida de un conversor de 12 bits debe ser de la forma:

VO = (c1 2 1 + c2 2 2 + ... + c12 2 12 ) VREF

(2.10)

Para los conversores A y B, tendremos las salidas VOA y VOB:

VOA = (a1 2 1 + a 2 2 2 + ... + a8 2 8 ) V REF

(2.11)

VOB = (b1 2 1 + b2 2 2 + ... + b8 2 8 ) V REF

(2.12)

Teniendo en cuenta que en la entrada Bin se han anulado los 4 bits ms significativos, tras dividir la seal por 24 = 16 obtenemos:

28

V 'OB =

VOB (b5 2 9 + b6 210 + b7 211 + b8 212 ) VREF 24

(2.13)

Puede comprobarse que la salida VOUT = VOA + VOB es justamente de la forma indicada en la Ecuacin 2.10. Los 8 bits ms significativos corresponden a la entrada Ain y los 4 menos significativos corresponden a los 4 bits menos significativos de la entrada Bin. El montaje de la Figura 2.5 puede modificarse para construir un conversor de 12 bits si se aade un segundo conversor, tal y como se muestra en la Figura 2.8 siguiendo el esquema de la Figura 2.7. Las resistencias R1 y R2 constituyen un divisor de corriente para la salida del segundo conversor. Es importante que el divisor de corriente divida exactamente por 16. Tome R1 del orden de 1 K. Mida el valor de R1 y utilice un potencimetro para fijar el valor de R2 con la mayor precisin posible.

Figura 2.8 Modificacin del montaje de la Figura 2.5 para construir un conversor de 12 bits. Las conexiones de los conversores y los niveles de alimentacin son iguales que en la Figura 2.5. La resistencia conectada al pin 14 del segundo conversor debe ser igual a la resistencia conectada en el primer conversor y a la resistencia conectada entre los pines 6 y 2 del operacional.

29

CAPTULO 3
EL AMPLIFICADOR OPERACIONAL
Uno de los dispositivos electrnicos ms verstiles y de mayor uso en aplicaciones lineales es el amplificador operacional, tambin conocido como OP AMP en ingles. En el mundo de la electrnica los amplificadores operacionales son populares por su modo fcil de usar, y por sus configuraciones sencillas adems de ser de bajo costo. Se les da el termino de operacional debido a que se pueden realizar operaciones matemticas, es decir, sumar, restar, multiplicar incluso resolver ecuaciones diferenciales, en la actualidad estas operaciones se realizan ms rpidamente en computadoras digitales con mayor velocidad y precisin, sin embargo la era digital no condena la desaparicin de los amplificadores operacionales. Conforme la tecnologa avanza se hace ms frecuente el uso de microcomputadoras, microcontroladores, as como circuitos y sistemas integrados para el procesamiento de seales, pero existen muchas aplicaciones digitales que requieren de interfaces con amplificadores operacionales. En esta seccin se presentan slo las configuraciones utilizadas en esta tesis.

3.1 Tecnologa de amplificadores operacionales


Se utilizan varias tcnicas para la fabricacin de amplificadores operacionales, al inicio solo existan los transistores bipolares, actualmente se han desarrollado transistores de efecto de campo y estn presentes dentro de los OP AMP, debi a que consumen corrientes muy pequeas permiten la variacin de los voltajes dentro del lmite del voltaje de alimentacin. Los transistores con tecnologa MOS (metal-oxido-semiconductor) de los circuitos de salida en el OP AMP permiten que esta vare dentro de los lmites de milivolts respecto de la fuente de alimentacin. Los fabricantes tambin han diseado encapsulados dobles (2) y cudruples (4). De esta manera el encapsulado que solo tena un OP AMP ahora puede tener dos o cuatro. Existen varios tipos de encapsulados y tamaos pero no se profundizara en el tema.

30

3.2 Smbolo y terminales del circuito


El smbolo del amplificador operacional que se da en la Figura 3.1 es un tringulo que apunta en la direccin del flujo de la seal. Este componente tiene un nmero de identificacin de parte (NIP) colocado dentro del tringulo.

Figura 3.1. Smbolo del circuito para un amplificador operacional de propsito general.

3.3

Configuraciones utilizadas en esta tesis

3.3.1 Seguidor

Figura 3.2 OP AMP configurado como seguidor.

Se usa como un buffer, para eliminar efectos de carga o para adaptar impedancias (conectar un dispositivo con gran impedancia y viceversa). Como la tensin en las dos patillas de entradas es igual: Vout = Vin, la impedancia de entrada es infinita Zin = .

31

3.3.2 Inversor

Figura 3.3 OP AMP configurado como amplificador inversor.

El anlisis de este circuito es el siguiente: V+ = V- = 0 Definiendo corrientes:


0

(4.1)

Y de aqu se despeja

=
Para el resto del circuito el anlisis es similar:

(4.2)

=
Por lo cual podemos controlar la impedancia por medio de Rin.

(4.3)

32

3.3.3 No inversor
La ecuacin de salida para esta configuracin es la siguiente:

= (1 +
La impedancia de entrada es muy elevada:

2 2

(4.4)

Figura 3.4 OP AMP configurado como no inversor.

3.3.4 Sumador inversor


Es importante mencionar que la salida en esta configuracin esta invertida, para resistencias independientes R1, R2,, Rn.

La ecuacin se simplifica si se utilizan resistencias del mismo valor. La impedancia de entrada se da de la manera siguiente: Zn = Rn. 33

= (

+ +

(4.5)

Figura 3.5 OP AMP configurado como sumador inversor.

34

CAPTULO 4
CARACTERIZACION Y RESULTADOS DEL TENT MAP
En los captulos del 1 al 3 se present la informacin por separado, en este captulo se presentan los resultados del circuito completo y las pruebas realizadas en cada parte. La informacin se presenta de acuerdo al esquema 4.1.

2 DAC 0800 DAC 12 bits

DSPIC 30F4013 ADC 12 bits

TENT MAP

AMP_1
1 5

AMP_2
5 1

Figura 4.1 Diagrama a bloques de las partes que conforman el TENT MAP.

Fuente 5V

Potencimetro

A/D dspic30f4013

D/A 2 DAC 0800


Figura 4.2 Diagrama a bloques para las pruebas del ADC y DAC.

35

Para verificar el correcto funcionamiento de convertidor analgico-digital de 12 bits del DSPIC30F4013 y del convertidor digital-analgico de 12 bits (2 DAC 0800) se utiliza una fuente de 10V y un potencimetro de 10 k para variar el voltaje de 0 a 5V. El sistema se conecta de acuerdo al Esquema 4.2. En la Figura 4.3 se muestra el diagrama del circuito para el DSPIC30F4013 el cual es alimentado con un voltaje de 5V DC y esta alimentacin tambin sirve de referencia para el mdulo ADC, es decir, slo se pueden muestrear seales analgicas iguales o menores a 5 volts, si la seal es mayor al voltaje de referencia el microcontrolador slo vera la parte correspondiente al voltaje de referencia. En la Figura 4.4 se puede observar el circuito impreso para el circuito de la Figura 4.3. La seal analgica es sensada por el microcontrolador utilizando la terminal 10, el funcionamiento en general se explica en la prctica 5 del Apndice A, el proceso de muestreo es totalmente manual, los puntos importantes a considerar para la configuracin son: Muestreo de una sola entrada analgica Inicio del muestreo manual Duracin del muestreo manual Inicio de la conversin manual La referencia positiva y negativa se toma de la alimentacin.

El circuito cuenta con tres LEDs indicadores: RB2 enciende despus de inicializar el circuito, RB3 prende, se apaga y despus se queda encendido, RB4 indica que el modulo ADC ha sido inicializado y ha comenzado a funcionar, en realidad los dos primeros se utilizan para comprobar el funcionamiento de los Timers y para verificar que el microcontrolador est alimentado. En la Figura 4.5 se muestra el diagrama correspondiente al circuito convertidor Digital-Analgico, realizado a partir de 2 IC DAC0800, existe la manera de probar por separado ambos convertidores aqu se har conjuntamente. El circuito convertidor Digital-Analgico es alimentado con 15 V, el voltaje de referencia es de 5V, pero; puede ser variable para cuestiones de ajuste en el voltaje de salida. En la Figura 4.6 se muestra la placa del circuito impreso correspondiente al circuito de la Figura 4.5. Para la conversin de corriente a voltaje se utiliza el amplificador operacional OP07CN de ST MICROELECTRONICS, es de bajo costo, es particularmente utilizado para aplicaciones de instrumentacin, de bajo ruido y cuenta con offset extremadamente bajo 150 V mximo. 36

Figura 4.3 Diagrama para el convertidor Analgico-Digital del microcontrolador dsPIC 30F4013.

37

Figura 4.4 Placa PCB (2 caras) correspondiente al diagrama de la Figura 4.3

Requiere de muy poca corriente de entrada (1.8nA) y alta ganancia (400V/mV), amplio rango de voltaje de alimentacin (3V a 22V) [14]. Las conexiones entre ambos circuitos se muestran en la Figura 4.7. La terminal del dsPIC que corresponde a D5 no se utiliza y no es tomada en cuenta en este diagrama, tampoco se toman en cuenta del DAC 0800 (IC 2) los bits D4_D7 por que estos se cancelan.

38

Figura 4 .5 Circuito convertidor Digital-Analgico 12 bits.

39

Figura 4.6 Placa PCB correspondiente al circuito de la Figura 4.5.

DSPIC 30F4013 ADC 12 Bits MSB-------------------------------------------------------------------LSB PUERTO F F6------------------------------F0 PUERTO D D4------------------------D0

D7_________________D0 IC 1

D3_________D0 IC 2

2 IC DAC0800 DAC 12 Bits

Figura 4 .7 Interconexiones entre el ADC Y el DAC.

40

Se hace variar el voltaje de entrada (analgica) conectado a la terminal 10 del DSPIC30F4013 con incrementos de 1 Volt. Se inicia primero con una seal de 1 Volt de entrada, las grficas obtenidas se muestran a continuacin:

Figura 4 .8 Un volt de entrada lnea roja, un volt de salida lnea verde.

41

Figura 4 .9 Dos volts de entrada lnea roja, dos volts de salida lnea verde.

Figura 4 .10 3 volts de entrada lnea roja, 3 volts de salida lnea verde.

42

Figura 4 .11 4 volts de entrada lnea roja, 4 volts de salida lnea verde.

Figura 4 .12 Entrada 5volts lnea roja, salida 5 volts lnea verde.

43

Como se puede apreciar en todas las grficas la entrada es ms ruidosa que la salida, el ruido tiene altas frecuencias por lo tanto el micro acta como filtro natural debido a que la frecuencia de muestreo es baja. El error de entrada con respecto de la salida se minimiz ajustando el voltaje de referencia de los ICs DAC 0800. Se realizaron pruebas con varios tipos de seal, enseguida se muestra una grfica (Figura 4 .13) donde se puede observar que la entrada que corresponde a una seal triangular con una amplitud de 5V pico-pico. La salida que se ve en color verde es prcticamente la misma seal. Esta seal triangular es utilizada para ajustar todas las partes de este proyecto en circuito abierto.

Figura 4 .13 Prueba con una seal triangular.

44

Las figuras 4.14 y 4.15 corresponden respectivamente al diagrama elctrico y circuito impreso del bloque llamado AMP_1, este circuito se utiliza para disminuir la ganancia a
1 5

de la

seal proveniente de los convertidores, esto debido a que el mdulo TENT MAP debe trabajar con voltajes de entrada mayores que cero o menores e iguales a 1 Volt. El IC LM324 es un amplificador operacional cudruple de propsito general, el primer OP AMP est configurado como amplificador inversor de ganancia variable, luego para recuperar la seal original se emplea el segundo operacional configurado como inversor de ganancia unitaria y para acoplar impedancias el tercer amplificador operacional se configura como seguidor. La respuesta que se puede observar en la Figura 4.16 es obtenida debido a una seal triangular de entrada (color rojo) y est en color verde vista en diferente escala para poder apreciar la diferencia en amplitud.

Figura 4 .14 Diagrama elctrico AMP_1.

45

Figura 4.15 Placa PCB correspondiente a circuito de la Figura 4.14.

Figura 4 .16 Respuesta AMP_1.

46

El ajuste del bloque TENT MAP se puede hacer de dos formas, una es utilizando una seal triangular y otra mediante las frmulas es decir se agarra cualquier valor entre 0 y 1 luego se calcula el valor terico de salida para ajustar cada punto del bloque. En la Figura 1.4 se muestra el diagrama esquemtico del TENT MAP, los puntos importantes son a, b, c y Vout. Es mucho ms fcil hacer el ajuste con la seal triangular sin offset con amplitud de 1V por lo tanto se har de esa manera, esto debido a que se hace para todos los puntos del rango de entrada. Los amplificadores operacionales son alimentados con 15 V y se requiere de una fuente de -0.5 V la cual debe ser muy precisa por que las variaciones afectan directamente la salida. En el primer operacional U1 en la Figura 1.4 se suma la seal de entrada con la fuente de 0.5 V, entonces el punto a es la entrada invertida montada sobre la fuente de DC -0.5 V, el resultado se muestra en la Figura 4.18.

Figura 4 .17 Circuito impreso del bloque TENT MAP en 2 caras.

47

Figura 4 .18 Tent Map circuito abierto, comparacin del punto A respecto a la entrada. Entrada color rojo, punto A color verde.

Como se expuso en la teora del captulo 1, el parmetro de la bifurcacin es = 2, esto significa que el punto b tendr valores entre (0,2) y el punto c estar entre (0,-2). El punto b se puede ajustar variando el valor del potencimetro R5. El operacional U2 junto con los diodos rectificadores corta la seal proveniente de U1 dejando pasar solo el lado positivo y R5 es el ajuste de ganancia. La grfica en el punto b se muestra en la Figura 4.19.

48

Figura 4 .19 Tent Map circuito abierto, comparacin del punto B respecto a la entrada. Entrada color rojo, punto B color verde.

U3 est configurado como amplificador inversor por lo tanto invierte y amplifica la seal de entrada, R6 es el ajuste de la ganancia, la Figura 4.20 muestra el resultado en el punto c. En el ltimo operacional se hace la suma de los puntos b y c, est configurado como amplificador inversor de ganancia unitaria, la salida de este es el resultado final del circuito, la Figura 4.21 muestra una comparacin entre la entrada y la salida del circuito TENT MAP.

49

Figura 4 .20 Tent Map circuito abierto, comparacin del punto C respecto a la entrada. Entrada color rojo, punto C color verde.

Figura 4 .21 Tent Map circuito abierto, comparacin de la salida respecto a la entrada. Entrada color rojo, salida color verde.

50

Por ltimo el resultado final se muestra en la Figura 4.22, esto se hace graficando la entrada en relacin con la salida para obtener la figura llamada TENT MAP.

Figura 4 .22 Tent Map circuito abierto, grfica entrada contra salida (TENT MAP)

La salida del TENT MAP est entre (0,1) Volts es necesario amplificarla 5 veces para que la seal este entre (0,5) Volts, como el convertidor Analgico a Digital es de 12 bits es mejor trabajar con la mxima amplitud posible en este caso es de 5V.

51

Figura 4 .23 Diagrama esquemtico para el mdulo AMP_2.

La Figura 4.23 muestra el circuito para amplificar la seal que viene del mdulo TENT MAP, es un amplificador operacional LM324, el primer operacional est configurado como seguidor, despus le sigue un amplificador no inversor donde la ganancia se ajusta por medio de VR1, y al final de nuevo se utiliza un seguidor para acoplar impedancias con el microcontrolador. El circuito impreso se muestra en la Figura 4.24 y la respuesta en la Figura 4.25.

Figura 4 .24 Circuito impreso correspondiente al modulo AMP_2.

52

Figura 4 .25 Respuesta AMP_2.

La calibracin y caracterizacin en circuito abierto esta ahora terminada y esto es muy importante porque no se puede trabajar en circuito cerrado sin antes haber calibrado el circuito en lazo abierto, debido a que no funcionaria pues arrojara datos errneos. Los resultados que se presentan a continuacin fueron obtenidos utilizando el circuito TENT MAP en lazo cerrado como se muestra en la Figura 4.1. Se muestran las grficas a partir del bloque AMP_1, como se ha presentado antes este circuito reduce la seal de 5 Volts pico-pico a 1 Volt pico-pico y su respuesta se observa en la Figura 4.26. La semilla se fija en 760 milivolts.

53

Figura 4 .26 Respuesta en lazo cerrado para el bloque AMP_1

Como se generan los nmeros de manera aleatoria la seal cambia de forma constantemente. La seal obtenida a partir de AMP_1 es la entrada al bloque TENT MAP, este consta de 3 partes importantes a, b, c las cuales se muestran en las figuras siguientes:

54

Figura 4 .27 Tent Map circuito cerrado, comparacin del punto A respecto de la entrada. Entrada color rojo, punto A color verde.

Figura 4 .28 Tent Map circuito cerrado, comparacin del punto B respecto de la entrada. Entrada color rojo, punto B color verde.

55

Figura 4 .29 Tent Map circuito cerrado, comparacin del punto C respecto de la entrada. Entrada color rojo, punto C color verde.

Figura 4 .30 Tent Map circuito cerrado, comparacin de la salida respecto de la entrada. Entrada color rojo, salida color verde.

56

En la Figura 4.30 se observa la entrada y la salida, es curioso ver que las dos seales son casi la misma solo que la salida que est en color verde tiene cierto desfasamiento. Como se vio en la Figura 5.21 la frecuencia de la seal de salida es el doble de la entrada. De estas dos seales se forma el TENT MAP, este resultado se muestra en la Figura 4.31.

Figura 4 .31 Tent Map circuito cerrado, grfica entrada contra salida (TENT MAP)

Tanto Y como X se tomaron en un intervalo de tiempo muy corto por lo tanto la casa de campaa de la Figura 4.31 est incompleta, adems; como son puntos es lgico que se vea de esa manera a diferencia de cuando se obtuvo el resultado en circuito abierto donde se ve la grfica completa puesto que la seal contiene ms puntos.

57

Figura 4 .32 Tent Map circuito cerrado, grfica roja salida Tent Map (entrada al AMP_2), grfica verde (salida AMP_2) entrada al Dspic.

Para lograr la retroalimentacin se amplifica la salida del TENT MAP a 5 volts, esta seal se observa en la Figura 4.32. El diseo de los diagramas esquemticos de cada una de las secciones de esta tesis se hizo utilizando el programa PCB Wizard 3.50 Professional Edition que es de fcil manejo, este programa tiene la capacidad de transformar los diagramas esquemticos en circuitos impresos por lo tanto se utiliz esta herramienta, algunos circuitos impresos se disearon en dos caras para facilitar conexiones adems de disearlas con un tamao suficiente para evitar confusiones. Todos los mdulos excepto el del DSPIC cuentan con entrada y salida de voltaje, esto ayuda a reducir la cantidad de cables en cada circuito, es decir a partir del mdulo de los DAC 0800 cuentan con opcin para alimentacin independiente y tienen un conector para que por medio de este se alimente el circuito consecutivo, en este conector tambin se incluye la seal de entrada o salida de la seal segn se utilice. La tarjeta TDS2000 de la compaa Tektronix, un osciloscopio digital TDS 2012 tambin de la compaa Tektronix y una computadora personal HP COMPAQ Pentium 4 fueron las herramientas necesarias para la adquisicin de los datos, en este caso las grficas.

58

CONCLUSIONES

El nuevo circuito electrnico propuesto se dise para generar el mapeo casa de campaa, teniendo como caracterstica su fcil implementacin, debido a que usa solamente componentes analgicos; como lo son amplificadores operacionales, comparadores, diodos y resistencias. Esto hablando solo del mdulo TENT MAP y para cuestiones de retroalimentacin fue necesaria una etapa digital que hizo la funcin de retencin y actualizacin de datos generados. El comportamiento experimental se prob y compar, contra el comportamiento numrico dado por el modelo matemtico del mapeo casa de campaa, donde; se obtuvieron los resultados esperados, el circuito mapeo casa de campaa reproduce todo el rango conocido del comportamiento. Sin embargo aunque estos son muy similares pueden variar en un proceso real debido a que las caractersticas de algunos componentes electrnicos no siempre son ideales. Esta es la principal desventaja que caracteriza a un sistema regido por la teora del caos, pequeos cambios en las condiciones iniciales generan grandes cambios en la salida del sistema y ms aun cuando se trabaja con componentes analgicos por la susceptibilidad al ruido; sin embargo, debido a las caractersticas de la funcin casa de campaa esto puede significar una gran ventaja si en vez de hablar de ruido hablamos de trminos forzadores, lo cual toma relevancia cuando se tiene un circuito autnomo, y se hace aun ms favorable si el inters se centra solo en la generacin de las secuencias por periodos cortos. Otra caracterstica importante tanto en un sistema modelado por computadora como en uno modelado fsicamente es que aun cuando las condiciones iniciales sean exactamente iguales la resolucin con la que se manejan los clculos afecta significativamente los resultados, ahora si se compara con algn fenmeno complejo solo se obtendr una idea de su comportamiento, no la descripcin exacta del mismo porque en un proceso real las condiciones estn cambiando constantemente, como un ejemplo tenemos las ecuaciones de Lorenz que describen el modelo climtico de la tierra y aunque realmente funcionan es muy difcil acertar en la prediccin del clima pero si nos da una idea de lo que va pasar , como por ejemplo la trayectoria que sigue un huracn. 59

Entonces dos paquetes de nmeros generados bajo la misma condicin inicial pero con distinta resolucin tomaran caminos distintos, adems una importante observacin encontrada es que un pequeo desajuste en los parmetros de control genera un desorden en todo el sistema y provoca que las secuencias generadas pierdan orden respecto a las generadas con el modelo terico, entonces para reducir esta complicacin es necesario emplear componentes de mucha calidad para tener una mejor precisin en sus caractersticas, esto por supuesto eleva el costo de la implementacin, pero el costo va de la mano del tipo de mtodo empleado. En un proceso como el utilizado en esta tesis resultara complicado tratar de sincronizar dos sistemas iguales para que trabajen en tiempo real; pero, existen avances en esta rea de la investigacin que lo hacen posible y representara una muy buena perspectiva para enmascarar seales en aplicaciones de comunicacin, a esta tcnica se le conoce como sincronizacin forzada. La tcnica de construccin es simple y la metodloga se puede extender a otros tipos de mapas, tales como los lineales a pedazos o mapas por tramos suaves, incluso podra tenerse un conjunto de ellas para realizar alguna aplicacin como en redes neuronales. Este proyecto queda abierto para otras aplicaciones no consideradas en este trabajo, el diseo no es nico lo cual significa que dependiendo de la aplicacin puede tener tantas modificaciones como sea posible. Existen muchos resultados tericos relacionados con el tema de mapeos ya sea continuos o discretos y en general la teora del caos abarca casi cualquier fenmeno fsico natural, biolgico e incluso social, economa, ingeniera, etc. Y cada vez es ms familiar la relacin que existe con todas las ramas de la ciencia moderna.

60

APNDICE A
MANUAL DE PROGRAMACIN Y CONSTRUCCIN DE PROYECTOS, UNA INTRODUCCIN UTILIZANDO LA FAMILIA DE MICROCONTROLADORES DSPIC30F DE MICROCHIP

A1.1 Introduccin
Facilitar las practicas a futuros estudiantes acerca de los microcontroladores de la familia DSPIC30F es la idea principal de este apartado, actualmente existen algunos libros que tratan sobre estos dispositivos, sin embargo es necesario contar primero con las bases necesarias para su entendimiento, como por ejemplo dominar el lenguaje de programacin en ensamblador y muchas veces esto resulta ser un gran obstculo para el autoaprendizaje, adems estos dispositivos son relativamente nuevos por lo tanto es difcil encontrar informacin que ayude a entender fcil y rpidamente el funcionamiento de estos dispositivos, este es un sencillo manual de construccin de pequeos proyectos utilizando microcontroladores DSPIC30F de microchip con programacin en C que es ms conocido para algunos.

A1.2 Prctica 1, Construccin de un sistema mnimo


Para comenzar con la familiarizacin con los microcontroladores de esta gama es necesario armar un circuito sencillo pero que facilitara su uso, programacin y configuracin, para lo cual es necesario tener el siguiente material: Cantidad 1 1 1 2 1 1 1 Descripcin Dspic familia 30f (ej. Dspic 30f4013) Resistencia de 10k Resistencia 1k Capacitor 33pf Cristal 4.0 MHz Led Protoboard

Tabla A1.1 Lista de material para el armado del sistema mnimo.

61

Las conexiones son como se muestra en la Figura A1.1, se utiliza un cristal de 4.0 MHz conectado entre los pines 13 (OSC1) y 14 (OSC2) con un capacitor de 33 pf en cada pin, los capacitores c1, c2, c3 y c4 son opcionales pero es recomendable ponerlos para evitar ruido que pueda provenir de la alimentacin que en este caso debe de ser de 5 volts, el pin 1 del micro va conectado a una resistencia de 10k la cual se conecta al voltaje de alimentacin y su respectivo capacitor opcional c7 supresor de ruido. Para poder visualizar el funcionamiento del sistema se conecta a la pata 19 (RD3) un led en serie con una resistencia de 1k.

Figura A1.1 Conexiones para un sistema mnimo.

62

La segunda parte del proyecto es la construccin del software es decir la programacin, sin embargo primero el sistema debe contar con un puerto de lectura y escritura el cual vara un poco dependiendo del tipo de programador que se va a utilizar, en este caso se utiliza el programador llamado MASTER PROG USB adquirido por internet de la empresa EDUTRONICA, el puerto de programacin se denomina ICSP por sus siglas en ingles que significa In Circuit Serial Programming, este permite que el PIC pueda ser programado desde el mismo circuito de aplicacin. En la Figura A1.2 se muestra el sistema mnimo con el puerto ICSP, este puerto ya est configurado en el programador por lo tanto solo es cuestin de conectarlo al circuito de aplicacin.

A1.3 Uso del puerto ICSP


Para programar por medio del ICSP se hace uso de 5 seales bsicas que poseen todos los microcontroladores de las familias 10Fxxx, 12Fxxx, 16Fxxxx, 18Fxxxx, 18FxxJxx, 24FJxxxx, dsPIC30Fxxxx y dsPIC33FJxxxx de Microchip, dichas seales son: PGD o ICSPDAT (Datos seriales que se escriben o leen del PIC) PGC o ICSPCLK (Reloj serial que controla la comunicacin con el PIC) MCLR o VPP (Voltaje de programacin para escribir o programar) VDD (Voltaje de 5V 3.3V de alimentacin) VSS (Tierra o GND) Todas las seales (a excepcin de VDD) deben ser generadas por el programador, la forma en cmo se conecta el ICSP al PIC se muestra en la Figura A1.3.

63

Figura A1.2 Sistema mnimo con conexin para puerto ICSP

64

Figura A1.3 Recomendacin para el uso del puerto ICSP

A1.4 Precauciones al usar el ICSP


Como se muestra en la Figura A1.3 las terminales PGD (ICSPDAT) Y PGC (ICSPCLK) se aslan del circuito de aplicacin por medio de resistencias, estas pueden tener un valor de 470 y 1k (dependiendo de la corriente de carga, esto es solo en el caso de que se estn utilizando en el circuito de aplicacin) si es posible es mejor desconectar estas dos terminales provisionalmente del circuito. Si se usa un botn de RESET, este se conecta en paralelo con el capacitor de de 0.1F. El voltaje VDD que provee el programador, slo puede soportar la pequea corriente que requiere el PIC, por lo tanto si se va usar el VDD nicamente se debe conectar el PIC (pueden conectarse otros perifricos como pantallas LCD, optoacopladores y LEDs, siempre y cuando la corriente total no sea mayor a 100mA), sin embargo se puede alimentar todo el circuito con una fuente externa y entonces se deja el VDD del programador sin conectar. NUNCA usar el VDD del programador y la alimentacin externa al mismo tiempo. 65

Los dispositivos de bajo voltaje (VDD = 3.3V), como las series 18FxxJxx, 24FJxxxx y 33FJxxxx requieren de un voltaje de alimentacin externa y deben ser programados por medio del puerto ICSP, usando todas las seales excepto VDD.

A1.5 El programador MASTER-PROG USB


El programador MASTER-PROG USB fue diseado para brindar un optimo desempeo y versatilidad de uso con el puerto USB para versiones 1.1 y 2.0, su controlador interno emplea tecnologa CMOS y por lo tanto deben tomarse ciertas precauciones al utilizar el MASTER-PROG USB, entre las cuales estn las siguientes: 1. Sujetar el programador de preferencia por sus esquinas y cuando no est en uso guardarlo en una bolsa antiesttica. 2. El puerto USB permite la conexin/desconexin de dispositivos sin apagar la PC, sin embargo, se debe evitar que el programador sea conectado y/o desconectado rpidamente, se deben dejar pasar al menos 10 segundos entre desconexiones para dejar que el operativo reconozca al dispositivo y no se produzcan errores o daos en el sistema. 3. Evitar conectar el PIC-Prog a la PC cuando tenga un pic de bajo voltaje insertado en las bases ZIF o conectado al puerto ICSP a menos que se est utilizando una alimentacin externa de 3.3V. 4. El MASTER-PROG USB (PIC-Prog) est preparado para poder intercambiar los PICs sin necesidad de ser desconectado del puerto, sin embargo muchas veces el chasis de la computadora carece de una buena conexin a tierra, la esttica puede producir daos en el programador o bien en el PIC por lo tanto se recomienda utilizar una pulsera antiesttica.

A1.6 Uso del MPLAB Y MPLAB C30 compiler


Para continuar con la segunda parte del proyecto es necesario tener instalado el MPLAB [15] de preferencia la ltima versin, para poder programar en C es importante instalar en MPLAB el compilador C30 [16], el programa y el compilador se pueden descargar desde la pagina Web de Microchip. Luego se crea un nuevo proyecto con el siguiente programa con el nombre que sea.

66

1. 2. 3. 4. 5. 6. 7. 8. 9.

/*Programa1.C*/ #include <p30f4013.h> //****************** Bits de configuracion ****************** _FOSC(CSW_FSCM_OFF & XT_PLL16); // XT con 16xPLL _FWDT(WDT_OFF); // Desabilita el watch-Dog _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_DIS); // Reset si viltage <2.0 Volts // espera 16ms al energizarse y // reset habilitado _FGS(CODE_PROT_OFF); // proteccion de codigo DESHABILITADA

10. //****************************************************** 11. int main(void); // Prototipo funcion main

12. //***************** programa principal ******************** 13. 14. 15. 16. int main(void){ TRISD=0x0000; LATDbits.LATD3=1; }

Cuando se tenga escrito el archivo, en la ventana del proyecto se le agrega el archivo a la carpeta Source Files. El siguiente paso es compilar el programa. Para ello se utiliza la opcin Build All, a menos que no existan errores en el programa veremos en la ventana de salida el mensaje BUILD SUCCEDED seguido de la fecha. Entonces ya tenemos la versin binaria del programa lista para cargarse al microcontrolador. Como ltimo paso conectamos el programador a la PC y ejecutamos el MASTER PROG, esperamos a que el programa detecte al programador, en la pestaa de Dispositivo seleccionamos la familia dsPIC 30 y aparecer el mensaje dispositivo encontrado. Ejecutar la opcin Abrir Hex en la barra de herramientas para buscar el archivo con extensin .Hex con el nombre del proyecto creado, luego con la opcin ESCRIBIR grabamos nuestro programa al microcontrolador, el cual inmediatamente comenzara a ejecutarse.

67

Explicacin del programa


El cdigo fuente que se muestra en el paso 9 contiene nmeros de lnea para facilitar su explicacin: En la lnea 2 se incluye el archivo de cabecera para el dsPIC 30F4013. En la lnea 4 comienza la configuracin del microcontrolador: La funcin FOSC() configura el oscilador: o CSW_FSCM_OFF (Clock Switch Fail Safe Clock Monitor). Deshabilita el cambio a oscilador interno cuando falle el externo. o XT_PLL16. Define un oscilador XT con un multiplicador igual a 16. Por ejemplo si el cristal es de 4 Mhz se multiplica por 16 para tener una frecuencia de oscilacin de 64Mhz. La funcin _FWDT() es para encender o apagar el Watch Dog. La funcin _FBORPOR() es para establecer algunas opciones de requerimientos elctricos: o PBOR ON u OFF. Activa o desactiva la opcin de Power-on reset y Brownout reset. Power-on reset genera un reset cuando se energiza el microcontrolador. Para ms informacin consultar en las hojas de datos de la familia 30f la seccin de reset. o BORV. Establece el voltaje al que se genera un Brown-out reset cuando el voltaje de alimentacin cae por debajo de l. o PWRT_16. Establece el tiempo que el microcontrolador va esperar para empezar a funcionar despus de ser energizado. En este caso es de 16 milisegundos, es para esperar a que el voltaje de alimentacin se estabilice. o MCLR_DIS. Deshabilita el Master Clear Reset. La funcin FGS () habilita o deshabilita la proteccin por cdigo, si se habilita no se puede leer ni escribir el microcontrolador. En la lnea 16 comienza el programa principal. En la lnea 17 se configura el puerto D como salida. En la lnea 18 se pone un uno lgico en el bit RD3 (pin 19).

En la lnea 20 termina el programa.

68

Es importante mencionar que el programa se reinicia automticamente despus de terminar por lo tanto aunque no es visible al colocar un LED este prende y apaga, para observar mejor es necesario ver la seal con un osciloscopio, hasta aqu abarca la Prctica 1.

A1.7 Prctica 2, los puertos de entrada y salida


El objetivo de esta prctica es experimentar con los puertos de E/S, se utiliza un pushbutton para prender y apagar un led. El armado del circuito es como se muestra en la Figura A1.5. Ver Seccin 7.0 de las hojas de datos del dsPIC. El led se conecta a la patita 35 (RB12) a travs de una resistencia de 1K y el push -button se conecta a la patita 36 (RB11) y a +V, y la otra terminal se conecta a tierra. Todos los puertos tienen tres registros asociados, uno de configuracin de entrada o salida, el TRISx, si cualquier bit del registro TRIS es puesto a 0 entonces se configura como salida, si el bit se pone en 1 corresponde a una entrada. Uno de entrada, el PORTx y uno de salida, el LATx. Adems el puerto B tiene otro registro de configuracin, el ADPCFG que se usa para configurar las entradas analgicas o digitales, esto debido a que el puerto B esta compartido con el convertidor analgico digital. Si cualquier bit del registro ADPCFG es puesto a 1, la patita asociada a ese bit es una entrada digital, en cambio si el bit es puesto a 0 entonces es una entrada analgica. Cada bit del ADPCFG despus de un reset contiene un cero.

69

Figura A1.5 Circuito para la prctica nmero dos.

70

Programa:

1. 2. 3. 4. 5. 6. 7. 8. 9.

/*programa2.c*/ #include<p30f4013.h> //************************** BITS DE CONFIGURACION ********************************* _FOSC(CSW_FSCM_OFF & XT_PLL16); //XT con 16PLL _FWDT(WDT_OFF); //Deshabilita el watch_dog _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_DIS); _FGS(CODE_PROT_OFF); // proteccion de codigo DESHABILITADA //********************************************************************************** int main(void); // Prototipo funcion main

10. //***************** programa principal ******************** 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. int main (void){ TRISD=0x0000; LATDbits.LATD3=1; TRISB = 0xEFFF; ADPCFG = 0xFFFF; while(1) { if(PORTBbits.RB11 == 0) LATBbits.LATB12 = 0; else LATBbits.LATB12 = 1; } }

//1110 1111 1111 1111 //Todas entradas digitales

Explicacin del programa En la lnea 11 comienza el programa principal, en la lnea 12 se configura todo el puerto D como salida, en la lnea 13 se pone el bit RD3 (pin 19) como un 1 lgico para encender el led. En la lnea 14 y 15 se configura el puerto B para que el bit RB12 sea salida y todos los dems bits sean entradas digitales. En la lnea 16 se crea un ciclo infinito, si el push-button no est presionado RB11 lee +V o sea un uno lgico y el led conectado en la patita que corresponde a RB12 (pin 35) permanece encendido.

71

Si el push-button es presionado, entonces +V se va atierra a travs de la resistencia y RB11 lee un cero lgico por lo tanto se apaga el led en RB12.

A1.8 Prctica 3, el temporizador (Timer)


Esta prctica tiene como objetivo entrenarse en el uso del temporizador (Timer) ver seccin 9.0 de las hojas de datos del dsPIC y la seccin 12.0 del manual de referencia DS70059D para entender la configuracin del Timer, se utiliza el mismo circuito de la practica nmero dos Figura A1.5.

Primero revisamos unos sencillos conceptos. Fosc = Frecuencia de oscilacin. En este caso se utiliza un cristal de 4Mhz y un multiplicador de 16, se obtiene Fosc = 4*16 = 64Mhz. Fcy = Frecuencia de instruccin. El dsPIC realiza una instruccin cada 4 Fosc, por lo tanto, el Fcy = Fosc/4 = 16Mhz. Tfosc = Periodo de oscilacin. Tfosc = 1/Fosc = 1/64Mhz = 15.625ns. Tcy = 1/Fcy = 1/16Mhz = 62.5ns. Esto significa que el dsPIC con un cristal de 4Mhz y un multiplicador de frecuencia de 16, es capaz de realizar 16 millones de instrucciones por segundo. O dicho de otra manera es capaz de realizar una instruccin cada 62.5 nanosegundos. El dsPIC cuenta con 3 Timers y se llaman: Timer 1, Timer2, Timer 3. En esta prctica se utiliza el Timer 1. El timer 1 es de 16 bit, eso significa que puede contar desde 0 a (2^16)-1. Cada cuenta tarda un Tcy, por lo tanto, contar de 0 a (2^16)-1 tarda 0.001,023 segundos.

72

Una de las funciones del timer es que el microcontrolador espere un cierto tiempo (retardo o tiempo muerto) antes de realizar alguna accin. Para poder crear retardos ms largos se usa un prescaler, que es un divisor de frecuencia. Ejemplo A1.1 Calcular un retardo de 120 milisegundos Fcy = 16, 000, 000 Con un prescaler de 256 Fcy/256 = 65,500 Esto significa que el timer hace 62,500 cuentas en un segundo, usando un prescaler de 256 100 ms 62500 = x 120 x=

Esto significa que el timer realiza 7500 cuentas en 120 milisegundos. Algoritmo: generar una onda cuadrada que dure 120 milisegundos entregando un uno lgico y 120 milisegundos estregando un cero lgico.

62500 120 = 7500 1000

73

Programa:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

/*programa3.c*/ #include <p30f4013.h> //*********************** Bits de configuracion ***************** _FOSC(CSW_FSCM_OFF & XT_PLL16); // XT con 16xPLL _FWDT(WDT_OFF); // Desabilita el watch-Dog _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_DIS); // Reset si viltage <2.0 Volts // espera 16ms al energizarse y // reset habilitado _FGS(CODE_PROT_OFF); // proteccion de codigo DESHABILITADA #define fcy 16000000

11. //********************************************************** 12. void retardo120ms(void); // prototipo de la funcion 13. int main(void); // Prototipo funcion main 14. 15. //******************** programa principal ********************** 16. 17. 18. 19. 20. 21. 22. 23. 24. int main(void){ TRISD=0x0000; while(1){ LATDbits.LATD3=1; retardo120ms(); LATDbits.LATD3=0; retardo120ms(); } }

25. //********************** Configura retardo ********************** 26. void retardo120ms(void){ 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. /*Asegurarse que el timer 1 este en estado de reset*/ T1CON=0; TMR1=0; IPC0bits.T1IP=1; /* set timer 1 period register*/ PR1=0x1D4C; IFS0bits.T1IF=0; IEC0bits.T1IE=0; T1CON=0x8030; while(IFS0bits.T1IF==0); }

// clear the timer interrupt status flags // Disable timer1 interrupts // configura T1CON=1000000000110000

74

Explicacin del programa


El programa se basa en la funcin llamada retardo120ms la cual genera el retardo, es utilizada en la funcin principal dentro de un ciclo while lo cual hace que se genere la onda cuadrada. Es importante mencionar que el Timer es un modulo que trabaja en paralelo al CPU. En este ejemplo el CPU se queda esperando a que la bandera T1IF cambie su estado de cero a uno para salir del ciclo while. En otras palabras la condicin del ciclo va a ser verdadera mientras el timer no termine de contar, al final de la cuenta la bandera T1IF cambia de cero a uno y la condicin del ciclo se vuelve falsa, el ciclo termina y se regresa de la funcin al programa principal.

A1.9 Prctica 4, el UART


El UART es un dispositivo ampliamente utilizado para la comunicacin serial asncrona. En esta prctica se interconectan dos dsPIC 30f4013 a travs del modulo UART [17]. Ver Captulo 16.0 de las hojas de datos del dsPIC. Construir dos circuitos como el que se muestra en la Figura A1.6 cada uno en distinto Protoboard, los LEDs se conectan en cada dsPIC a los puertos RB1 Y RB2, el push-button se conecta a RF0. El Tx de un microcontrolador se conecta al Rx del otro microcontrolador, en ambos chips se utiliza el UART 1.

El algoritmo:
Cuando en un microcontrolador se presione el push-button, se enva un 1 a travs del UART 1, y si no est presionado el push-button se enva un 2. Cuando un microcontrolador reciba un byte, si este byte es un 1 prende el LED en RB1 y apaga el LED en RB2. Cuando un microcontrolador reciba un byte, si este byte es un 2 apaga el LED en RB1 y prende el LED en RB2.

75

Figura A1.6 Conexiones para usar el UART

76

La configuracin del UART


El microcontrolador posee dos UARTS, en esta prctica solo se utiliza el UART 1. Velocidad de transmisin/recepcin (Baudrate) El UART tiene un generador Baud rate que es programado con el registro U1BRG, el U1BRG es un registro de 16 bits, en este registro se coloca un numero que es calculado en base a la velocidad de transmisin/recepcin deseada y se hace con la siguiente frmula: (16 + 1)

1 =

16

Un estndar en velocidad es el Baud rate = 9600, teniendo el Fcy = 16MHz 16 1 = 104.166 1 = 103.166 16 9600

1 = obtenido es: =

como no se pueden poner decimales entonces U1BRG = 103. Esto genera un error, el error ( )

Calcularemos el Baud rate obtenido

16 = 9615.38 (16 (103 + 1))

9615.38 9600 = 0.160256% 9600 77

Otra manera de calcular el nmero a poner en U1BRG es usando las tablas que se encuentran en las hojas de datos del dsPIC, de las cuales se ha extrado un segmento y se puede ver en la Tabla A1.7

Tabla A1.7 UART Baud rates

En las tablas completas se puede ver que con algunos Fcy se puede lograr cero error, pero a cambio se reducen los MIPS. En aplicaciones en que es importante tener velocidades de transmisin exactas, y no es critico la velocidad de procesamiento se puede usar un Fcy para cero error en Baud rate. Entonces U1BRG = 103; // Baud rate & 16 Mhz Fcy Otro registro de configuracin para el modulo UART es el U1MODE y tiene que ver con el modo de transmisin, el tipo de transmisin es 8 bits no paridad y un bit de parada y se le conoce como N-8-1. El bit 15 del registro U1MODE habilita el UART, eso significa que los otros dispositivos que comparten las mismas patitas quedan deshabilitados. Los bits 1 al 2 configuran el tamao en bits del byte y la paridad, como el byte lo necesitamos de 8 bits y sin paridad, a estos bits le asignamos un cero. Por ltimo necesitamos un bit de alto, que se define en el bit cero del U1MODE.

78

El U1MODE queda de la siguiente manera:


U1MODE = 0x8000; // se habilita el UART N-8-1

Otra manera de configurarlo es bit a bit, de la siguiente manera:


U1MODEbits.UARTEN = 1; U1MODEbits.PDSEL = 0; U1MODEbits.SETSEL= 0; // se habilita el UART // 8 bit sin paridad // 1 bit de stop

Hasta el momento solo est configurado y habilitado el UART, pero es necesario que si tiene datos se ponga a transmitir. El UART empieza a transmitir cuando se le asigna un 1 a UTXEN (bit 10) del registro U1STA
U1STAbits.UTXEN = 1; // se habilita la transmisin

Con esto termina la configuracin.

79

Programa:
1. 2. 3. 4. 5. 6. 7. 8. 9. /* primera practica con el uart del dspic30f4013*/ #include <p30f4013.h> //****************** Bits de configuracion ***************** _FOSC(CSW_FSCM_OFF & XT_PLL16); // XT con 16xPLL _FWDT(WDT_OFF); // Desabilita el watch-Dog _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_DIS); // Reset si voltage <2.0 Volts // espera 16ms al energizarse y // reset habilitado _FGS(CODE_PROT_OFF); // proteccion de codigo DESHABILITADA

10. #define fcy 16000000 11. int configura_UART1(); 12. int main (void); 13. int main (void){ 14. 15. 16. 17. char c1; ADPCFG = 0xFFFF; TRISB=0X0000; TRISF=0XFFFF;

// todas salidas // todas entradas

18. configura_UART1(); 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. while (1){ if(U1STAbits.URXDA==1){ c1=U1RXREG; if (c1==1){ LATBbits.LATB1=1; LATBbits.LATB2=0; } if (c1==2){ LATBbits.LATB1=0; LATBbits.LATB2=1; } } if (PORTFbits.RF0==0) if(U1STAbits.UTXBF==0) U1TXREG=1; if (PORTFbits.RF0==1) if(U1STAbits.UTXBF==0) U1TXREG=2; } } // hay datos en el buffer de Rx? // si es verdad lee el dato // si es un 1 // prende RB1 // apaga RB2 // si es un 2 // apaga RB1 // prende RB2 // si el PB esta presionado // si el buffer de Tx no esta lleno // pone un 1 en el buffer de Tx // si el PB es 1 // si hay espacio en el buffer de Tx // pone un 2 en el buffer de Tx

39. int configura_UART1(){ 40. 41. 42. 43. 44. 45. U1BRG = 103; U1STA = 0; U1MODE = 0x8000; U1STAbits.UTXEN = 1; return 0; } // Baud rate 9600 & 16Mhz Fcy // limpiar registro de control y status // se habilita el UART N-8-1 // se habilita la transmision

80

A1.10 Prctica 5, Uso del convertidor analgico digital


El 30F4013 tiene un DAC de 12 bits, este convertidor est orientado a precisin ms que a velocidad. En la conversin analgica-digital, el convertidor distingue dos tiempos. El tiempo de muestreo que es el tiempo que dura el convertidor conectado a la seal, y el tiempo de conversin, que es el tiempo que le toma al convertidor transformar la seal muestreada a digital. Existe una buena cantidad de formas de hacer la conversin. En este ejemplo el proceso es totalmente manual: Muestreo de una sola entrada analgica Inicio del muestreo manual Duracin del muestreo manual Inicio de la conversin manual La referencia positiva y negativa se toma de la alimentacin

Primero definimos como va iniciar el muestreo y tenemos dos opciones, cuando ponemos el bit SAMP = 1 o que el muestreo inicie inmediatamente despus de que la conversin finaliza. Esta configuracin se define con el bit ASAM del registro de configuracin ADCON1. Bit 2 ASAM: bit de muestreo automtico de A/D 1 = El muestreo comienza inmediatamente despus de que la ultima conversin se ha Completado. El bit SAMP automticamente se pone a uno. 0 = El muestreo comienza hasta que el programa ponga el bit SAMP a uno. Definiremos al bit SAMP como control de inicio del muestreo.
ADCON1bits.ASM = 0; // el muestreo inicia cuando el bit SAMP == 1.

Ahora definimos de qu manera finaliza el muestreo e inicia la conversin. El registro ADCON1, contiene un conjunto de bits, que se llaman SSRC, estos bits se usan para configurar la fuente del inicio de la conversin. En seguida tenemos las opciones de estos bits.

81

Bit 7-5 SSRC<2:0>: bits de seleccin de fuente de inicio de la conversin. 111 = contador interno termina muestreo y comienza la conversin (auto conversin) 110 = reservado 101 = reservado 100 = reservado 011 = intervalo PWM para control de motores termina el muestreo y comienza la Conversin. 010 = comparacin del timer 3 termina el muestreo y comienza la conversin 001 = transicin activa en el pin INT0 termina el muestreo y comienza la conversin 000 = limpiando el bit SAMP termina el muestreo y comienza la conversin Elegimos el bit SAMP como fuente de disparo de fin de periodo de muestreo e inicio de periodo de conversin.
ADCON1bits.SSRC = 0; // cuando el bit SAMP == 0 termina muestreo e inicia conversin

Se tienen 2 conjuntos de entradas, MUXA Y MUXB, para esta prctica se utiliza el MUXA y se configura usando el registro ADCHS. Bit 4 CH0NA: determina la entrada negativa del canal 0 en el MUXA. 1 = Entrada negativa del canal 0 es AN1 0 = Entrada negativa del canal 0 es VREFEstablecemos como entrada negativa a VREF- en el MUXA
ADCHS1bits.CHONA = 0; // la entrada negativa del canal es VREF-

En seguida determinamos la entrada positiva del MUXA Bit 3-0 CH0NA<3:0>: determina la entrada positiva del canal 0 en el MUXA 1111 = Entrada positiva del canal 0 es AN15 1110 = Entrada positiva del canal 0 es AN14 .... 0001 = Entrada positiva del canal 0 es AN1 0000 = Entrada positiva del canal 0 es AN0 82

Establecemos como entrada positiva la patita RB8/AN8


ADCHSbits.CH0SA = 8; // entrada positiva del canal 0 e AN8

Se pueden seleccionar un conjunto de 16 entradas a muestrear de manera secuencial (scanning), para ello se utiliza el registro ADCSSL. En esta prctica no se utiliza el scan entonces se pone este registro en cero. Adems de determinar cero entradas secuenciales, tambin deshabilitamos el muestreo secuencial. Ahora se elegirn cuales son los voltajes de referencia positiva y negativa Bit 15-13vVCFG<2:0>: bits de configuracin del voltaje de referencia

Se ponen como referencia positiva AVDD y como referencia negativa AVSS, que son las alimentaciones del modulo ADC.
ADCON2bits.VCFG = 0; // referencia positiva AVDD y negativa AVSS

Los resultados de la conversin se guardan en el registro ADCBUF, que tiene 16 palabras (16 bits). Las palabras se llaman ADCBUF0, ADCBUF1 ADCBUF15. Este registro para algunas aplicaciones muy particulares se puede dividir en dos registros de 8 palabras. En esta aplicacin se utiliza el registro sin divisin.
ADCON2bits.BUFM = 0; //configurado buffer de 16 palabras

El ADC genera una interrupcin cada n conversiones. Para especificar n, se utiliza un conjunto de bits SMPI en ADCON2. Cuando se necesita que el resultado se guarde en la primera

83

palabra (ADCBUF0), luego la segunda conversin en ADCBUF1 hasta ADCBUF(n-1). Para ir llenando cada palabra se debe generar una interrupcin cada n conversiones. Establecemos que se genere una interrupcin despus de cada conversin, de esta manera el resultado se guardara solo en ADCBUF0.
ADCON2bits.SMPI = 0; // despus de una conversin se genera una interrupcin

Como se tienen dos conjuntos de entradas, el MUXA y MUXB, se puede elegir que se tomen muestras en A y luego en B, esto se hace con el bit ALTS. Solo se est utilizando el MUXA, es necesario deshabilitar el muestreo alternante.
ADCON2bits.ALTS = 0; // se muestrea MUXA

Con esto se termina de configurar el registro ADCON1. Se puede observar que para muestreo manual solamente se usa una entrada analgica, adems todo ADCON1 es cero, entonces si lo ponemos a cero no es necesario configurar cada conjunto de bits. El ADC usa un reloj que puede ser derivado del reloj del sistema o del reloj interno del chip, para elegirlo se usa el bit ADRC localizado en el registro de configuracin ADCON3. Se configura para que el ADC utilice el reloj derivado del sistema.
ADCON3bits.ADRC = 0; // reloj del ADC derivado del sistema

El periodo del reloj Tad del ADC, tiene un mnimo, Tad = 667 nanosegundos, al definir el Tad debemos tener mucho cuidado de cumplir con el limite. La manera correcta de calcular el Tad mnimo permitido es con la siguiente ecuacin: 1

= 2 84

Ejemplo: Tad = 667ns Tcy = 33.33ns ADCS= (2*(667/33.33))-1 = 39 Por lo tanto en ADCS se pone un 39 Ejemplo 2: Tad = 667ns Tcy = 62.5 (Fosc = 64Mhz) ADCS = (2*(667/62.5))-1 = 20.34, redondeando queda en 21 Este Tad calculado es el mnimo que cumple con la especificacin.
ADCON3bits.ADCS = 21; // Tad mnimo

El Registro ADCON3 contiene el conjunto de bits SAMC, usados para especificar el tiempo que dura el muestreo para la automatizacin de este proceso, pero en esta prctica es manual por lo tanto no se utilizan.

85

Construccin del circuito:

Figura A1.8 Circuito convertidor analgico-digital

86

En la Figura A1.8 se muestra el diagrama para el circuito convertidor anlogo-digital, se puede observar que es prcticamente el sistema mnimo de siempre solo cambian las conexiones de los LEDs, la parte del circuito que dice MODULO A/D se conecta al circuito de la Figura A1.9 que corresponde a un convertidor digital-analgico, esto nos permite regresar la seal analgica muestreada por el pic a su forma original, de esta manera podemos observar el funcionamiento del mismo. Para mayor informacin sobre el DAC0800 ver el Captulo 2 de esta tesis, para probar el funcionamiento del convertidor A/D se puede muestrear una seal de la forma que sea, proveniente de un generador de funciones con una amplitud de 5V pico-pico positivos o bien con un potencimetro lineal hacer variar un voltaje de entre 0-5V. Utilizando un osciloscopio observar la seal original y la seal reconstruida por el convertidor D/A la cual debe ser idntica, se puede ajustar el voltaje de referencia del convertidor D/A para igualar la seal reconstruida. El programa: En este programa se utilizan 3 funciones: una para generar un retardo en milisegundos, otra para generar un retardo en microsegundos, y la tercera para configurar el modulo A/D. la configuracin es como se explico anteriormente, en cada conversin se genera una interrupcin, y en cada vez se est leyendo el buffer de resultados (ADCBUF0) el cual est conformado de la siguiente forma. MSB LSB

Los bits d00-d04 se mandan al puerto D, los bits d05-d11 se mandan al puerto F. Esto se hace utilizando operaciones de corrimiento.

87

Figura A1.9. Convertidor digital-analgico 12 bits

88

Programa:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

#include <p30f4013.h> #include <math.h> #include <stdio.h> #include <string.h> //************************** Bits de configuracion ************************** _FOSC(CSW_FSCM_OFF & XT_PLL16); // XT con 16xPLL _FWDT(WDT_OFF); // Desabilita el watch-Dog _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_DIS); // Reset si viltage <2.0 Volts // espera 16ms al energizarse y // reset habilitado _FGS(CODE_PROT_OFF); // proteccion de codigo DESHABILITADA

12. //********** *************PROTOTIPO DE FUNCIONES *********************** 13. #define fcy 16000000 14. 15. 16. 17. int main (void); void retardo_ms(unsigned int ms); void retardo_us(unsigned int us); void adc_ini(void);

18. //*********************** PROGRAMA PRINCIPAL ************************** 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. int main (void){ unsigned int ADCValue=0,v0,v1,v2,v3,v4,v5; unsigned int c=0x0FE0; unsigned int d=0x000F; unsigned int e=0x0010; TRISD=0x0000; TRISF=0x0000; TRISB=0x0102; ADPCFG=0xFEFD; retardo_ms(2000); LATB=0x0004; retardo_ms(2000); LATB=0x000C; retardo_ms(2000); retardo_ms(2000); LATB=0x0004; retardo_ms(2000); LATB=0x000C; // pueto D como salida // pueto F como salida // RB8 entrada // entrada analogica RB8 // prende led RB2 // prende led RB3 // apaga led RB3 // prende led RB3 // Inicializa DAC en 3231 Vo = 3.8 V Y // entrada al tent map Vin = 0.760 milivolts // retardos de inicalizacion ADC

37. LATF=0x0064; 38. LATD=0x001F; 39. retardo_ms(2000); 40. retardo_ms(2000); 41. adc_ini(); 42. ADCON1bits.ADON=1;

// Prende ADC

89

43. while(1){ 44. ADCON1bits.SAMP = 1; 45. retardo_us(1); 46. LATB=0x001C; 47. ADCON1bits.SAMP = 0; 48. retardo_us(1000); 49. retardo_ms(10); 50. while (!ADCON1bits.DONE); 51. ADCValue = ADCBUF0; 52. v0=ADCValue; 53. v1=v0&c; 54. 55. v2=v1>>5; 56. LATF=v2; 57. v3=v0&d; 58. 59. LATD=v3; 60. v4=v0&e; 61. v5=v4>>4; 62. LATDbits.LATD8=v5; 63. } 64. } // start sampling ... // enciende led RB4 // start Converting // conversion done? // yes then get ADC value // deja pasar los ultimos // 7 bits mas significativos // envia los 7 bits MSB puerto F // deja pasar primeros // 5 bits menos significativos // envia al puerto D 5 bits LSB

// repeat

65. // ******************** Configura el modulo A/D *********************** 66. void adc_ini(void){ 67. TRISB=0x0102; // RB8 entrada 68. ADPCFG=0xFEFD; // entrada analogica RB8 69. 70. ADCON1bits.ASAM=0; 71. // al usar el bit SAMP 72. ADCON1bits.SSRC=0; 73. // y comienza la conversion 74. 75. ADCHSbits.CH0NA=0; 76. ADCHSbits.CH0SA=8; 77. 78. ADCSSL=0; //ADCSSL=0 // No hay entradas para muetreo secuencial //ADCHS=0X0008; // Entrada negativa del canl 0 es VREF// Entrada POSITIVA del canl 0 es RB8/AN8 //ADCON1=0x0000; // El muestreo inicia de forma manual // contador interno finaliza muestreo

90

79. 80. ADCON2bits.VCFG=0; 81. ADCON2bits.CSCNA=0; 82. ADCON2bits.SMPI=0; 83. ADCON2bits.BUFM=0; 84. ADCON2bits.ALTS=0; 85.

//ADCON2= // Referencia positiva=AVDD; referencia negativa=AVSS. // Muestreo secuencial scan deshabilitado // Despues de una conversion se genera una interrupcion // *Configurado como bufer de 16 palabras* // Solo se muetra el MUXA.

//ADCON3= // El reloj del ADC es derivado del reloj del sistema // Tad=(21+1)*0.5 Tad=11 tcy=687.5

86. ADCON3bits.ADRC=0; 87. ADCON3bits.ADCS=21; 88. }

89. // *************** Configura retardo en milisegundos ********************** 90. void retardo_ms(unsigned int ms){ 91. unsigned int periodo=0; 92. /* ensure timer 1 is in rest state */

93. T1CON=0; 94. TMR1=0; 95. IPC0bits.T1IP=1; 96. periodo=((fcy/256)*ms)/1000; 97. PR1=periodo; // Set Timer 1 period register 98. IFS0bits.T1IF=0; // Clear the timer 1 interrupt status flag 99. IEC0bits.T1IE=0; // Disable Timer 1 interrupts 100. T1CON=0x8030; // Configura T1CON=1000000000110000 101. while(IFS0bits.T1IF==0); 102. } 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. // ******* ******* Configura retardo en microsegundos ****************** void retardo_us(unsigned int us){ unsigned int periodo=0; /* ensure timer 1 is in rest state */ T1CON=0; TMR1=0; IPC0bits.T1IP=1; periodo=(fcy*us)/1000000; PR1=periodo; // Set Timer 1 period register IFS0bits.T1IF=0; // Clear the timer 1 interrupt status flag IEC0bits.T1IE=0; // Disable Timer 1 interrupts T1CON=0x8000; // Configura T1CON=1000000000110000 while(IFS0bits.T1IF==0); }

91

El buffer de resultados nos proporciona la informacin en 16 bits de los cuales los ltimos 4 se leen como 0 lgico pero como no los necesitamos no es necesario tomarlos en cuenta. En el captulo 4 se exponen los resultados de esta prctica, se utiliza este programa en la tesis para generar el TENT MAP, en esta prctica la inicializacin (semilla) del DAC no tiene importancia, la semilla tomo relevancia solo en circuito cerrado, de ah surge la aplicacin. Se puede deshabilitar las lneas 51-58. De otra manera al correr el programa en el osciloscopio se ver una seal DC de aproximadamente 3.8 V durante 10 segundos y despus veremos el resultado de la conversin en la salida de los convertidores DAC.

92

BIBLIOGRAFA

[1] Joseph Emerson, Pseudo-Random Operators: Theory and Applications, Quantum Communication, Measurement and Computing, AIP., Vol. 7, pp. 139-142, 2004. [2] Mario Stipcevic, Fast nondeterministic random bit generator based on weakly correlated physical events, Rev. Sci. Instrum.,Vol. 75, pp.4442-4449, 2004. [3] R.M. May, Simple mathematical models with very complicated dynamics, Nature, vol. 261, pp. 459-467, 1976. [4] S.N. Elaydi, Discrete Chaos, Chapman and Hall/CRC Press, 2000 [5] H. Tanaka, S. Sato and K. Nakajima, Integrated circuits of map chaos generators, Analog Integrated Circuits and Signal Processing, vol. 25, pp. 329-335, 2000. [6] M. Suneel, Electronic circuit realization of the logistic map, Sadhana, vol. 31, pp. 69-78, 2006. [7] J.N. Blakely, M.B.Eskridge and N.J. Corron, A simple Lorenz circuit and its radio frequency implementation, Chaso, vol. 17, pp. 023112, 2007. [8] Hojas de datos para el amplificador operacional LM324. http://www.datasheetcatalog.org/datasheets/150/61350_DS.pdf [9] Hojas de datos para el microcontrolador dsPIC 30F4013. http://ww1.microchip.com/downloads/en/DeviceDoc/70138F.pdf [10] Hojas de datos para el IC DAC0800. http://www.datasheetcatalog.org/datasheet/nationalsemiconductor/DS005686.PDF [11] S.J. Orfanidis, Optimum signal processing, 2nd Edition, Sophocles J. Orfanidis, 2007. [12] M.E. Yalcin, J.A.K. Suykens, and J. Vandewalle, Experimental confirmation of 3- and 5-scroll attractors from a generalized Chuas circuit, IEEE Trans. Circuits Syst. I: Fundam. Theory Appl., vol. 47, pp. 425-432, 2000. [13] Section 18. 12-bit A/D Converter. http://ww1.microchip.com/downloads/en/DeviceDoc/70065D.pdf

93

[14] Hojas de datos para el amplificador operacional OP07CN. http://www.datasheetcatalog.org/datasheet/stmicroelectronics/2184.pdf [15] Direccin de internet para descargar el programa MPLAB. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName= en019469&part=SW007002 [16] Direccin de internet para descargar el compilador C MPLABC30. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName= en023073 [17] Section 19. UART. http://ww1.microchip.com/downloads/en/DeviceDoc/Section%2019.%2070066c.pdf [18] http://www.encuentrosmultidisciplinares.org/Revistan%C2%BA7/Seminario%20Teor%C3%ADa%2 0del%20Caos%201.pdf

94

Das könnte Ihnen auch gefallen