INSTITUTO POLITÉCNICO NACIONAL · 2017-05-27 · El primer multiplicador integrado en un circuito...

68

Transcript of INSTITUTO POLITÉCNICO NACIONAL · 2017-05-27 · El primer multiplicador integrado en un circuito...

  • I

    INSTITUTO POLITÉCNICO NACIONAL

    ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

    UNIDAD CULHUACÁN

    DISEÑO DE UN GENERADOR DE SEÑALES CON UN DSP Y UNA

    FUENTE DE VOLTAJE DIGITAL

    T E S I S

    QUE PARA OBTENER EL TÍTULO DE INGENIERO EN COMUNICACIONES Y

    ELECTRÓNICA.

    PRESENTA:

    CARLOS DANIEL VÁZQUEZ ROSAS.

    ASESORES:

    ING. Víctor Alejandro González Huitrón

    M en C. Héctor Becerril Mendoza

    MÉXICO D.F. MAYO 2014

  • II

    Agradecimientos.

    Agradezco a todos los que hicieron esto posible.

  • III

    ÍNDICE GENERAL

    Listado de figuras y tablas ............................................................................................... V

    Acrónimos ..................................................................................................................... VII

    Introducción ................................................................................................................. VIII

    Objetivos ........................................................................................................................ IX

    Justificación ..................................................................................................................... X

    Planteamiento del problema .......................................................................................... XII

    CAPÍTULO 1. ESTADO DEL ARTE .............................................................................. 1

    1.1 Historia del DSP ..................................................................................................... 2

    1.2 DSP y su aplicación ............................................................................................... 3

    1.3 Primeras fuentes de alimentación ........................................................................... 4

    CAPÍTULO 2. MARCO TEÓRICO ................................................................................. 7

    2.1 Fuentes de voltaje ................................................................................................... 8

    2.2 Multiplexores analógicos ....................................................................................... 9

    2.2.1 Estructura y utilización .................................................................................... 9

    2.2.2 Parámetros característicos ............................................................................. 10

    2.2.3 Resistencia de los interrumptores .................................................................. 11

    2.3 Generador de señales ............................................................................................ 12

    2.4 Osciloscopio ......................................................................................................... 14

    2.5 DSP ...................................................................................................................... 16

    2.6 Procesador Digital de Señales TMS320C6713 .................................................... 17

    2.7 Code Composer Studio (CCS) ............................................................................. 19

  • IV

    CAPÍTULO 3. IMPLEMENTACIÓN ............................................................................ 22

    3.1 Fuente de voltaje programable ............................................................................. 23

    3.1.1 Arreglo en base a transistores ....................................................................... 25

    3.1.2 Arreglo en base a un potenciómetro digital .................................................. 26

    3.1.3 Arreglo en base a un multiplexor analógico ................................................ 28

    3.1.4 Módulos de la fuente ................................................................................... 29

    3.1.5 Interfaz Pic de la fuente ................................................................................ 30

    3.2 Generador de funciones ........................................................................................ 31

    3.2.1 Generador de señal senoidal de 8 puntos...................................................... 31

    3.2.1.1 Configuración del CCS ............................................................................ 32

    3.2.1.2 Desarrollo de aplicaciones en CCS .......................................................... 32

    3.2.1.3 Configuración de parámetros para la construcción de un proyecto en CCS ................................................................................................................................ 33

    3.2.1.4 Creación del proyecto .............................................................................. 34

    3.2.1.5 Opciones del compilador ......................................................................... 37

    3.2.1.6 Construcción del proyecto ....................................................................... 38

    3.2.1.7 Monitoreo de Watch Window .................................................................. 39

    4.1 Osciloscopio de estado sólido .............................................................................. 40

    CAPÍTULO 4. SUGERENCIAS ................................................................................... 43

    4.1 Sobre la fuente programable ................................................................................ 44

    4.2 Sobre el generador de funciones .......................................................................... 44

    4.3 Sobre el osciloscopio ............................................................................................ 44

    CONCLUSIONES .......................................................................................................... 46

    APÉNDICE A ............................................................................................................... 47

  • V

    APÉNDICE B ............................................................................................................... 51

    BIBLIOGRAFÍA ............................................................................................................ 55

    Listado de figuras.

    0.1 Fuente de voltaje programable modelo PROVA 8000 .......................................... X

    1.1 Fuente de alimentación lineal ................................................................................. 5

    2.1 Diagrama de bloques del diseño de una fuente regulada ....................................... 9

    2.2 Entradas/salidas de un multiplexor analógico ...................................................... 10

    2.3 Pines en un multiplexor analógico de 3 bits ......................................................... 11

    2.4 Generador de funciones ........................................................................................ 13

    2.5 Un Osciloscopio ................................................................................................... 14

    2.6 Diagrama de bloques del TMS320C6713 ............................................................ 17

    2.7 Aspecto físico de la tarjeta DSK .......................................................................... 19

    2.8 Diagrama del DSK TMS320C6713 ..................................................................... 19

    2.9 Ciclo de diseño de aplicaciones para la familia TMS320C6713 ......................... 20

    3.1 Diagrama básico del regulador LM317 ................................................................ 23

    3.2 Diagrama del LM317 con un arreglo de transistores ........................................... 25

    3.3 Potenciómetro digital con un solo pulsador de subida ......................................... 27

    3.4 Potenciómetro digital con 2 pulsadores, uno de subida y uno de bajada ............. 27

    3.5 Diseño propuesto para variar los valores resistivos ............................................. 28

    3.6 Segundo módulo de la fuente ............................................................................... 29

    3.7 Configuración del Code Composer Studio .......................................................... 32

    3.8 Vista de los archivos del proyecto ....................................................................... 33

    3.9 Creación de un proyecto en el Code Composer Studio ........................................ 34

  • VI

    3.10 Archivos necesarios para la creación del proyecto ............................................ 36

    3.11 Opciones del compilador de CCS ...................................................................... 37

    3.12 Opciones del compilador .................................................................................... 38

    3.13 Ventana que genera el archivo GEL .................................................................. 40

    3.14 Osciloscopio de estado sólido ............................................................................ 40

    Listado de tablas.

    Tabla 0.1. Características de voltaje y corriente de la fuente PROVA 8000. ................. X

    Tabla 0.2 Características físicas de la fuente PROVA 8000. ....................................... XI

    Tabla 2.1 Funcionamiento de un multiplexor de 3 bits. ................................................ 11

    Tabla 3.1. Voltajes de salida medido y calculado del LM317 . ..................................... 24

    Tabla 3.2 Voltaje de salida medido y calculado LM317 (arreglo de transistores). ...... 26

    Tabla 3.3 Pulsos del contador y valores de las terminales de control............................ 31

    ../AppData/Roaming/Microsoft/Downloads/tesisfinal2.6.docx#_Toc326898757../AppData/Roaming/Microsoft/Downloads/tesisfinal2.6.docx#_Toc326898758../AppData/Roaming/Microsoft/Downloads/tesisfinal2.6.docx#_Toc326898759../AppData/Roaming/Microsoft/Downloads/tesisfinal2.6.docx#_Toc326898760../AppData/Roaming/Microsoft/Downloads/tesisfinal2.6.docx#_Toc326898761../AppData/Roaming/Microsoft/Downloads/tesisfinal2.6.docx#_Toc326898762

  • VII

    Acrónimos

    AC Corriente alterna

    ALU Unidad Lógico-Aritmética (ArithmeticLogicUnit)

    CCS Code Composer Studio

    CI Circuito integrado

    DC Corriente directa

    DMA Acceso directo a memoria

    DSK Designer starter kit

    DSP Procesador digital de señales (Digital Signal Processor)

    EVM Evaluation module

    MAC Multiply-accumulate operations

    McBSP Multichannel Buffered Serial Port Description

    PMI Payload Missing Indication

    RON Resistencia interna que present los interruptores

    SBSRAM Memoria de acceso aleatorio estática sincronizada con el reloj del sistema

    (Synchronous Burst Static Random Access Memory)

    SRAM Memoria Estática de Acceso Aleatorio (Static Random Access Memory)

    TTL Lógica Transistor a Transistor (Transistor-Transistor Logic)

    VLWI (very long instruction word),

    VRMS valor cuadrático medio (root mean square)

    http://www.monografias.com/trabajos13/memor/memor.shtml

  • VIII

    INTRODUCCIÓN

    Una fuente de voltaje y un generador de forma de onda son equipos que tienen por

    objetivo formar parte de laboratorios de electrónica convencionales o sofisticados,

    proporcionando voltaje y corriente para alimentar cualquier circuito tanto en energía

    como en señal.

    En este trabajo se presenta el diseño de un equipo que proporcionará un valor de voltaje

    de corriente directa (valores de voltaje) manipulables mediante un teclado matricial, así

    como un generador de forma de onda (senoidal, cuadrada y triangular), que podrá

    comunicarse con una computadora.

    El trabajo se estructura de la siguiente manera: en el Capítulo 1 se presenta el estado del

    arte donde se puede revisar un poco de la historia del DSP y sus aplicaciones, así como

    información sobre el funcionamiento de las primeras fuentes de voltaje, en el Capítulo 2

    se puede consultar el Marco teórico donde se presentan las características y

    funcionamiento de los elementos físicos a utilizar (fuentes de voltaje, generador de

    señales, osciloscopio, DSP) así como del software utilizado. En el Capítulo 3 se presenta

    la implementación y los diseños propuestos de un generador de señales con un DSP y una

    fuente de voltaje programable, además de una propuesta de un osciloscopio. En el

    Capítulo 4 se presentan las recomendaciones de los diseños propuestos y para finalizar

    las conclusiones generales.

  • IX

    Objetivo general

    Hacer el diseño de una fuente de voltaje de corriente directa y un generador de señales

    arbitrarias usando un Procesador Digital de Señales (DSP), para aplicarse en un

    laboratorio portátil.

    Objetivos Específicos

    1. Manipular un DSP para generar señales de cualquier tipo.

    2. Investigar los principios teóricos que nos ayuden a desarrollar una fuente de

    voltaje de corriente continua variable y manipulable mediante pulsaciones en

    un teclado.

    3. Desarrollar un generador de funciones controlado por DSP.

  • X

    JUSTIFICACIÓN

    La importancia de este proyecto radica en el hecho de ser un diseño económico

    comparado con los comerciales, y que además, contará con las características necesarias

    para poder realizar prácticas de electrónica en un laboratorio.

    El precio de una fuente digital programable comercial como la que se visualiza en la

    figura 0.1, alcanza un valor de $63000.00 con las características1 que se observan en la

    tabla 0.1 y en la tabla 0.2

    Figura 0.1 Fuente programable modelo PROVA 8000

    Rango Resolución Precisión

    Voltaje 0-40v 1mV 0.05%± 9mV

    Corriente 0 –5V 1mA 0.2% ± 9mA

    Tabla 0.1 Caracterísiticas devoltaje y corriente de la fuente PROVA 8000

    1Modelo PROVA 8000

  • XI

    Dimensiones 310mm x 250mm x 133 mm /

    12.2" x 9.8" x 5.2"

    Peso 3.8kg / 8.4lbs

    Tabla 0.2. Características físicas de la fuente PROVA 8000

    Hay que notar que los parámetros más altos de esta fuente (5A y 40V) podrían ser

    utilizados para circuitos de potencia, los cuales, no son frecuentes en escuelas de

    bachillerato y licenciatura, sino más bien en la industria o laboratorios más sofisticados.

    Por lo que, 1.5A y 15V son suficientes para poder lograr nuestro objetivo general, y así,

    equipar laboratorios con lo necesario para realizar prácticas de electrónica. Donde 5V

    son suficientes para la tecnología TTL, +9, +12, +15 para los OPAMP y por si hiciera

    falta dejaríamos 50 salidas más de entre 0-15 volts para tener una mayor resolución en los

    valores de voltaje a elegir.

  • XII

    Planteamiento del problema

    En ESIME CULHUACAN el principal problema que se plantea es la necesidad de

    contar con equipo de propósito general para los laboratorios de circuitos electrónicos y

    materias afines. Actualmente en algunos laboratorios se cuenta con equipo nuevo, pero

    ninguno utiliza tecnología programable, por lo tanto contar con un equipo con las

    características propuestas significaría tener una herramienta con tecnología de punta, que

    permitirá que los alumnos de semestres intermedios a finales, cuenten con un equipo

    portátil de bajo costo para la realización de sus experimentos de electrónica

  • 1

    CAPÍTULO I ESTADO DEL ARTE

  • 2

    1.1 Historia del DSP.

    El procesamiento de señales digitales es una tecnología que podemos clasificar

    importante en la actualidad. Constituye la base de los que conocemos como electrónica

    de consumo.

    El desarrollo del procesamiento digital de señales comenzó por la necesidad de los

    diseñadores para poder simular el comportamiento de los sistemas analógicos y así poder

    tener más certeza al momento de realizar un prototipo que podía ser muy costoso

    económicamente, siendo en principio, una computadora la herramienta que se utilizaría

    para realizar dichas simulaciones.

    El procesamiento digital de señales dependía de procesadores digitales, de los cuales la

    mayor parte de los algoritmos utilizados habían sido desarrollados en la década de los 50.

    Fue así como los diseñadores buscaron una arquitectura de procesador que fuera más

    eficaz y que pudiera correr simulaciones y se pudieran ejecutar en un periodo de tiempo

    aceptable.

    En la década de los setentas aparecieron algunas máquinas de cálculo que usaban

    circuitos integrados de lógica discreta en tecnología TTL que iban acompañados por una

    unidad aritmética programable de cuatro bits, para realizar las funciones de

    procesamiento de los datos en tiempo real.

    El primer multiplicador integrado en un circuito integrado se comercializó en 1973 por

    una compañía llamada TWR, aunque a un excesivo costo. Posteriormente en 1978, AMI

    anuncia el primer circuito integrado diseñado específicamente para el procesado de

    señales en tiempo real, el S2811, con la capacidad de procesar datos de 12 bits. En 1979,

    Intel introduce el Intel 2920, al que denomino “chip procesador analógico de señales”,

    dado que disponía que periféricos de conversión analógico-digital y digital-analógico. El

    Intel 2920 no disponía de multiplicador interno y era extremadamente lento en la

    realización de cualquier operación aritmética.

  • 3

    El primer DSP (Procesador de Señales Digitales), con una unidad multiplicadora y otra

    acumuladora (MAC)2 integradas en un chip, se comercializó a principios de 1980 (PD).

    Tenía un ciclo de máquina de 122ns operando su unidad MAC en dos ciclos de máquina.

    Se trató del primer dispositivo comercial útil en el procesamiento de señales de audio y

    con la aplicación en el espectro audible (20Hz-20KHz) [1].

    Ese mismo año, Ed Codell diseñó para Texas Instruments el boceto de lo que sería la

    primera arquitectura DSP fabricada por la compañía. Dicha arquitectura fue

    posteriormente optimizada por Surendar Magar, para favorecer la ejecución de los

    algoritmos de procesamiento de la señal conocidos en la fecha. Así, en abril de 1982 se

    lanza comercialmente el primer DSP de la familia TMS320 de Texas Instruments, el

    TMS320, diseñado en tecnología TTL. Posteriormente se incorpora la tecnología CMOS.

    El desarrollo inicial de los DSP por parte de Texas Instruments se puede considerar casi

    como un trabajo visionario, dado que la rentabilidad de estos dispositivos no aparece

    hasta la década de los noventa.

    1.2 DSP y su aplicación.

    Los procesadores digitales de señales o DSP surgieron cuando la tecnología permitió su

    fabricación las características de las aplicaciones lo necesitaron. La telefonía móvil, la

    electro medicina, la robótica, las comunicaciones y el procesamiento del sonido y la

    imagen, Internet, el control de motores, la instrumentación, son algunas de las tareas

    típicas de los DSP.

    Cuando los microcontroladores de 8, 16 y 32 bits no fueron capaces de resolver

    eficientemente tareas que el procesamiento digital de señales exigía, se reforzaron sus

    arquitecturas, se amplió el repertorio de instrucciones, se le diseñó con numerosos

    periféricos complementarios para dar lugar a los DSP.

    2 Texas Instruments. Procesadores de Señales Digitales de altas prestaciones de la familia

    TMS320C3x a la TMS320C6000”. Editoria Mc Graw Hill; España 2005

  • 4

    Los DSP son procesadores digitales cuyo diseño está enfocado para el tratamiento de

    señales y que por su aplicación en los campos tecnológicos más demandados, supone

    disponer de un dispositivo programable con los recursos físicos lógicos precisos para las

    exigencias de estas tareas [2].

    Los DSP tienen diversas aplicaciones en el mundo actual, solo por poner unos pocos

    ejemplos tenemos: Eliminar el eco en las comunicaciones, lograr hacer más claras

    imágenes de órganos internos en los equipos de diagnóstico médico, reconocimiento de

    voz, control de motores, inversores industriales entre muchas otras [3].

    Una manera para clasificar el funcionamiento de los DSP es a través de su rango

    dinámico. El rango dinámico es un conjunto de números que van a ser procesados

    mientras una aplicación se está ejecutando. Un DSP tiene que ser capaz de procesar los

    números generados por una tarea tanto en la transformación analógica/digital como

    durante las operaciones generadas (sumas, multiplicaciones, divisiones). La capacidad de

    este procesamiento depende directamente del procesador y el tipo de aritmética que posee

    (punto fijo o punto flotante). Un procesador de 32 bits tiene un número mayor de bits que

    puede manipular. Cada tipo de procesador es ideal para un cierto rango particular de

    aplicaciones. Un DSP de 16 bits se puede utilizar para sistemas de voz como un teléfono,

    ya que estos trabajan con un estrecho rango de frecuencias de audio, un estéreo de alta

    fidelidad requeriría un procesador de 24 bits de punto fijo, una aplicación de gráficos 3D

    requeriría un rango dinámico mayor y requeriría un procesador de 32 bits con punto

    flotante [4].

    1.3 Primeras fuentes de alimentación.

    Las primeras fuentes de alimentación eran lineales. Un transformador que reducía la

    tensión de entrada de 220 VAC a otra tensión seguida de un puente de diodos y algún

    filtro para estabilizar la salida.

  • 5

    Figura 1.1 Fuente de alimentación lineal.

    El inconveniente de las fuentes lineales es su gran tamaño, que disipan gran parte de la

    energía en calor. Consecuentemente la vida de los componentes electrónicos que pueda

    incorporar o estar cercanos se ve mermados por ese incremento de calor. Además la

    tensión de salida varía en función de la carga. Hoy en día se siguen utilizando ya que

    generan un ruido y rizado menor. Además al tener poca electrónica son más inmunes a

    las radiaciones electromagnéticas.

    Hemos dicho que todas las fuentes de alimentación lineales suelen ser pesadas y tienen

    poca eficiencia, pero ¿respecto a qué? Las necesidades en la carrera aeroespacial de

    reducir peso y consumo de toda la electrónica llevó al primer desarrollo de fuentes de

    alimentación conmutadas. El sistema básicamente consiste en transferir energía de

    manera controlada entre el primario y secundario. Así en los años cuarenta se hicieron las

    primeras pruebas en sistemas conmutados por parte de la NASA.

    En principio era una tecnología muy cara y desconocida. Paulatinamente, el

    abaratamiento de la electrónica y la miniaturización, ha conseguido que las fuentes de

    alimentación conmutadas se abaraten considerablemente, ofreciendo mayor estabilidad,

    seguridad, eficiencia a un precio similar a las fuentes lineales.

    Con la entrada en vigor en el 2001 de la normativa EN 60555-2 sobre el factor corrector

    de potencia ha obligado a nuevos desarrollos. El principal motivo de entrada de esta

    normativa es que la forma que tienen de consumir energía las fuentes de alimentación

    conmutadas suele distorsionar la línea eléctrica pudiendo influir en el funcionamiento de

  • 6

    otros equipos electrónicos conectados. Se intenta de esa manera mejorar la calidad del

    fluido eléctrico. Las fuentes de alimentación con PFC (Power Factor Correction)

    principalmente reducen los armónicos re-inyectados a la red mediante un filtro activo que

    corrige la forma de la onda de intensidad de entrada haciéndola senoidal en fase con la

    tensión [5].

  • 7

    CAPÍTULO II MARCO TEÓRICO.

  • 8

    2.1 Fuentes de voltaje.

    Una fuente de voltaje de salida regulado, es un dispositivo, que brinda una tensión de

    salida de corriente directa, necesaria para hacer funcionar la mayoría de circuitos

    electrónicos, ya sea en aparatos diseñados por fabricantes o industrias grandes; en este

    caso para el taller o laboratorio experimental se utiliza al hacer pruebas necesarias y

    verificar el correcto funcionamiento de los circuitos electrónicos.

    Estas fuentes se construyen a partir de los requerimientos necesarios para satisfacer las

    condiciones del usuarios, a continuación describimos una fuente de 15V de DC

    regulados, con una corriente de salida de 2A.

    En la figura 2.1 se presenta el diagrama a bloques del diseño de la misma, tomando en

    cuenta como va a funcionar nuestra fuente.

    A simple vista se nota que cada parte esta dispuesta según un ordenamiento lógico del

    funcionamiento, y se describe qué tipo de señal se está obteniendo, desde la entrada de

    corriente alterna, el transformador, la parte de rectificación de la señal, el filtrado, la

    regulación, hasta la carga, que consumirá la corriente que la fuente provee.

    La tarea de la fuente de alimentación (fuente) de cualquier equipo o aparato electrónico

    es obtener el o los niveles adecuados de corriente directa a partir del voltaje de línea (120

    VRMS).

    Las fuentes de voltaje reguladas se diseñan, y este diseño queda plasmado en un

    diagrama, el que incluye todos los componentes de la fuente, uno a uno y la forma en que

    estarán colocados en el circuito para un correcto funcionamiento, a continuación, el

    diagrama de una fuente regulada de voltajes sencilla de 15V y 2A con protección para

    cortocircuitos:

  • 9

    Figura 2.1 Diagrama de bloques del diseño de una fuente regulada.

    Dentro de la parte de regulación, existe una resistencia de ajuste, que es la que

    determinará la salida de voltaje, por lo tanto si se quieren varias salidas dentro de un

    mismo regulador, se deben tener varias resistencias de ajuste, la mejor manera es

    mandarlas todas por un mismo canal, una multiplexación, y al ser una resistencia, se debe

    utilizar un multiplexor analógico.

    2.2 Multiplexores analógicos.

    2.2.1 Estructura y Utilización.

    El multiplexor analógico está constituido por una serie de entradas/salidas conectadas a

    una línea común de entrada/salida como se muestra en la Figura 2.2. Unas entradas de

    selección determinan cual es la entrada que se conectará a la salida.

  • 10

    Figura 2.2 Entradas/salidas de un multiplexor analógico

    Desde el punto de vista interno, el multiplexor está formado por un conjunto de

    interruptores analógicos, de tal manera que en cada instante sólo uno de ellos puede estar

    cerrado. Las entradas de selección actúan sobre un decodificador digital, cuyas salidas

    rigen los diferentes interruptores analógicos, de tal forma que en cada momento eligen el

    interruptor que debe ser cerrado. La principal ventaja que presentan los multiplexores

    analógicos, frente a los digitales, es su carácter bidireccional, lo que le permite que cada

    terminal del multiplexor sea posible usarla como entrada o como salida y el manejo de

    señales analógicas en vez de digitales.

    Desde el punto de vista ideal, se dirá que si el multiplexor dispone de n entradas de

    selección podrá disponer de hasta 2n canales de entrada. La mayoría de los multiplexores

    comerciales son de cuatro u ocho canales, es decir, de dos o tres entradas de selección.

    2.2.2 Parámetros Característicos.

    Desde el punto de vista real se verá una serie de parámetros característicos que nos

    facilitan los fabricantes y que proporcionan una idea de cuánto se aleja el multiplexor

    propuesto del modelo ideal. Para ello, se tomará de referencia el multiplexor C40513, es

    de ocho canales, tres entradas de selección.

    3 Obtenida de la hoja de especificaciones CI de Philips Semiconductors

  • 11

    Figura 2.3 Pines en un multiplexor de ocho canales analógico y 3 bits de dirección

    Su tabla de funcionamiento es:

    Tabla 2.1 Funcionamiento de un multiplexor de ocho canales analógico y 3 bits H = HIGH state (estado alto) L = LOW state (estado bajo) X = Estado prohibido

    2.2.3 Resistencias de los interruptores.

    RON es la resistencia que ofrece el interruptor en régimen estacionario cuando se

    encuentra en conducción (interruptor cerrado). Análogamente se definiría ROFF como la

    resistencia que presenta el interruptor en régimen estacionario cuando se encuentra en

    corte (interruptor abierto). RON puede valer 220Ω, una resistencia alta para un valor que

    INPUTS CHANEL ON Ē A2 A1 A0

    L L L L Y0-Z

    L L L H Y1-Z

    L L H L Y2-Z

    L L H H Y3-Z

    L H L L Y4-Z

    L H L H Y5-Z

    L H H L Y6-Z

    L H H H Y7-Z

    H X X X none

  • 12

    debería ser nulo. Para ROFF se obtienen valores muy altos aunque no infinito, que es el

    valor que se esperaría.4

    2.3 Generador de señales.

    Un generador de señales es un instrumento utilizado en la electrónica y sirve para generar

    o simular señales específicas con determinadas características. Por ejemplo, crear o

    simular una señal que puede ser cuadrada, sinusoidal, de una determinada frecuencia, y

    de una determinada amplitud. De esta forma, podemos aplicar esta señal generada a un

    circuito para ver su respuesta. Un generador de funciones tiene una frecuencia máxima a

    la cual puede llegar el instrumento, al igual que una amplitud máxima en volts. Los

    generadores de funciones más comunes, pueden generar ondas sinusoidales, triangulares

    y cuadradas. Otros generadores, en cambio, tienen señales programables como por

    ejemplo la de un electrocardiograma. También, puede haber instrumentos que permitan la

    generación de una señal de impulso.

    Una herramienta primordial para un generador de funciones es el osciloscopio, ya que en

    él, se pueden visualizar las señales de salida.

    Podemos clasificar los generadores de señales en tres grandes grupos: generadores de

    función, sintetizadores de frecuencia y fuentes digitales de señal.

    El primero de ellos se utiliza cuando nos interesa generar señales de baja o media

    frecuencia con formas de onda casi ideales, pudiendo variar los parámetros básicos que

    caracterizan la señal.

    Los sintetizadores de frecuencia se utilizan si nos interesara generar señales con

    frecuencias, generalmente altas, muy estables y precisas. En el último de los grupos, las

    señales se obtienen mediante un proceso de muestreo digital, la forma de onda de salida y

    los rangos de frecuencia de los generadores de señal son variables dependiendo del tipo

    4 Texas Instruments. Procesadores de Señales Digitales de altas prestaciones de la familia TMS320C3x a la TMS320C6000”. Editoria Mc Graw Hill; España 2005

  • 13

    de generador y de la aplicación a la que vayan destinados. En cualquier caso se ha de

    exigir a los generadores de señales lo siguiente:

    La frecuencia de salida ajustable y estable. La amplitud de la salida variable. Impedancia de salida conocida.

    Sus partes más importantes son:

    Regulador de Frecuencia: En este bloque se regula mediante una perilla, la frecuencia de

    la señal de salida. Podemos variarla desde 0Hz (onda continua) hasta el máximo que nos

    permita el instrumento. La calidad del mismo viene dada por muchos parámetros de los

    cuales este es de los más importantes.

    Regulador de Ciclo de Trabajo y Offset: El primero es para regular ambas mitades del

    ciclo de la señal de salida y el Offset es para desplazar o mover la onda verticalmente.

    Figura 2.4 Generador de funciones

  • 14

    2.4 El osciloscopio.

    El Osciloscopio es uno de los más importantes aparatos de medida que existen

    actualmente. Representan gráficamente las señales que se le inyectan, pudiendo así

    observarse en la pantalla muchas más características de la señal que las obtenidas con

    cualquier otro instrumento.

    Hay muchos aparatos de medidas capaces de cuantificar diferentes magnitudes. Por

    ejemplo, el voltímetro mide voltaje, el amperímetro mide corriente, el vatímetro potencia,

    etc. Pero, sin duda alguna, el aparato de medidas más importante que se conoce es el

    Osciloscopio. Con él, no sólo podemos averiguar el valor de una magnitud, sino que,

    entre otras muchas cosas, se puede saber la forma que tiene dicha onda, es decir,

    podemos obtener la gráfica que la representa.

    Figura 2.5 Osciloscopio

    Por otra parte los osciloscopios digitales tienen un aspecto totalmente distinto a los

    convencionales pero, si entendemos el funcionamiento de los Analógicos, será muy

    sencillo aprender a manejar los digitales. Los más modernos son, en realidad, un pequeño

  • 15

    computador destinado a captar señales y a representarlas en la pantalla de la forma más

    adecuada.

    Estos tratan de imitar los antiguos mandos de los osciloscopios normales, de modo que,

    en realidad, sólo es necesario aprender la forma en que el aparato se comunica con el

    usuario. Esto se hace normalmente en forma de menús que pueden aparecer en pantalla

    con opciones que el usuario puede elegir con una serie de pulsadores.

    La forma de trabajo de un osciloscopio consiste en dibujar una gráfica, una gráfica es una

    curva que tiene dos ejes de referencia, el denominado de abscisas u horizontal y el eje de

    ordenadas o vertical. Para representar cada punto de la gráfica tememos que dar dos

    coordenadas, una va a corresponder a su posición respecto al eje horizontal y la otra va a

    ser su posición respecto al en el vertical. Esta gráfica se va a representar en la pantalla

    que tienen todos los osciloscopios debido al movimiento de un haz de electrones sobre

    una pantalla de fósforo que la parte interna del tubo de rayos catódicos. Para representar

    dicha señal sobre el tubo se realiza una división en dos partes: señal vertical y señal

    horizontal. Dichas señales son tratadas por diferentes amplificadores y, después, son

    compuestas en el interior del osciloscopio.

    Un osciloscopio puede ser utilizado para estudiar propiedades físicas que no generan

    señales eléctricas, por ejemplo las propiedades mecánicas. Para poder representar en

    pantalla del osciloscopio dichas propiedades, en necesario utilizar transductores que

    convierta la señal que le llega, en este caso la mecánica, en impulsos eléctricos. Un

    osciloscopio es un aparato que basa su funcionamiento en la alta sensibilidad que tiene a

    la tensión, por lo que se pondría entender como un voltímetro de alta impedancia. Es

    capaz de analizar con mucha presión cualquier fenómeno que podamos transformar

    mediante un transductor en tensión eléctrica [6].

    Con el osciloscopio se pueden realizar diversas acciones, como:

    Determinar directamente el periodo y voltaje de una señal, Determinar indirectamente la frecuencia de una señal. Determinar que parte de la señal es DC y cual AC Localizar averías en un circuito.

  • 16

    Medir la fase entre dos señales. Determinar que parte de la señal es ruido y como varia en el tiempo-

    En todos los osciloscopios podemos distinguir tres partes:

    La pantalla Un canal de entrada por las que se introduce diferencia de potencial a medir Una base tiempo.

    2.5 DSP.

    Un procesador digital de señales es un microprocesador especializado y diseñado

    específicamente para procesar señales digitales en tiempo real. Este provee secuencias de

    instrucciones ultra-rápidas como:

    MAC DEEP PIPELINING La habilidad de actuar como un dispositivo de DMA SATURACION ARITMETICA ARQUITECTURA DE HARVARD, memoria de programas y memoria de datos

    separadas.

    La mayoría de los DSP son de punto fijo, dado que, en el mundo real del procesamiento

    digital, se puede sacrificar algo de precisión, sin embargo, también existen los DSP de

    punto flotante que son utilizados en campos científicos por ejemplo [7].

    En su núcleo, un DSP es altamente numérico y repetitivo. A la vez que cada dato llega,

    éste debe ser multiplicado, sumado y además de eso transformado de acuerdo a fórmulas

    complejas. Lo que permite realizar todo ello es la velocidad del dispositivo. Los sistemas

    basados en DSP deben trabajar en tiempo real, capturando y procesando información a la

    vez que ocurre. Los conversores analógico-digital deben adquirir la información lo

    http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos13/cinemat/cinemat2.shtml#TEORICO

  • 17

    suficientemente seguido como para captar todas las fluctuaciones relevantes de las

    señales. Si el ADC es muy lento se perderá información. El DSP también debe trabajar

    rápido para no perder información que le llega desde el ADC y además cumplir con el

    adecuado procesamiento de las señales. Por ejemplo, un sistema estéreo maneja sonidos

    de hasta 20 KHz, por lo tanto el DSP deberá ser capaz de procesar alrededor del centenar

    de millones de operaciones por segundo. Otras señales, tales como transmisiones por

    satélite son del orden de los Gigahertz por lo que requieren un procesamiento de mayor

    velocidad [8].

    2.5.1 Procesador Digital de Señales TMS320C6713.

    La familia TMS320C6000 son procesadores de propósito especial que cuentan con una

    arquitectura y un set de instrucciones apropiados para el procesamiento de señales.

    La arquitectura del procesador digital de señales C6713 esta basada en la arquitectura

    VLWI, la cual esta diseñada para trabajar con algoritmos numéricos de gran tamaño. Con

    un reloj de 225 MHz, el C6713 es capaz de alimentar instrucciones de 32 bit cada 1/(225

    MHz) o 4.44 ns [9].

    El C6713 incluye una memoria interna de 264 KB, ocho unidades funcionales o de

    ejecución compuestas por seis ALU y dos unidades multiplicadoras, además, de dos

    registros de propósito general de 32 bit Fig.2.5.

    Figura 2.6. Diagrama de bloques del TMS320C6713.

  • 18

    Otras características generales de este tipo de DSP se pueden resumir como se muestra a

    continuación:

    1. Capacidad de almacenamiento de instrucciones y datos en dispositivos de

    memoria interna. En estos DSP, las memorias de programa y de datos se

    encuentran separadas, disponiendo el DSP de un bus de datos para el acceso a las

    instrucciones de tamaño 256 bits y de un bus de datos para acceso a la memoria

    de datos de ancho de 32 bit.

    2. Memoria caché interna para acelerar el acceso de la CPU a las instrucciones y a

    los datos. Esta memoria aparece en la jerarquía de memoria del sistema

    microprocesador en el nivel más cercano a la CPU.

    3. Registros internos de 32 bit y propósito general (acumuladores), agrupados en dos

    tablas de igual número de registros cada una.

    4. Múltiples controladores internos de eventos independientes de la CPU: DMA

    (capaz de transferir datos en el rango de direcciones de memoria de la CPU sin

    que ésta intervenga, con cuatro canales programables más un quinto auxiliar),

    EDMA (similar a la DMA pero con 16 canales programables independientes y

    con memoria interna para mantener las configuraciones de futuras transferencias)

    y QDMA (similar a la EDMA, aunque con capacidad de realizar las transferencias

    a mayor velocidad).

    5. Puertos digitales de entrada/salida de propósito general.

    6. Temporizadores de 32 bit.

    7. Puertos serie que implementan un protocolo serie síncrono McBSP.

    8. Periféricos para la conexión con otros dispositivos externos: HPI (puerto de

    comunicación del DSP que permite a un dispositivo externo al mismo, que

    funcionaría como maestro en la transferencia de información, acceder al espacio

    de memoria del propio DSP), XBUS (bus de expansión que incorpora las

    funciones del puerto HPI, aunque con la posibilidad de intercambio asíncrono y

    síncrono de información y en modo maestro o esclavo, y de puerto de

    entrada/salida) y EMIF (interfaz de acceso a cuatro rangos de direcciones

    independientes, con periféricos externos y protocolos diferentes –SRAM,

    SDRAM, SBSRAM- mediante bus de datos de 32 bit) [10].

  • 19

    9. Dispone de seis unidades aritmético-lógicas y de dos multiplicadores, en total

    ocho unidades funcionales. El compilador asigna (planificación estática de la

    ejecución de las instrucciones del usuario) cada una de las unidades funcionales a

    las diferentes instrucciones que operan en paralelo [11]. Las ocho unidades

    funcionales son:

    Dos multiplicadores internos (unidad funcional M.). Operadores capaces de realizar multiplicaciones con operandos flotantes de punto fijo o coma

    variable.

    Dos unidades aritméticas y lógicas (unidad funcional .S). Operadores capaces de realizar operaciones aritméticas de 32 bit con operandos

    flotantes de punto fijo o punto flotante.

    Dos unidades aritméticas y lógicas (unidad funcional .L). Operadores capaces de realizar operaciones aritméticas y de comparación de 32 o 40

    bits con operandos flotantes de punto fijo o punto flotante.

    Dos unidades aritméticas y lógicas (unidad funcional .D). Operadores capaces de realizar operaciones aritméticas de 32 bit para generar las

    direcciones de los operandos.

    Figura 2.7. Aspecto físico de la tarjeta DSK

    Figura 2.8. Diagrama del DSK TMS320C6713

  • 20

    Un compilador de DSP es el Code compouser Studio, el cual es útil para la tarjeta DSK

    TMS320C6713

    2.7 Code Composer Studio (CCS).

    Es reconocido como una de las herramientas de desarrollo más completas en el ámbito de

    procesadores digitales, provee las herramientas necesarias para el desarrollo de software

    en el DSP. Los procesadores que puede compilar el CCS son: MSP430, Stellaris (ARM

    Cortex M3), C6000, C55x, C54x, C28x, DaVinci, Sitara (ARM Cortex A8), OMAP y

    TMS470. Mediante CCS, se dispone de un entorno que permite al usuario editar,

    compilar, simular, construir y depurar aplicaciones de software para el DSP. En la Fig. 3

    se muestra el ciclo que sigue el CCS para desarrollar una aplicación.

    Figura. 2.9. Ciclo de diseño de aplicaciones para la familia TMS320C6713.

    El archivo fuente, escrito en C, se construye con la ayuda de un editor de texto incluido

    en el entorno, también es posible escribir el archivo fuente en ensamblador o puede ser

    creado por el compilador y el optimizador. Los archivo objeto (.OBJ) y las librerías son

    enlazados para crear el archivo ejecutable (.OUT), posteriormente el archivo .OUT es

    cargado en el DSP por el debugger del CCS.

    La tendencia habitual en estos DSP, es desarrollar las aplicaciones utilizando el lenguaje

    C; el lenguaje ensamblador del DSP no se suele utilizar debido a la complejidad de su uso

  • 21

    y al alto grado de conocimiento que se requiere de la arquitectura interna del

    microprocesador.

    Las características principales del CCS (en su versión V4) son: Un ambiente de desarrollo

    superior que acelera el diseño y depuración (debugeo) con un editor de código avanzado

    y otras características como “code completion”, “code folding”, historia local de cambios

    de código fuente y marcadores, interface Gráfico avanzado que simplifica el manejo de

    data y proyectos por medio de la creación de menús personalizados , “toolbars” y vistas

    rápidas (“fast views”) que ayudan al programador a definir las funciones y ventanas

    apropiadas para tareas específicas, ambiente extensible con una gran selección de “plug-

    ins” entre los cuales se encuentran análisis de código estático, control de código fuente,

    modelaje y desarrollo de puntaje (scripting), depurador de multi-procesadores que

    administra el flujo de información entre varios núcleos (“cores”) sin la confusión que

    muchas veces crea tener un depurador separado para cada núcleo, administrador de

    Actualización (Update Manager) automáticamente informa al cliente y carga la

    información necesaria.

  • 22

    CAPÍTULO III

    IMPLEMENTACIÓN.

  • 23

    3.1 Fuente de voltaje programable.

    Para implementar una fuente de voltaje donde sus salidas sean programables, se utiliza

    en principio un regulador, el que se utiliza es el LM317 como se muestra en la figura 3.1,

    el funcionamiento de éste, es en base a una resistencia variable (un potenciómetro, que es

    su resistencia de ajuste) que al tomar diferentes valores, el regulador dará voltajes de

    salida conforme sea diferente la resistencia

    El regulador puede variar de 1.25 volts a 37 volts y puede suministrar hasta 1.5 amperes.

    Figura 3.1 Diagrama básico del regulador LM317

    En la figura 3.1 5 se observa el circuito básico del cual se partió para el diseño de la

    fuente programable. Se armó el circuito con una resistencia variable (potenciómetro)

    donde el diagrama muestra R2 para así comenzar las pruebas, dando diferentes valores

    resistivos con el potenciómetro y anotando cómo va variando el voltaje de salida con

    forme a los cambios de resistencia R2. La ecuación 1 muestra el comportamiento del

    voltaje de salida en el LM317.

    -----------(1)

    5 LM317 National semiconductor

  • 24

    El voltaje de entrada suministrado fue de 28 volts, denotando que la ecuación del manual

    no corresponde con los valores prácticos, la relación de voltaje de salida y resistencia de

    ajuste conforme a las mediciones hechas es la siguiente:

    Vint = 28volts

    R1 = 270 Ω

    Tabla 3.1 Voltajes de salida, medido y calculado del LM317 con un Vin=28 Volts

    Entonces, el siguiente paso es tener un arreglo de “n” resistencias que puedan ser

    activadas mediante un teclado matricial y que éstas sean las que regulen la salida de

    voltaje del LM317, se puede utilizar un arreglo de interruptores donde para cada valor de

    resistencia se necesita un interruptor, y cuando se haga el cambio de resistencia, todos los

    interruptor deben de estar en cero excepto el equivalente a la resistensia que daría la

    salida de voltaje deseada.

    Bajo este principio se tiene que por cada salida de voltaje se tendrá un interruptor físico,

    lo cuál es totalmente impráctico, ya que, la realizar una interfaz con Pic (Para tener la

    comunicación del botón del teclado matricial con respecto al arreglo de resistencia

    necesario) se necesitaría un bit del puerto para cada salida de voltaje deseada.

    R2 Vout

    Calculado

    Vout

    Medido

    100 1.7 2.7

    390 3.0 4.5

    820 5.0 8.3

    1.5K 8.1 12.1

    1.8K 9.5 15.14

    3.3K 16.5 19.7

  • 25

    3.1.1 Arreglo en base a transistores.

    Se busca que el regulador LM317 ofrezca más de un valor diferente de voltaje, se debe

    tener un arreglo de resistencias, las cuales mediante una interfaz de selección sean

    escogidas, así, de acuerdo con la resistencia que sea seleccionada, se obtendrá un valor de

    voltaje correspondiente a ésta resistencia.

    La primera propuesta es la de utilizar interruptores como interfaz de selección.

    El objetivo de los transistores es funcionar en su configuración más común, la de corte

    saturación (trabajando como interruptores). Al saturar alguno de los transistores, se

    obtiene el valor resistivo que esta conectado al colector de cada uno de estos [12][13].

    Para poder observar mejor esto se propone el circuito de la figura 3.3.

    Figura 3.2 Diagrama del LM317 con un arreglo de transistores

    Los valores obtenidos fueron los siguientes:

    LM317 V out V in

    R1 240

  • 26

    Tabla 3.2 Voltajes de salida, medido y calculado del LM317 basado en un arreglo de transistores con un

    Vin=28 Volts

    3.1.2 Arreglo en base a un potenciómetro digital.

    El siguiente arreglo a proponer para funcionar como cambio de resistencias, es el de un

    potenciómetro digital, específicamente el DS1669, el cual, basado en un e-prom interna,

    guarda los registros de pulsos, teniendo internamente 69 diferentes valores de resistencia

    que se varían mediante pulsos, ya sea en su arreglo más sencillo con un solo pulsador

    ascendente que, al ser presionado durante 5 segundos, va al valor más alto de resistencia

    o con un solo pulso, cambia el valor de resistencia de manera ascendente, valor por valor.

    R2 Vout

    Calculado

    Vout

    Medido

    100 1.8 2.7

    330 3.0 4.5

    470 4.0 6.0

    1K 7.3 12.1

    2.2K 13.5 15.14

    3.3K 18.0 19.7

  • 27

    Figura 3.3 Potenciómetro digital con un solo pulsador de subida

    O se puede utilizar un arreglo con dos pulsadores, uno ascendiendo en los valores de

    resistencia, y el otro al presionarlo descenderá la e-prom interna a los valores bajos de

    resistencia, ambos teniendo la característica que, si son presionados por más de 5

    segundos, se irá inmediatamente al valor más bajo o al más alto de resistencia

    dependiendo del botón que haya sido presionado.

    Figura 3.4 Potenciómetro digital con dos pulsadores, uno de subida y otro de bajada

    Este arreglo parece ser muy bueno, ya que, con sólo un pulso, una entrada digital tenemos

    acceso a 69 valores de resistencia diferentes, que, como vemos en el circuito básico del

    regulador Lm317 se traducirían en 69 valores discretos diferentes de voltaje controlados

    mediante pulsos.

  • 28

    El inconveniente es que, el DS1669 con que se cuenta, tiene una resistencia máxima de

    10K, y al denotar que, en el diagrama básico del regulador LM317, la resistencia de ajuste máximo es de 5K (5K es la resistencia de mayor valor para alcanzar el voltaje máximo de salida en el regulador) así que, en principio los valores resistivos que contiene

    el integrado arriba de 5K sobran (35 valores de resistencia que no serán útiles), eso

    aunado a que, la mayoría de los valores resistivos que necesitamos oscilan dentro del

    rango de 0-1K, nos deja un pobre número de resistencias útiles, sin contar que las resistencias internas del integrado son arbitrarias, sin posibilidad a ser manipuladas, por

    lo que tendríamos pocos valores de resistencia y los cuales no son los que necesitamos

    para obtener los voltajes de salida deseados.

    3.1.3 Arreglo en base a un multiplexor analógico.

    El principio que se utiliza se observa en la figura 3.5 es el de enviar varias señales de

    resistencia por un mismo canal (multiplexación) donde la relación entre las señales de

    entrada y la señal de salida son los bits de control [14]. Por lo tanto se tiene un número de

    salidas de voltaje exponencial conforme al número de bits que tenga el multiplexor a

    utilizar, siendo un multiplexor de 3 bits capaz de ofrecernos 8 salidas diferentes de

    resistencia por un mismo canal, lo que se traduce en 8 diferentes salidas de voltaje.

    Figura 3.5: Diseño propuesto para variar valores resistivos mediante el principio de multiplexado, con un

    contador ascendente descendente y un decodificador a un display 7 segmentos

  • 29

    3.1.4 Módulos de la fuente.

    Si se desean más salidas de voltaje en la fuente, lo que se debe tener es más resistencias

    multiplexadas. Por lo tanto por cada multiplexor que se agregue al diseño de la fuente se

    le llamarán “módulos de la fuente” ya que, con un solo multiplexor la fuente tiene un

    determinado número de salidas de voltaje, puede funcionar sólo con esas, pero se deja el

    precepto teórico (y práctico) de cómo agregar más salidas de voltaje a la fuente, esto

    conforme más módulos se le agreguen.

    El módulo consiste en poner la terminal común de las resistencias multiplexadas a la

    salida del 1º módulo, y la salida del segundo módulo (la resistencia de salida) será

    conectada a tierra. El paso para agregar más módulos es exactamente el mismo, aunque

    para la implementación propuesta sólo se tendrán 2 módulos.

    En la figura 3.6 se muestra el 2º módulo de la fuente. La forma de trabajo es tener dos

    resistencias en serie a la salida, (una resistencia por módulo) pero una de esas resistencias

    tendrá valor cero, así, aunque existan dos resistencias en serie, el que una tome valor

    prácticamente cero, es como si existiera sólo una resistencia, así se hace la multiplexación

    del segundo módulo, multiplexación de 8 valores de resistencia distintos (lo que se

    traduce en 8 salidas de voltaje diferentes ajustables) para que, cuando se necesiten más

    valores, ahora una de las resistencias del 2º módulo tomará el valor de cero, y la

    multiplexación se realizará en el 1º módulo de la fuente, teniendo otros 8 valores

    diferentes de resistencia que se traducirán en 8 salidas de voltaje diferentes sumadas a las

    8 que ya se habían obtenido.

    Fig. 3.6 Segundo módulo de la fuente

  • 30

    3.1.5 Interfaz Pic de la fuente.

    Ahora que se tiene una fuente controlada en base a un pulso conectado a un contador que

    da 8 salidas diferentes de voltaje y otras 8 salidas de voltaje controladas por 3 terminales

    de control de un multiplexor, se debe de realizar la interfaz con el teclado matricial.

    Esta consistirá en que se tienen 4 entradas que controlan las salidas de voltaje (1 contador

    y 3 terminales de control de un multiplexor) y cada pulso del teclado tiene que activar las

    4 salidas antes mencionadas, dependiendo de la tecla que se oprima se mandarán un

    cierto número de pulsos al contador (que serán entre 0 y 7) y los bits de control del

    multiplexor tomarán un dato binario (también de 0 a 7). Teniendo la particularidad que,

    para que se den los pulsos del contador, las terminales de control del multiplexor tienen

    que estar en cero, y para que las terminales de control tomen un valor diferente de 0, el

    contador debe de estar en cero, esto porque la fuente tiene dos módulos (revisar el

    apartado explicando el segundo módulo de la fuente).

    La interfaz propuesta es un Pic, donde el teclado matricial estará conectado a un puerto

    del Pic, puerto configurado como entrada, y el pulso que controla al contador y las 3

    terminales de control del multiplexor analógico estarán en medio puerto (4 bits)

    configuradas como salidas [15].

    La siguiente tabla muestra las entradas, las salidas del contador y terminales de control

    así como los voltajes de salida que suministrarán.

  • 31

    Número de tecla Valor de las

    terminales de

    control en número

    binario

    Voltaje de salida

    1 000 x

    2 000 x

    3 000 x

    4 000 x

    5 000 x

    6 000 x

    7 000 x

    8 000 x

    9 001 1.2

    10 010 1.8

    11 011 3.3

    12 100 4

    13 101 5.2

    14 110 7.1

    15 111 8.8

    Tabla 3.3 Pulsos del contador y valores de las terminales de control para obtener los voltajes de salida

    3.2 Generador de funciones

    3.2.1 Generación de Señal senoidal de 8 puntos

    Para realizar el generador de funciones, lo primero que debemos elegir es el cómo se

    realizará y las herramientas para esto. Al buscar una herramienta de medición totalmente

    programable, elegimos un compilador, en éste caso será el Code Composer y la interfaz,

    que nos permitirá sacar la señal que se habrá de programar, se utilizará una tarjeta DSK,

    el modelo TMS320C6713.

  • 32

    El primer paso para generar una señal (la primera señal que generaremos es una senoide)

    es la configuración del Software conforme el hardware que utilizaremos

    3.2.1.1 Configuración del CCS

    Antes de comenzar a desarrollar una aplicación es necesario configurar el CCS, mediante

    el Code Composer Studio Setup, para indicar el tipo de plataforma con la cual se realizará

    el desarrollo de la aplicación, puede ser un sistema de emulación, el DSK, o un módulo

    de evaluación EVM, o cualquier otra plataforma de hardware que incluya algún DSP. Al

    abrir el CCS se desplegará una ventana como la que se observa en la figura 3.7.

    Figura 3.7. Configuración del code composer studio.

    Si no abre la venta de configuración, esta se debe abrir desde el menú usando File→

    Import. En la pantalla de configuración se debe seleccionar C6713DSK y después oprimir

    save and quit.

    3.2.1.2 Desarrollo de aplicaciones en CCS

    Para el desarrollo de una aplicación en CCS es necesario crear un proyecto, el cual se

    encarga de guardar toda la información requerida para la creación de un ejecutable. En la

  • 33

    figura 3.8 se observan los archivos fuente, archivos de cabecera, librerías y

    configuraciones.

    Figura. 3.8 Vista de los archivos del proyecto.

    3.2.1.2 Configuración de parámetros para la construcción de un proyecto en

    CCS.

    Existen cerca de 100 opciones del compilador para cambiar el tamaño, performance, etc.

    En la siguiente tabla se presentan las opciones más usadas.

    Tabla 3.4 Opciones del compilador.

    Los proyectos contienen archivos de diferentes extensiones, estos incluyen:

    1. Archivo.pjt: Archivo con el que se crea un proyecto.

  • 34

    2. File.c: Programa fuente en C.

    3. File.asm: Programa fuente en ensamblador creado por el usuario, el compilador en

    c o el optimizador.

    4. Archivo.sa: Programa fuente en ensamblador lineal.

    5. Archivo.h: Archivo de cabecera.

    6. Archivo.lib: Archivo de librería.

    7. Archivo.cmd: Archivo de enlace para direccionar las secciones de la memoria.

    8. Archivo.obj: Archivo objeto creado por el ensamblador.

    9. Archivo.out: Archivo ejecutable, este se almacena y se ejecuta en el C6713.

    10. Archivo.cdb: Archivo de configuración cuando es usado el DS.

    3.2.1.4 Creación del proyecto

    Para crear un proyecto se selecciona Project→ New. Y se escribe el nombre del proyecto

    como se muestra en la Figura 3.9

    Figura. 3.9. Creación de un proyecto en code composer studio.

    Para crear los archivos fuente se selecciona File→ New → Source File y en la ventana

    que se abrió se escribe el código mostrado es un programa que genera una señal senoidal

    de ocho puntos controlados con interruptores.

  • 35

    #include “dsk6713_aic23.h” //archivo de cabecera para la inicialización del códec Uint32 fs = DSK6713_AIC23_FREQ_8KHZ; //Frecuencia de muestreo short loop = 0; short gain = 10; //ganancia short sine_table[8]={0,707,1000,707,0,-707,-1000,-707}; //valores de la onda senoidal void main() { comm_poll(); //inicialización DSK, códec, McBSP DSK6713_LED_init(); //inicialización de LED DSK6713_DIP_init(); //inicialización del DIP switch while(1) //ciclo infinito { if(DSK6713_DIP_get(0)==0) //Si switch #0 es presionado { DSK6713_LED_on(0); //LED #0 Enciende output_sample(sine_table[loop]*gain); //Salida if (++loop > 7) loop = 0; } else DSK6713_LED_off(0); //LED #0 apagado } }

    Se guarda el archivo con el nombre de Sine8_LED.c. En este programa se crea un buffer

    (sine_table) y se llena con ocho puntos los cuales representan sin(t), donde t =

    0,45,90,135,180,225,270, y 315 grados. Dentro de la función main es llamada la función

    comm_poll que es parte del archivo c6713dskinit.c, el cual se encarga de inicializar el

    DSK, el códec AIC 23 y los dos McBSPs en el procesador. Dentro del archivo

    c6713dskinit.c la función DSK6713_init inicializa el archivo BSL, el cual debe ser

    llamado antes que las siguientes funciones BSL, DSK6713_LED_init y

    DSK6713_DIP_init, las cuales inicializan los cuatro LEDs y los cuatro dip switch de la

    tarjeta.

    Con while(1) dentro de la función main se crea un lazo infinito, cuando el interruptor #0

    es presionado se enciende el LED #0 y la onda senoidal se genera, de otra manera

    DSK6713_DIP_get(0) será falso y LED #0 permanecerá apagado.

    La función output_sample, que se localiza en el archivo c6713dskinit.c, es llamada para

    sacar el primer valor en el buffer sine_table[0] = 0, el ciclo se incrementa hasta que se

    alcanza el ultimo valor, después se reinicializa a cero.

    Cada período T = 1/Fs = 1/8000 =0.125ms, el valor del imterruptor #0 es probado y un

    valor del buffer sine_table (con ganancia = 10) es mandado a la salida. El período de la

    señal de salida es T = 8(0.125ms) = 1ms.

  • 36

    Seleccionamos de nuevo File→ New → Source File y se agregan códigos fuente (revisar

    apéndice) que es el Programa fuente para la comunicación e inicialización del DSK

    (c6713dskinit.c). y el programa Archivo de vectores (vectors_poll.asm) y el Archivo para

    el mapeo de memoria (C6713dsk.cmd).

    La función comm_intr( ) llama las funciones apropiadas para la inicialización del DSK.

    La función input_sample( ) es usada para introducir datos mientras que la función

    output_data( ) se usa para sacar datos. Con input = input_sample( ), siendo input una

    variable de tipo short, se adquieren datos de 16-bit del canal izquierdo.

    Con el archivo .cmd se define el tipo de memoria, el origen y la longitud de varios

    espacios disponibles en la memoria, y las localidades en las que se alojan las secciones.

    Después de crear estos tres archivos se deben agregar al proyecto.

    Para agregar los archivos al proyecto se selecciona Project→ Add files to Project. Se

    selecciona el archivo c6713dskinit.c. Se da click en el símbolo “+“que está a la izquierda

    de los archivos del proyecto y se verifica que el archivo ha sido añadido al proyecto., así

    mismo, siguiendo los mismos pasos se selecciona el archivo rts6700.lib del directorio

    c:\CCStudio\c6000\cgtools\lib. Posteriormente se agrega el archivo dsk6713bsl.lib

    localizado en el directorio c:\CCStudio\c6000\dsk6713\lib y el archivo csl6713.lib

    localizado en c:\CCStudio\c6000\csl\lib.

    Figura 3.10. Archivos necesarios para la creación del proyecto.

  • 37

    Se selecciona Project→ Scan All File Dependencies, posteriormente se agreguan los

    siguientes archivos:

    Dsk6713_aic23.h Dsk6713_led.h Dsk6713:dip.h DSK6713.h C6713dskinit.h Esos los archivos se encuentran en c:\CCStudio\c6000\dsk6713\include.

    3.2.1.5 Opciones del compilador

    Se selecciona Project→ Build Options, seleccione y se realizan los siguientes cambios

    Fig. 3.11.

    Figura. 3.11. Opciones del compilador de CCS.

  • 38

    En la categoría de preprocesador se escribe en Define Symbols {-d}: CHIP_6713y de la

    categoría Feedback, se selecciona para Interlisting: OPT/C and AMS{-s}.

    Figura. 3.12. Opciones del compilador.

    3.2.1.6 Construcción del proyecto.

    Se selecciona Project→ Rebuild All , de esta forma se compila y ensambla los archivos

    en C. Los archivos objeto resultantes son enlazados con los archivos de librería y de esta

    manera se crea el archivo ejecutable sine8_LED.out el cual puede ser cargado en el

    procesador.

    Se selecciona File→ Load Program para cargar el archivo en el procesador. Este archivo

    debe estar en el folder sine8_LED\Debug. Se selecciona Debug→ Run y la señal de

    salida es una señal senoidal de 1KHz (f = Fs/(número de puntos) = 8KHz/8 = 1KHz)

  • 39

    3.2.1.7 Monitoreo de Watch Window

    Por medio de una herramienta que nos porporciona el CCS (el Watch window) podemos

    cambiar el valor de un parámetro o monitorear una variable mientras el programa está

    corriendo

    Se selecciona View→ Quick Watch Window, con esto se desplegará en la parte de abajo

    del CCS. En el watch window se selecciona watch y se escribe gain. El valor de la

    ganancia deberá aparecer en el watch window.

    Después se escribirá directamente en el programa mientras éste está corriendo el valor del

    “gain” que oscila entre 10 y 30, lo que sucede cuando se varía este valor, es que la

    amplitud de la onda variará dependiendo del valor que se le ponga al gain, esto en tiempo

    real, para ver la onda se conecta un osciloscopio y se observa cómo varía ne tiempo real

    la amplitud, ó en su defecto puede conectarse una bocina, la cual generará un tono que,

    variará su frecuencia conforme se varía el gain.

    GEL (General Extension Language)

    Existe otro tipo de programa para agregar, uno con extensión GEL, por medio del GEL

    (General Extension Language) es posible cambiar el valor de una variable deslizándose a

    través de diferentes valores mientras el procesador esta ejecutando el programa. Para

    crear el archivo GEL se selecciona New→ Source File y se escribe el siguiente código:

    menuitem "Sine Gain" slider Gain(10,35,5,1,gain_parameter) /*incremento de valores*/ { gain = gain_parameter; /*variación de la variable ganancia del seno*/ }

    Con este archivo la ganancia inicial del seno tiene un valor de 10 y se puede modificar

    hasta un valor de 35 con incrementos de 5.

    Hay que guardar el archivo como gain.gel, se agrega al proyecto y de nuevo se

    selecciona Rebuild all para construir el proyecto. Se carga el archivo .out en el

    procesador. Se selecciona GEL→ Sine Gain→ Gain, con esto se abrirá una ventana que

  • 40

    contiene la barra con la que se puede desplazar a través de los diferentes valores de la

    ganancia Fig. 3.13

    Fig. 3.13. Ventana que genera el archivo GEL.

    4.1 Osciloscopio de estado sólido.

    El funcionamiento del osciloscopio de estado sólido que se presenta en la figura 3.14 se

    basa en dos circuitos integrados principalmente, el LM3914 y el CD4017B

    Fig. 3.14 Osciloscopio de estado sólido

    El LM3914 es un circuito integrado monolítico que censa el nivel de voltaje presente en

    su entrada, y controla 10 LEDs, proveyendo una escala lineal de 10 pasos. Dispone de un

    pin para cambiar el modo de funcionamiento, permitiendo elegir si la representación va a

    ser una barra de luz, o solo un punto. La corriente que circula por los LEDs es regulada y

    programable, de manera que no se necesitan resistencias individuales para cada uno de

  • 41

    ellos. Esta característica, entre otras, le permite trabajar con menos de 3 volts de

    alimentación.

    El integrado contiene su propia referencia de tensión, y un divisor de voltaje de 10 etapas,

    cuyas salidas son las encargadas de manejar los LEDs.

    La entrada está protegida contra sobre tensiones, por lo que no es necesario dotarlo de

    protecciones adicionales si no se esperan entradas que superen los 35 voltios.

    Es posible poner en cascada varios LM3914 para obtener escalas de 20, 30 o hasta 100

    leds. Ambos extremos del divisor de voltaje son disponibles desde el exterior del chip.

    Esta última característica permite obtener una matriz de leds más grande aumentando en

    escalas de 10x10 (o sea, 100 leds más por cada adición de otro integrado LM3914 y el

    CD4017B) lo que daría más resolución al osciloscopio [16].

    Mientras que el CD4017B es un un contador/divisor por 10, que por cada pulso recibido

    incrementa en uno el valor de la cuenta, poniendo en alto la salida correspondiente.

    Contiene en su interior un contador Johnson de 5 etapas que puede dividir o contar por

    cualquier valor entre 2 y 9 los pulsos que se ingresan por una de sus entradas, llamada

    CLOCK (reloj).

    La forma de trabajo es un mapeo vertical horizontal, donde el LM3914 censará el nivel

    recibido de la señal de entrada de manera vertical, así el CD4017B activará su contador

    recibiendo las señales horizontales del otro integrado, con cada pulso recibido en el pin

    14 se iluminarán las salidas conforme la señal vaya entrando, esto encenderá la matriz de

    leds (10x10) en el mapeo horizontal.

  • 42

  • 43

    CAPÍTULO IV RECOMENDACIONES.

  • 44

    4.1 Sobre la fuente programable.

    A futuro se recomienda usar multiplexores con más entradas, un multiplexor que ofrezca

    8 terminales de control sería igual a mandar 256 señales por un mismo canal lo que se

    traduce en 256 salidas diferentes de voltaje con solo 8 terminales de control que, usando

    la interfaz Pic propuesta sería solamente usar un puerto completo para las salidas, además

    de que, un solo multiplexor nos eliminaría una gran cantidad de resistencia de interruptor

    la cual nos baja la corriente de la fuente.

    También se recomienda a futuro utilizar un diseño que pueda proveer más corriente a la

    fuente de alimentación, un arreglo de transistores podría solucionar ese problema

    4.2 Sobre el generador de funciones

    A futuro se puede considerar la posibilidad de desarrollar otro tipo de interfaces que

    permitan interactuar al usuario con el DSP de forma más amigable. Esto implicará usar

    controles de amplitud y frecuencia basados en por ejemplo, potenciómetros. Desde luego

    que el diseño adicional de esas interfaces presenta otro tipo de retos.

    4.3 Sobre el osciloscopio de estado sólido.

    Esta es una buena herramienta para visualizar algunos tipos de señales, más que nada

    muy económica con respecto a otro tipo de osciloscopios, que si bien, son más eficaces,

    su precio los hace más inaccesibles.

    El osciloscopio propuesto deja bases para poder tener más resolución, esto agregando dos

    integrados por cada 100 leds a aumentar.

  • 45

    La recomendación es trabajar con una interfaz diferente a una matriz de leds, porque, si

    bien, con una matriz de 20x20 ó 30x30 la resolución sería bastante aceptable, el tamaño

    que tendría esta matriz sería impráctico, lo mejor e trabajar el principio de mapeo que

    tiene este osciloscopio y hacer una interfaz con una pantalla LCD de un tamaño donde se

    pueda visualizar perfectamente la señal sin que ésta pantalla sea de un tamaño estorboso.

  • 46

    Conclusiones

    Lo más importante es dejar el precepto teórico y práctico del cómo hacer una fuente

    programable que ofrezca diferentes valores de voltaje a la salida. Esto basándonos en

    mandar varias señales por un mismo canal haciendo una interfaz de selección (el Pic) y

    así dependiendo del número de salidas de voltaje que se deseen y el valor de estas se

    configura la fuente. Es de lo más importante, que el diseño puede ser para un “n” número

    de voltajes de salida y no sólo eso, además son voltajes que el usuario puede elegir y que

    sólo con una calibración a las resistencias se logran tener las salidas que el usuario desea.

    Se concluye que el DSP es una poderosa herramienta para procesar señales (El DSP

    6713) y para fines de un generador de funciones, donde se puedan manipular un número

    considerable de variables en tiempo real, es una perfecta herramienta. La facilidad que

    proporciona de hacer una programación en “C” permite un entorno programable

    amigable.

    El hecho que, los generadores convencionales no tienen una comunicación de este tipo

    con la computadora hace a este generador un elemento flexible y novedoso.

  • 47

    APENDICE A

    Código de programas realizados

    Código para una señal senoidal

    #include “dsk6713_aic23.h” //archivo de cabecera para la inicialización del códec Uint32 fs = DSK6713_AIC23_FREQ_8KHZ; //Frecuencia de muestreo short loop = 0; short gain = 10; //ganancia short sine_table[8]={0,707,1000,707,0,-707,-1000,-707}; //valores de la onda senoidal void main() { comm_poll(); //inicialización DSK, códec, McBSP DSK6713_LED_init(); //inicialización de LED DSK6713_DIP_init(); //inicialización del DIP switch while(1) //ciclo infinito { if(DSK6713_DIP_get(0)==0) //Si switch #0 es presionado { DSK6713_LED_on(0); //LED #0 Enciende output_sample(sine_table[loop]*gain); //Salida if (++loop > 7) loop = 0; } else DSK6713_LED_off(0); //LED #0 apagado } }

    Código para una señal cuadrada

    //Squarewave.c Generates a squarewave using a look-up table #include "dsk6713_aic23.h" //codec-DSK interface support Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate #define table_size (int)0x40 //size of table=64 short data_table[table_size]; //data table array int i; interrupt void c_int11() //interrupt service routine { output_sample(data_table[i]); //output value each Ts if (i < table_size) ++i; //if table size is reached else i = 0; //reinitialize counter return; //return from interrupt } main() { for(i=0; i

  • 48

    Código para una Rampa

    //Ramp.c Generates a ramp #include "dsk6713_aic23.h" //codec-DSK support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling frequency short output; interrupt void c_int11() //interrupt service routine { output_sample(output); //output each sample period output += 0x20; //incr output value if (output >= 0x7FFF) //if peak is reached output = 0; //reinitialize return; //return from interrupt } void main() { output = 0; //init output to zero comm_intr(); //init DSK, codec, McBSP while(1); //infinite loop }

    Código que genera el archivo C6713dskinit.h

    #include "C6713dskinit.h" #define using_bios extern Uint32 fs; void c6713_dsk_init() //Inicialización de periféricos { DSK6713_init(); //LLama al BSL para inicializar DSK-EMIF,PLL hAIC23_handle=DSK6713_AIC23_openCodec(0, &config); DSK6713_AIC23_setFreq(hAIC23_handle, fs); //Establece frecuencia de muestreo MCBSP_config(DSK6713_AIC23_DATAHANDLE,&AIC23CfgData);//Interfaz de 32 bits AIC23 MCBSP_start(DSK6713_AIC23_DATAHANDLE, MCBSP_XMIT_START | MCBSP_RCV_START | MCBSP_SRGR_START | MCBSP_SRGR_FRAMESYNC, 220); //Inicio del canal de datos } void comm_poll() { poll=1; c6713_dsk_init(); //Inicializa DSP y codec } void comm_intr() // Comunicación con interrupciones { poll=0; IRQ_globalDisable(); //Deshabilita interrupciones c6713_dsk_init(); CODECEventId=MCBSP_getXmtEventId(DSK6713_AIC23_codecdatahandle);//McBSP1 #ifndef using_bios IRQ_setVecs(vectors); #endif IRQ_map(CODECEventId, 11); IRQ_reset(CODECEventId); IRQ_globalEnable(); IRQ_nmiEnable(); IRQ_enable(CODECEventId); output_sample(0); //Inicio de McBSP para mandar las muestras a la salida } void output_sample(int out_data) //Salida de canales izquierdo y derecho { short CHANNEL_data; AIC_data.uint=0; AIC_data.uint=out_data; CHANNEL_data=AIC_data.channel[RIGHT]; AIC_data.channel[RIGHT]=AIC_data.channel[LEFT]; AIC_data.channel[LEFT]=CHANNEL_data; if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE)); MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint);//Escritura/salida datos }

  • 49

    void output_left_sample(short out_data) //Salida del canal izquierdo { AIC_data.uint=0; AIC_data.channel[LEFT]=out_data; if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE)); MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint); } void output_right_sample(short out_data) //Salida del canal derecho { AIC_data.uint=0; AIC_data.channel[RIGHT]=out_data; if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE)); MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint); } Uint32 input_sample() { short CHANNEL_data; if (poll) while(!MCBSP_rrdy(DSK6713_AIC23_DATAHANDLE)); AIC_data.uint=MCBSP_read(DSK6713_AIC23_DATAHANDLE); CHANNEL_data=AIC_data.channel[RIGHT]; AIC_data.channel[RIGHT]=AIC_data.channel[LEFT]; AIC_data.channel[LEFT]=CHANNEL_data; return(AIC_data.uint); } short input_left_sample() //Entrada canal izquierdo { if (poll) while(!MCBSP_rrdy(DSK6713_AIC23_DATAHANDLE)); AIC_data.uint=MCBSP_read(DSK6713_AIC23_DATAHANDLE); return(AIC_data.channel[LEFT]); } short input_right_sample() //Entrada canal derecho { if (poll) while(!MCBSP_rrdy(DSK6713_AIC23_DATAHANDLE)); AIC_data.uint=MCBSP_read(DSK6713_AIC23_DATAHANDLE);//Leer canal derecho return(AIC_data.channel[RIGHT]);

    Código que genera el archivo Vectors_poll.asm

    *Vectors_poll.asm Vector file for polling .global _vectors .global _c_int00 .global _vector1 .global _vector2 .global _vector3 .global _vector4 .global _vector5 .global _vector6 .global _vector7 .global _vector8 .global _vector9 .global _vector10 .global _vector11 .global _vector12 .global _vector13 .global _vector14 .global _vector15 .ref _c_int00 VEC_ENTRY .macro addr STW B0,*--B15 MVKL addr,B0 MVKH addr,B0 B B0 LDW *B15++,B0 NOP 2 NOP NOP .endm _vec_dummy: B B3 NOP 5

  • 50

    .sect ".vecs" .align 1024 _vectors: _vector0: VEC_ENTRY _c_int00 _vector1: VEC_ENTRY _vec_dummy _vector2: VEC_ENTRY _vec_dummy _vector3: VEC_ENTRY _vec_dummy _vector4: VEC_ENTRY _vec_dummy _vector5: VEC_ENTRY _vec_dummy _vector6: VEC_ENTRY _vec_dummy _vector7: VEC_ENTRY _vec_dummy _vector8: VEC_ENTRY _vec_dummy _vector9: VEC_ENTRY _vec_dummy _vector10: VEC_ENTRY _vec_dummy _vector11: VEC_ENTRY _vec_dummy _vector12: VEC_ENTRY _vec_dummy _vector13: VEC_ENTRY _vec_dummy _vector14: VEC_ENTRY _vec_dummy _vector15: VEC_ENTRY _vec_dummy

    Código que genera el archivo C6713dsk.cmd

    MEMORY { IVECS: org=0h, len=0x220 IRAM: org=0x00000220, len=0x0002FDE0 /*memoria interna*/ SDRAM: org=0x80000000, len=0x00100000 /*memoria externa*/ FLASH: org=0x90000000, len=0x00020000 /*memoria flash*/ } SECTIONS { .EXT_RAM :> SDRAM .vectors :> IVECS /*archivo de vectores*/ .text :> IRAM .bss :> IRAM .cinit :> IRAM .stack :> IRAM .sysmem :> IRAM .const :> IRAM .switch :> IRAM .far :> IRAM .cio :> IRAM .csldata :> IRAM }

  • 51

    APENDICE B

    Hojas de especificaciones utilizadas

    LM317

  • 52

  • 53

    DS1669

  • 54

  • 55

    BIBLIOGRAFÌA

    [1] N. Kehtarnavaz, B. Simsek, C6x – Based Digital Signal Processing, Prentice Hall, Upper Saddle River, NJ, 2000. [2] Proakis, Jonh, Digital Signal Processing: Using Matlab, International Thomson, 1997 [3] Proakis, Jonh, Digital Signal Processing: Principles, Algorithms, And Applications, Pearson Education, 2006 [4] Tratamiento Digital de señales Problemas y ejercicios resueltos, Soria, Matínez, Pearson, Madrid, 2009 [5] Boylestad, Introducción al análisis de circuitos, Pearson, México 2004 [6] Osciloscopios: Funcionamiento y utilización, Rateau, René, Thomson Paraninfo, España,1999. [7] Introducción al Procesamiento Digital de señales. Vignolo, Ediciones Universitarias de Valparaiso, Chile, 2008 [8] R. Chassaing, Digital Signal Processing and Applications with the C6713 and C6416 DSK, Wiley New York, 2000. [9] Avalos, Juan Gerardo. Algoritmo LMS con Error Codificado Usando un DSP, Tesis de maestría, 2008. [10]Rulph Chassaing, Processing and Applications with the C6713 and C6416 DSK Digital Signal, Wiley-intersciencie, Canadá 2005, 2º edición. [11] Wiley, Digital Signal Processing and Applications with the C6713 and C6416 DSK (2005) DDU OCR 7.0-2.6 LotB [12]LLORIS, ANTONIO. Sistemas digitales. Editorial Mc Graw-Hill [13]FLOYD, T.L. Fundamentos de Sistemas Digitales, Editorial Prentice Hall [14]JOHN F. WAKERLY. Diseño Digital: Principios y prácticas. Editorial Prentice Hall [15] Palacios, Enrique. Microcontrolador PIC16f84A. Alfaomega, México 2006, 2º edición. [16] Mims, Forrest M. Notas de Electrónica; Aplicaciones de Circuitos Integrados. McGraw-Hiil. México 1988. Página 107,108