generador digital de seÑales arbitrarias digital de... · 2.2.1.2. interfaz del dac:...

46
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL SAN NICOLAS INGENIERIA EN ELECTRONICA PROBLEMA DE INGENIERÍA TECNICAS DIGITALES III GENERADOR DIGITAL DE SEÑALES ARBITRARIAS Integrantes: - Abecasis Marco - Valía Gabriel Docentes: - Profesor: Poblete Felipe - Auxiliar: Gonzalez Mariano AÑO 2013

Upload: vohuong

Post on 19-Sep-2018

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

UNIVERSIDAD TECNOLOGICA NACIONAL

FACULTAD REGIONAL SAN NICOLAS

INGENIERIA EN ELECTRONICA

PROBLEMA DE INGENIERÍA

TECNICAS DIGITALES III

GENERADOR DIGITAL DE SEÑALES

ARBITRARIAS

Integrantes:

- Abecasis Marco

- Valía Gabriel

Docentes:

- Profesor: Poblete Felipe

- Auxiliar: Gonzalez Mariano

AÑO 2013

Page 2: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

2

INDICE

1. OBJETIVOS DEL TRABAJO 3

1.1. MATERIAS INTEGRADAS ...................................................................................................... 3

1.2. POSIBLES APLICACIONES ..................................................................................................... 3

1.3. BIBLIOGRAFÍA ......................................................................................................................... 3

2. DESARROLLO 4

2.1. INTRODUCCIÓN....................................................................................................................... 4

2.2. TEORÍA DE FUNCIONAMIENTO ........................................................................................... 4

2.2.1. HARDWARE ..................................................................................................................... 4

2.2.1.1. MICROCONTROLADOR .......................................................................................... 5

2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ......................... 7

2.2.1.3. ETAPA DE SELECCIÓN DE FILTRO ..................................................................... 8

2.2.1.4. FILTROS ..................................................................................................................... 9

2.2.1.5. ALIMENTACION .................................................................................................... 11

2.2.2 FIRMWARE ..................................................................................................................... 11

2.2.2.1. CONCEPTOS DEL ALGORITMO .......................................................................... 11

2.2.2.2. BUCLE CENTRAL .................................................................................................. 13

2.2.2.3. REPRODUCCION DESDE RAM ............................................................................ 14

2.2.2.4. REPRODUCCION DESDE TARJETA SD ............................................................. 15

2.2.2.5. TARJETA SD ........................................................................................................... 18

2.2.2.7. COMUNICACIÓN CON LA PC .............................................................................. 24

2.2.3. SOFTWARE .................................................................................................................... 27

2.2.3.1. CLASE SigGen ......................................................................................................... 27

2.2.3.1.1. GESTION DE PROTOCOLOS ......................................................................... 27

2.2.3.1.2. CREACION DE SEÑALES ............................................................................... 28

2.2.3.2. CLASE HeaderData .................................................................................................. 31

2.2.3.2.1. CREACION DE SEÑALES PERSONALIZADAS .......................................... 32

2.2.3.3. INTERFAZ DE USUARIO ...................................................................................... 34

2.3. RESULTADOS DE LAS PRUEBAS ........................................................................................ 38

3. CONCLUSIONES 42

ANEXO 1 ESQUEMATICO FUENTE: 43

ANEXO 2 ESQUEMATICO FILTRO 20 KHz: 44

ANEXO 3 ESQUEMATICO PLACA PRINCIPAL: 45

Page 3: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

3

1. OBJETIVOS DEL TRABAJO

Diseñar un generador de señales arbitrarias para el ensayo de circuitos con señales específicas o

típicas. Dichas señales serán diseñadas por una PC, siendo reproducibles de forma stand alone (a

partir de una señal pre-grabada), o creadas en el momento de usarlas.

1.1. MATERIAS INTEGRADAS

Técnicas digitales III: Tratamiento de señales y programación en entorno de PC.

Teoría de los circuitos II: Filtros.

Técnicas digitales II: Programación de microcontroladores.

Medidas Electrónicas I y II: Conversores digital-analógico

Electrónica aplicada I y II: Amplificadores.

1.2. POSIBLES APLICACIONES

Ensayo de filtros.

Prueba en Amplificadores.

Ensayo de sistemas embebidos frente a señales analógicas específicas de entrada.

Síntesis de señales adquiridas por otro sistema.

1.3. BIBLIOGRAFÍA

• Paper

• Manejo de una memoria SD/MMC con un PIC16F87x – Carlos Alberto Henao, Edison

Duque Cardona, Universidad Tecnológica de Pereira, Abril 2010.

• Sitios de Internet.

• Sitio 1 – Autor 1

Libros.

DsPIC30F Family referenc Manual – Microchip.

DsPIC30F Datasheet - Microchip.

LF351 Datasheet - Texas Instrument

AD7541ASE Datasheet - Analog Devices.

HC4052 Datasheet - ON Semiconductor.

LF347 Datasheet - Texas Instrument.

Sandisk Secure Digital Card Product Manual - Sandisk.

Page 4: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

4

2. DESARROLLO

2.1. INTRODUCCIÓN

En este informe se pretende explicar el principio de funcionamiento del generador de señales

arbitrarias desarrollado para la materia técnicas digitales III. Dicho instrumento permite reproducir

cualquier tipo de señal analógica, ya sean estándares, como senoidales, cuadradas, triangulares y

dientes de sierra, como también señales definidas por el usuario.

El sistema cuenta con un software para PC, el cual debe ser utilizado por el usuario para el diseño y

definición de cualquier señal, tanto estándar como personalizada. En dicho programa se encuentra

embebido todas las funcionalidades requeridas para la comunicación con el generador, la capacidad

de leer los archivos de señales personalizadas del usuario, y el cálculo de las señales estándares.

En la reproducción de señales estándares el usuario debe definir al menos el tipo de señal, la

frecuencia, amplitud y componente de continua de la misma, y si lo desease el filtro a de salida a

utilizar. Luego el programa se hará cargo de los cálculos y decisiones pertinentes para la carga al

generador y correcta reproducción de la señal.

En la reproducción de señales personalizadas el usuario debe diseñarla u obtenerla externamente y

cargarla en el programa especificando el archivo en el que se encuentra. En este proyecto se ha

programado un script de MATLAB denominado sample2signal que a partir de la frecuencia o

tiempo de muestreo y un vector de muestras genera los archivos de señal que pueden ser cargados

en el programa del generador. Esto le permite al usuario emplear MATLAB como herramienta para

la creación de señales.

2.2. TEORÍA DE FUNCIONAMIENTO

Para ordenar y facilitar el análisis del desarrollo del proyecto esta sección se divide en hardware,

firmware, y software. De esta forma se pretende que el lector pueda comprender el desarrollo de

una forma guiada y sencilla, en la cual cada sección aporta información detallada e introduce

conceptos para el entendimiento de las secciones posteriores.

2.2.1. HARDWARE

El hardware del generador de señales puede ser dividido en los bloques fundamentales descriptos en

la figura 2.2.1.1

PC: Representa la existencia y relación de la misma con el generador pero no forma parte

del hardware del generador propiamente dicho.

USB-UART: Permite la comunicación entre la PC y el generador, actuando como una interfaz UART desde el punto de vista del generador, y una interfaz serie desde el punto de

vista de la PC.

Microcontrolador: Es el encargado de comprender las instrucciones de la PC, gestionar el manejo de datos de la tarjeta SD, generar la señal a partir de las muestras conectándose con

Page 5: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

5

un DAC, interpretar y efectuar señalizaciones en hardware, y la selección del filtro de

salida.

Tarjeta SD: Provee un espacio de memoria para señales de larga duración y para el

guardado de señales para operación stand alone (que pueden ser reproducidas sin haber

sido conectada a una PC).

Conversor digital-Analógico (DAC): Convierte una entrada paralela de 12 bits en binario corrido proveniente del micro en una señal analógica cuya excursión de salida puede

comprender valores positivos y negativos de tensión.

Filtros: Se utiliza para la interpolación de los escalones que componen la señal discreta generada por el micro, es decir, se utiliza para la reconstrucción de la señal.

MUX analógico: El generador cuenta con dos filtros de reconstrucción, un filtro auxiliar

que puede construir el usuario, y una salida directa. El MUX selecciona uno de estos como

salida del generador en función de la orden del microcontrolador.

Buffer de Salida: Ofrece una alta impedancia y una protección contra sobrecarga y cortocircuito al circuito del generador y una muy baja impedancia para un comportamiento

de fuente ideal en la salida.

Figura 2.2.1.1. Diagrama en bloques del generador

2.2.1.1. MICROCONTROLADOR

El microcontrolador elegido es el dsPIC30F4011 de Microchip, que cuenta con:

Una distribución de puertos de propósito general que facilita la conexión con el DAC

seleccionado.

Una velocidad de ejecución de 30 MIPS, que cumple con los requisitos de timing para las frecuencias de muestro deseadas.

La característica de módulo addressing que permite el direccionamiento cíclico de una sección de memoria por hardware a través de un puntero.

Page 6: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

6

Figura 2.2.1.1.1. Pinout 30F4011segun aplicación

En la figura 2.2.1.1.1. se indica el pinout del microcontrolador en relación con el resto del hardware.

Debido a que los pines correspondientes de los bits de la entrada digital del DAC se encuentran

distribuidos con media palabra digital de un lado del chip y media palabra del otro, se emplea la

misma distribución en los pines del micro. Por esto los bits del 0 al 5 del PORTB corresponden al

lado más significativo de la palabra, y los bits del 0 al 5 del PORTE corresponden al menos

significativo. Para simplificar aún más el diseño del PCB, y queden pistas sin cruces, se rotan los

bits del PORTE (Hace [0 1 2 3 4 5] -> [5 4 3 2 1 0]). (Véase 2.2.1.2. INTERFAZ DEL DAC:

FUNCIONAMIENTO Y CALIBRACION).

Para señalizar visualmente la actividad del micro se dispone de tres luces: Luz de Encendido en el

pin RC14 para indicar que el controlador esta alimentado y ejecutando instrucciones; Luz de

Reproducción en el pin RD1 para indicar que el generador está sintetizando una señal; Luz de

BUSY en el pin RD3, que indica si se está procesando una orden de la PC por UART.

Se cuenta con un pulsador START/STOP en el pin RE8 (INT0) para iniciar o detener la

reproducción desde el hardware y eventualmente permitir el uso de la función Stand Alone, la cual

permite reproducir una señal pregrabada en la tarjeta SD sin conexión previa de la PC.

Con el fin de obtener un baudrate exacto en el UART, se selecciona un cristal de 7.3728MHz, lo

que establece una frecuencia de ejecución de instrucciones de 29,4912 MHz.

Se dispone el PORTF al control de selección del MUX analógico correspondiendo el pin RF0 a la

entrada A y el pin RF1 a la entrada B. (Véase 2.2.1.3. ETAPA DE SELECCIÓN DE FILTRO)

La información referente a las configuraciones y los protocolos en las interfaces UART y SPI se

abordaran en las secciones 2.2.2.7. COMUNICACIÓN CON PC y 2.2.2.5. TARJETA SD

respectivamente.

Page 7: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

7

2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION

Para la etapa de conversión digital-analógica se utilizó un conversor de 12 bits tipo R-2R AD7541A

de Analog Devices. Este cumple con los requerimientos de la cantidad de bits de entrada como la

velocidad de respuesta requerida a la frecuencia de muestreo lograda con el microcontrolador.

Como se observa en la figura 2.2.1.2.1., la estructura del chip consta de una red R-2R y el control

de los terminales de la misma se realiza a través de transistores MOSFET, lo que asegura un

aislamiento entre el microcontrolador y la etapa analógica.

Figura 2.2.1.2.1. Diagrama interno del DAC.

Figura 2.2.1.2.2. Pinout del DAC según aplicación.

Page 8: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

8

Considerando recomendación del fabricante, que la tensión debe excursionar entre valores positivos

y negativos, y que la codificación más usual para este tipo de salida es binario corrido, se

implementó la configuración de la figura 2.2.1.2.3. La resistencia R1 se utiliza para controlar la

referencia, R2 para controlar la realimentación del operacional A1, que es el encargado de convertir

la salida en corriente del DAC en una salida en tensión de 0 a -5V en este caso. EL capacitor C1 se

utiliza para la compensación de fase y la estabilidad del circuito. El amplificador operacional A2

permite configurar el cero y el rango de la tensión de salida (Full Scale). Los ajustes controlados por

A2 se realizan con la variación de R4 y R5.

Figura 2.2.1.2.3. Configuracion empleada del DAC.

Tomando en cuenta que las especificaciones de diseño para este generador exigen una salida de

entre -5 y +5V, y que la codificación de la palabra digital es de 12 bits binario corrido, se deben

realizar los siguientes pasos de calibración sobre el circuito de la figura 2.2.1.2.3. para asegurar el

correcto funcionamiento de toda la etapa analógica:

1. Configurar la entrada digital del DAC en 0x0800 (correspondiente a Vout = 0V).

2. Ajustar R1 y R2 hasta que la tensión de salida de A1 sea -2.5V

3. Variar R5 hasta que la salida de A2 este dentro del rango deseado (Para evitar ganancia nula

o saturación del AO).

4. Variar R4 hasta que la salida de A2 sea 0V (ajuste de cero).

5. Setear la entrada del DAC en 0x0000 (correspondiente a Vout = -5V ).

6. Variar R5 hasta que la salida de A2 sea -5V.

7. Setear la entrada del DAC en 0x0FFF (correspondiente a 5V).

8. Verificar que efectivamente Vout = 5V (típico 4,997V).

Para facilitar dicha calibración el software incluye un control manual de voltaje a fin de introducir

las palabras digitales mencionadas en los pasos anteriores.

2.2.1.3. ETAPA DE SELECCIÓN DE FILTRO

Para poder abarcar las necesidades de filtrado a distintas frecuencias de muestreo que el usuario

pudiera necesitar, el generador provee distintas alternativas. Sin embargo como el generador solo

posee una salida, se utiliza un MUX analógico que realice la selección de la alternativa deseada. El

Page 9: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

9

MUX empleado es el HCF4052BE de ST Microelectronics, cuyas características se describen en la

figura 2.2.1.3.1. Como solo se necesitan cuatro canales se utiliza el switch X y se anula el switch Y

con resistencias de pull-down de 100 ohm a la entrada según especificaciones del fabricante. De

estos cuatro canales, uno es la salida sin filtro, y los otros tres son salidas filtradas. Uno con

frecuencia de corte de 20KHz, otro con frecuencia de corte de 441KHz y el tercero se deja a

disposición del usuario para sus filtros ad-hoc.

Figura 2.2.1.3.1. Especificaciones del MUX HCF4052BE

Con el fin de proteger el circuito y evitar que el dispositivo conectado al generador vea la

impedancia de 220 ohm de la salida del MUX se coloca un seguidor de tensión como etapa de

salida.

2.2.1.4. FILTROS

Los filtros mencionados en la sección anterior son filtros pasa bajos tipo Bessel de orden seis de

arquitectura Sallen Key. Con esto se evita los cambios en la forma de onda por fase no lineal e

inversiones de tensión a la salida.

El criterio empleado para la selección de la frecuencia de corte consiste en abarcar diferentes

frecuencias de muestreo dentro del ancho de banda del generador:

Fc = 20KHz: Soportar señales diseñadas para trabajar en el rango de audiofrecuencia.

Fc = 441KHz: Soportar señales cuya frecuencia de muestreo se encuentra a velocidades bajas respecto a las típicas en las que trabaja el generador.

Page 10: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

10

Figura 2.2.1.4.1 Filtro Fc=20Khz

Figura 2.2.1.4.2 Diagrama de Bode Filtro Fc=20KHz

Figura 2.2.1.4.3 Filtro Fc=441Khz

Figura 2.2.1.4.4 Diagrama de Bode Filtro Fc=441KHz

Page 11: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

11

2.2.1.5. ALIMENTACION

Se diseñó una fuente partida con tensiones de entrada mínima de ±12Vdc y máxima de ±20Vdc con

salidas de ±9Vdc y ±5Vdc. Con los +5Vdc se alimentan toda la circuitería digital. Con los ±9Vdc se

alimenta los filtros, los operacionales y el DAC, y finalmente con ±5Vdc, el MUX analógico (el

esquemático de la fuente se encuentra en el ANEXO 1).

2.2.2 FIRMWARE

Para el desarrollo del Firmware se utilizó el IDE de Microchip MPLAB basado en la plataforma

Netbeans y el compilador XC16 del mismo fabricante que permite la compilación tanto de

Assembler como C en controladores de 16 bits. En este diseño, para tener conciencia sobre el

tiempo de ejecución de los procesos y considerando la dinámica con la que se trabaja con la RAM,

se optó por programar el microcontrolador enteramente en Assembler.

En las siguientes secciones se explicara en detalle los procesos y conceptos fundamentales del

Firmware, abarcando desde las rutinas de reproducción y espera, hasta los protocolos de

comunicación empleados.

2.2.2.1. CONCEPTOS DEL ALGORITMO

Para facilitar la comprensión de los temas a tratar en esta sección es necesario explicar previamente

como se distribuye la memoria RAM para la reproducción directamente desde la tarjeta SD o para

la reproducción desde la RAM.

Como se observa en la figura 2.2.2.1.1. cuando la reproducción es desde la RAM, 2 KB de la

misma están destinadas al almacenamiento de la seña,l ya que según las especificaciones previstas

es posible almacenar hasta 1000 muestras. La parte dedicada a variables de control solo conserva la

mínima cantidad de datos para retener la información específica sobre la señal y los datos de control

del propio generador. Cuando la reproducción es desde la tarjeta SD, 1024 Bytes (el equivalente a

dos blocks de la tarjeta) son dedicados al buffer de lectura del algoritmo de reproducción, 512 bytes

al buffer de fin de señal, como se explicara posteriormente, y el área de variables de control se

incrementa debido a que el algoritmo requiere manejar mayor información para su funcionamiento.

Page 12: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

12

Figura 2.2.2.1.1. Mapa de memoria de la RAM del Microcontrolador

Además es necesario comprender que la comunicación entre los distintos procesos que ejecuta el

microcontrolador se realiza a través de flags dedicados en un registro de 16 bits denominado

GenStatus cuya distribución se presenta en la figura 2.2.2.1.2.

Figura 2.2.2.1.2. Registro GenStatus

Page 13: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

13

2.2.2.2. BUCLE CENTRAL

Figura 2.2.2.2.1. Diagrama de flujo bloque central

Mientras el generador se encuentra a la espera de una orden desde la PC o desde el hardware, este

se encuentra haciendo polling a los flag de petición de inicio de reproducción por RAM (ActMEM),

o tarjeta SD (ActSD) que se encuentran en el registro GenStatus. Por lo tanto, para evitar conflicto

en cuanto a las prioridades de interrupción del microcontrolador, las órdenes del usuario se obtienen

mediante rutinas de interrupción afines, y dicho algoritmo de espera se encarga de atender a dichas

peticiones e iniciar las rutinas de reproducción correspondientes. Así los procesos de reproducción

Page 14: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

14

podrán ser interrumpidos y detenidos de igual modo. En la sección 2.2.2.7. COMUNICACION

CON PC, se explicará que cualquier orden que interrumpa una reproducción es interpretada como

una indicación de que esta debe ser detenida.

2.2.2.3. REPRODUCCION DESDE RAM

Figura 2.2.2.3.1 Diagrama de flujo de reproducción desde RAM

El inicio de la reproducción solo puede ser solicitado si previamente se encuentra la información en

la RAM respecto a la cantidad de muestras, velocidad de muestreo, filtro a seleccionar y las

muestras de la señal.

Existen dos formas de reproducir desde RAM. Una de ellas es utilizando la reproducción sin Offset

(a máxima velocidad) en la cual la rutina simplemente lee muestras de la tabla y las coloca en el

puerto de salida hacia el DAC de forma cíclica. La otra consiste en introducir un retardo dentro de

cada repetición, la cual por si misma ya introduce un retardo con offset de tiempo nulo. Así el

período de muestreo a máxima velocidad se obtiene como

, y el

período del que posee offset resulta

donde offset es una parámetro de 16 bits que es

transferido al generador durante la carga de la señal.

Page 15: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

15

Esta rutina además implementa la función Modulo Addressing del dsPIC30F4011 que permite el

direccionamiento cíclico de una sección de memoria por hardware a través de un puntero evitando

que haya retardos al devolver el puntero al inicio de la tabla.

En la figura 2.2.2.3.1. se muestra la introducción del retardo con línea punteada para representar

ambos algoritmos en un solo diagrama de flujo

2.2.2.4. REPRODUCCION DESDE TARJETA SD

La reproducción de señales desde la tarjeta SD se divide funcionalmente en dos partes. Una es la

encargada de colocar el valor de las muestras en el puerto del DAC, la cual es atendida por una

interrupción por timer, asegurando periodo de muestreo constante. La otra se encarga de leer un

nuevo block desde SD cada vez que un block es leído del buffer por la rutina anterior. La frecuencia

de muestro máxima es tal que un block de muestras no alcanza a ser enviado al DAC antes que un

block pueda ser leído desde la SD, asegurando que el buffer siempre contenga muestras disponibles

y actualizadas. Por lo tanto, se ha decidido que el buffer tenga un tamaño equivalente a 2 blocks, de

forma que mientras uno es leído desde la SD y cargado en el buffer, el otro es leído desde el buffer

y enviado al DAC a una velocidad menor que la carga.

Como no está condicionada la cantidad de muestras que puede tener la señal, es muy probable que

el final de esta ocupe parcialmente un bloque. Pero, como el proceso descripto anteriormente

contempla solamente la lectura de bloques completos, este último bloque incompleto se almacena

en RAM en la inicialización, para ser leído en el debido momento.

Page 16: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

16

Figura 2.2.2.4.1. Diagrama de flujo de la rutina de mantenimiento de buffer

Page 17: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

17

Figura 2.2.2.4.2 Diagrama de flujo de la rutina de envío de muestras al DAC

Page 18: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

18

2.2.2.5. TARJETA SD

La comunicación entre el microcontrolador y la tarjeta SD se realiza por el protocolo SPI soportado

por la misma, de modo que el pinout de la tarjeta queda asignado como se muestra en la figura

2.2.2.5.1. La configuración empleada para el puerto SPI es (véase dsPIC30F Family Reference

Manual):

CKE=1: La salida del puerto cambia en la transición del estado ACTIVE al IDLE del clock.

CKP=0 (IDLE=LOW, ACTIVE=HIGH).

SMP=0: Los datos son muestreados a la mitad del tiempo de presentación.

Figura 2.2.2.5.1. Pinout Tarjeta SD

Básicamente los comandos utilizados en el proyecto son los de lectura, escritura e inicialización

como se detallara a continuación.

La estructura de dichos comandos se compone de 6 bytes de los cuales el primero corresponde al

número de comando, los otros 4 corresponden al parámetro como puede ser una dirección de

memoria, y el último corresponde a un valor de CRC que carece de importancia para el transmisor y

es ignorado por el receptor. El número de comando que va en el primer byte se obtiene poniendo en

1 el 6to bit en el numero binario que corresponde al número en el nombre del comando. Así el

comando de lectura CMD18 es 0x52. Tras emitir los 6 bytes correspondientes al comando la tarjeta

siempre responde mediante el uso de 1 byte que representa el estado de la tarjeta. En el caso de

escritura de datos la tarjeta devuelve una respuesta diferente al finalizar el proceso, como se

encuentra indicado en la figura 2.2.2.5.4.

Page 19: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

19

Figura 2.2.2.5.2 Estructura de los comandos de la SD.

Figura 2.2.2.5.3. Estructura de la respuesta de la SD a los comandos.

Figura 2.2.2.5.4. Estructura de la respuesta ante la finalización de un proceso de escritura.

La tarjeta soporta la escritura y lectura monobloque o multibloque, los cuales son invocados

mediante distintos comandos desde el microcontrolador. Cabe destacar que tanto las lecturas como

escrituras multibloque están limitados en cuanto a la cantidad de bloques consecutivos en un mismo

comando.

A continuación se detallaran los comandos empleados en el proyecto:

CMD17: Es un comando de lectura singleblock, en el cual al transmitir el comando y tras la

espera de algunos bytes en el SPI, la tarjeta responde acertadamente con la respuesta

R1=0x00 seguido posteriormente con un token de inicio de datos 0xFE.Luego se obtienen

los 512 bytes de información seguidos por 2 bytes de CRC. Finalizado el proceso la tarjeta

queda disponible para un nuevo comando.

Page 20: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

20

Figura 2.2.2.5.5. Comunicación para lectura Single Block

CMD18: Es un comando de lectura Multiblock el cual tiene una funcionalidad a la del

CMD17 con la diferencia que la SD transmitirá bloques contiguos de la memoria en la

secuencia token-datos-CRC por cada block. Tanto en este caso como en cualquier otro

comando de lectura y escritura la transferencia puede ser detenida mediante el uso del

comando CMD12. Cuando se invoca este comando la línea de datos de entrada al

microcontrolador será mantenida en 0v por la tarjeta SD indicando un estado de ocupado

(BUSY). La tarjeta quedara disponible en cuanto la línea vuelva al estado HIGH.

Figura 2.2.2.5.6. Comunicación para lectura MultiBlock

CMD24: Es un comando de escritura SingleBlock el cual tras la invocación del mismo se

obtiene una respuesta R1=0x00 desde la tarjeta y a partir del cual el microcontrolador el

token 0xFE seguido de los 512 bytes de datos y 2 bytes que serán ignorados por la tarjeta a

menos que se haya activado el uso del CRC. Luego de finalizada la transferencia la tarjeta

transmitirá 1 byte denominado Data Response el cual indicará si los datos fueron aceptados

o cual fue el error de transferencia ocurrido. Luego la tarjeta mantiene en estado LOW hasta

finalizado el proceso de escritura en la memoria.

Page 21: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

21

Figura 2.2.2.5.7. Comunicación para escritura Single Block

2.2.2.6. INICIALIZACION DE TARJETA SD

Figura 2.2.2.6.1. Mapa de memoria empleado en la SD

Para poder almacenar la información de la señal tanto para reproducción stand alone como

reproducción directa desde la SD se dispone el mapa de memoria como se muestra en la figura

2.2.2.6.1. Como se observa se compone de un área de información específica de la señal y un área

de almacenamiento de muestras. En el área de información de señal se almacena el tamaño de la

tarjeta, un identificador para reconocer con que metodología se debe reproducir la señal, la cantidad

de muestras almacenadas, el período de muestro y el filtro a utilizar.

El proceso de inicialización de la tarjeta es el siguiente:

1. Se pasa la velocidad del SPI al modo compatibilidad (200 a 400 Kbps).

2. Se envía el comando CMD0 con la tarjeta seleccionada mediante Chip Select.

3. Enviar repetidamente el comando CMD1 hasta que la respuesta R1 pase de ser 0x01 a 0x00

indicando que la tarjeta se encuentra inicializada.

Page 22: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

22

4. Se configura el puerto SPI a la velocidad de trabajo (en este caso en particular

aproximadamente 15 Mbps).

5. Finalmente el controlador puede utilizar el comando CMD9 para leer el registro CSD (Card

Specific Data).

Para esta aplicación, una vez finalizada la inicialización, el microcontrolador utiliza el

registro CSD para calcular el tamaño de la memoria de la tarjeta y compararlo con el valor

almacenado en el espacio de información de señal. De esta forma determina si la tarjeta se

encuentra formateada con la estructura mencionada anteriormente. Caso contrario realiza el

proceso de formateo.

Figura 2.2.2.6.2. Diagrama de flujo de la inicialización de la SD parte 1

Page 23: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

23

Figura 2.2.2.6.3 Diagrama de flujo de la inicialización de la SD parte 2

Page 24: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

24

2.2.2.7. COMUNICACIÓN CON LA PC

La comunicación entre la PC y el microcontrolador se realizaba a través de un puerto UART

implementado con un puente USB/UART PL2303HXA. La configuración utilizada es la siguiente:

Baudrate: 19200 bps.

Sin paridad.

1 bit stop.

Sin control de flujo.

Datos de 8 bits.

Con el fin de que el software de la PC tenga una comunicación flexible sobre las acciones del

generador se diseñó un protocolo afín. Antes de proceder a la explicación se debe tener en cuenta

que:

“COMANDO” refiere a 1 o 2 bytes que indican la acción a realizar y opcionalmente algún dato adicional requerido.

“WAIT/ACK” indica que el microcontrolador puede solicitar que la PC aguarde mientras se

ejecuta un proceso mediante “WAIT” y luego la finalización del mismo con “ACK”, ó

simplemente responder “ACK”, según aplique.

Ante un error en la comunicación o en los parámetros enviados la misma será finalizada y el microcontrolador responderá con 2 bytes, uno indicando el error y el otro con la causa del

mismo.

Las secuencias aplicadas por el protocolo son:

1. Para comandos en los que el generador deba responder afirmativa o negativamente se

implementa una secuencia como la mostrada en la figura 2.2.2.7.1. donde ACK referirá a un

sí y ERR a no.

Figura 2.2.2.7.1

Los comandos que lo implementan son:

a. INFORMACION:

i. PREPMEM: Pregunta si hay datos para reproducir desde memoria interna.

ii. PREPSD: Pregunta si existen datos para reproducir desde la SD.

iii. SD_CONECTADA: Pregunta si está conectada la tarjeta SD.

iv. DATA_SD: Pregunta si hay una señal grabada en la SD (Stand Alone).

b. ALIVE: Se solicita una verificación de conexión.

Page 25: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

25

c. PARAR: Solicita la detención de la reproducción.

2. Para aquellos comandos cuya ejecución implica la realización de un proceso dentro del

generador y por lo tanto se podrá recibir respuestas de wait, acknowledge o una notificación

de error en el proceso, se emplea una secuencia como la mostrada en la figura 2.2.2.7.2

Figura 2.2.2.7.2.

Los comandos que implementa son:

a. GRABAR

i. TRANSFERENCIA: Copia la señal grabada para reproducirse directamente

en RAM a la memora SD. Se utiliza después de un grabado en memoria

interna para lograr la función Stand Alone del mismo tipo.

b. LEER: Prepara al generador para reproducir la señal que se encuentra almacenada en

la SD, ya sea desde RAM o de la misma tarjeta (preparación para reproducción de

una señal Stand Alone).

c. REPRODUCIR: Si hay una señal disponible para reproducir, inicia la rutina de

reproducción.

d. CONTROL

i. RESTART_SD: En caso de fallar la inicialización de la SD el usuario puede

forzar que se repita el proceso.

e. FORMATEAR: Borra los datos existentes en la SD ó restaura la tabla de

información de señal (Véase INICIALIZACION DE LA TARJETA SD).

3. Para aquellos comandos que implica la carga de una señal ya sea para reproducirse desde

RAM o desde tarjeta SD, se utiliza la secuencia de la figura 2.2.2.7.3.

Figura 2.2.2.7.3.

El comando que lo implementa es:

a. GRABAR:

i. INTERNA: Graba una señal para reproducirse desde RAM a la máxima

frecuencia de muestreo permitida por el generador.

ii. INTERNA_OFFSET: Graba la señal para reproducirse desde RAM con

frecuencia de muestreo seleccionable.

iii. USO_SD: Graba una señal para reproducirse desde la tarjeta SD.

Page 26: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

26

4. Para aquellos comandos que deben ser acompañados de un solo parámetro se emplea

secuencia de la figura 2.2.2.7.4

Figura 2.2.27.4

a. CONTROL

i. CALIBRAR: Permite ajustar el voltaje de salida de forma manual. Este es

empleado en la calibración del DAC.

5. Cuando no se implementa ninguna de las secuencias anteriores, el generador ante acciones

del hardware puede emitir un mensaje a la PC sin esperar ninguna respuesta. Esto se

implementa para indicar inicio o parada de reproducción desde hardware.

En el caso de cargas de señales, los datos que se transfieren cumplen las siguientes especificaciones:

Cantidad de muestras: Si la reproducción es directamente desde RAM, el valor debe ser un entero entre 1 y 1000, ó cualquier valor de 32 bits para reproducción de SD.

Tiempo: Para reproducción desde RAM cualquier entero de 16 bits, para reproducción desde SD cualquier entero de 32.

Filtro: Se transfiere un carácter que representa el filtro a utilizar.

Muestras: Se transfiere la palabra de 12 bits separado en dos partes de 6 bits como se indica en la siguiente figura.

Figura 2.2.2.7.5

En cualquiera de los casos se transfiere primero el byte más significativo y los datos de cantidad de

muestra y tiempo son siempre 32 bits.

Page 27: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

27

2.2.3. SOFTWARE

El software se programó en Visual Basic .NET 2010 Express Edition de Microsoft.

Siguiendo las buenas prácticas de la programación orientada a objetos, el programa fue diseñado a

partir de clases que abstraigan las distintas funciones del programa. Una clase central encargada de

la interfaz de usuario, una que permite la lectura y carga de archivos de señal personalizada, y una

tercera que controla las comunicaciones con el generador y crea las señales estándares.

2.2.3.1. CLASE SigGen

2.2.3.1.1. GESTION DE PROTOCOLOS

El protocolo mencionado en los capítulos anteriores se implementa a través de una máquina de

estado embebida en la clase SigGen, la cual determina los pasos a seguir para desarrollar cada

secuencia. Como se observa en la figura 2.2.3.1.1.1 la maquina se encuentra cumpliendo la

secuencia de espera hasta que el programa principal solicite la ejecución de un comando en el

generador, luego la clase de encargará de gestionar los pasos necesarios. Si llega a ocurrir un error

durante la ejecución de la secuencia, se esperara su byte de identificación, y se notifica al programa

principal. En cualquier caso la máquina de estado vuelve a la espera (este estado atiende y traduce

la quinta secuencia mencionada en la sección anterior).

Figura 2.2.3.1.1.1 Máquina de estado protocolos de comunicación

Page 28: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

28

Para que el programa principal pueda utilizar la clase, deberá emplear el método Solicitud, y si se

realizase una carga, los Seters correspondientes. Luego el mismo deberá gestionar el puerto serie y

su accionar de acuerdo a los mensajes que reciba de la clase, a través del método Enlace. En caso de

ocurrir un error éste le puede solicitar el mensaje de error correspondiente.

2.2.3.1.2. CREACION DE SEÑALES

La clase SigGen incorpora los métodos necesarios para la creación de señales estándar. Para

especificar una señal se debe introducir en la ventana principal del programa los datos de: tipo de

señal, frecuencia, amplitud, offset y si se desea implementar un filtro especifico o dejarlo en

automático. Cada vez que estos datos son modificados el programa los carga en el objeto

Generador del tipo SigGen a través de los setters correspondientes. De esta forma cuando una señal

deba ser creada para cargarla en el generador, solamente debe llamarse al método CrearSeñal,

definiendo en sus parámetros solo información respecto al tipo de señal a generar, la definición de

la memoria a la que estará destinada, y la metodología de creación de la misma.Luego toda la

información que deba enviarse al generador quedará disponible para la parte de la clase encargada

de gestionar el protocolo.

El parámetro de metodología de creación se basa en el marcado de la casilla de verificación de

selección de velocidad inteligente en la interfaz de usuario. Si se eligió la velocidad inteligente, el

algoritmo, posiblemente, elija una velocidad un poco inferior a la máxima que podría utilizarse en

favor de obtener un número teórico entero de muestras, de modo que la primera de la secuencia

coincide con la que vendría después de la última, disminuyendo el THD y el error de cruce por cero.

Caso contrario se prioriza la frecuencia de muestreo sobre la exactitud. En ambos casos si fuera

posible grabar más de un período de la señal dentro de la memoria, se buscará el grabado de varios

períodos con el fin de disminuir el error. Por ejemplo si la cantidad teórica de muestras para una

señal es de 10,5 muestras, el error de 0,5 muestras puede solucionarse grabando 2 períodos de la

señal, es decir 21 muestras.

A menos que se especifique el método de reproducción, CrearSeñal elegirá el método que permita

la reproducción a mayor frecuencia de muestro.

En el momento previo a la carga, se elige el filtro a utilizar. Si la selección se realiza de forma

automática y la señal es de tipo estándar, DecideFiltro elige un filtro cuyo ancho de banda permite

el paso del contenido armónico deseado de la señal (definido dentro del código en CrearSeñal). Si

fuese personalizada, la selección se realiza cumpliendo Nyquist ya que la frecuencia de muestreo es

conocida pero no la naturaleza de la señal.

Page 29: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

29

Figura 2.2.3.1.2.1 Diagrama de flujo creación de señal

Page 30: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

30

Figura 2.2.3.1.2.2 Diagrama de flujo creación de señal de forma exacta

Page 31: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

31

Figura 2.2.3.1.2.3 Diagrama de flujo creación de señal de forma “rápida”

2.2.3.2. CLASE HeaderData

Para el guardado de señales personalizadas, se ha definido un formato que sea fácil de crear y leer,

permitiendo a su vez transferir las señales creadas en MATLAB al programa para que puedan ser

cargadas. Cada señal personalizada se guarda en dos archivos, uno de extensión .hdr y otro .dat. El

primero contiene la frecuencia de muestreo y el número de muestras de la señal en formato ASCII.

El segundo contiene las muestras de la señal codificadas en UINT16 y se encuentra almacenado en

formato binario Little-endian.

La clase HeaderData se encarga de la lectura de los archivos mencionados y de entregar dicha

información al programa principal, el cual lo cargará dentro de SigGen.

Page 32: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

32

2.2.3.2.1. CREACION DE SEÑALES PERSONALIZADAS

La creación de la señal personalizada puede realizarse con cualquier programa siempre que se

generen los archivos .hdr y .dat mencionados en el anterior apartado. Como parte de este proyecto

se ha implementado un script de MATLAB para la creación de los archivos de las señales. Para

utilizar este script se debe crear un vector con las muestras e invocar a Sample2Signal de la

siguiente forma:

Sample2Signal (Step, tipo Step, Muestras, Tipo muestras, Nombre)

Step: Frecuencia o período de muestreo

Tipo Step: „F‟ para frecuencia, „T‟ para período.

Muetras: Vector fila de n muestras en voltaje o cuentas.

Tipo Muestras: „V‟ para voltaje, „C‟ para cuentas.

Nombre: Nombre del archivo.

Figura 2.2.3.2.1.1

A modo de ejemplo se creó la señal definida por el script de la figura 2.2.3.2.1.1, obteniendo la

gráfica de la figura 2.2.3.2.1.2. que se corresponde con el output de la figura 2.2.3.2.1.3.

Page 33: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

33

Figura 2.2.3.2.1.2 Grafica en MATLAB de la señal personalizada

Page 34: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

34

Figura 2.2.3.2.1.3. Señal personalizada observada en el osciloscopio

2.2.3.3. INTERFAZ DE USUARIO

Para que el usuario pueda interactuar con el generador, se ha desarrollado una interfaz sencilla, de

fácil configuración, y que indique el estado del generador. Su pantalla principal se muestra en la

figura 2.2.3.3.1.

En el recuadro generador, cuando se está trabajando con una señal estándar, se pueden cambiar

tanto los parámetros de la señal como el método de generación de la misma. Si se utiliza una señal

personalizada el recuadro cambia como se observa en la figura 2.2.3.3.2., donde se cuenta con el

botón de carga de archivo y la posibilidad de verificar los datos de la señal cargada.

En el marco configuración se puede confirmar el puerto por el que se conecta el generador, la

referencia de voltaje del DAC y la frecuencia del Clock. A excepción del puerto, este recuadro no

debe modificarse, a menos que haya una modificación en el firmware o en el hardware.

Se observan dos indicadores gráficos, uno que indica si se encuentra una tarjeta SD conectada al

generador y el otro si hay una señal pre-grabada para reproducción Stand Alone. Además, en la

parte inferior de la pantalla, se indica el estado del generador (reproducción, carga, conectado,

desconectado, etc).

En el menú Función (figura 2.2.3.3.2.) se cuenta con:

Señal:

o Cargar: Carga la señal configurada.

o Leer pre-grabado: Dispone el generador para reproducir una señal Stand Alone

o Habilitar Stand Alone: Al estar chequeado, asegura que la señal podrá accederse

como Stand Alone, independientemente de cómo este grabada.

Voltaje Manual: Permite fijar un voltaje de salida continuo para emplear como referencia o

en la calibración del DAC.

Formatear: Borra el contenido de la tarjeta SD.

Page 35: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

35

El menú Controles (figura 2.2.3.3.3.) consta de:

Conectar

Desconectar

Refrescar puertos

Comprobar conexión

Forzar Carga SD: Solicita la ejecución del algoritmo de inicialización de la SD desde

software.

Figura 2.2.3.3.1. Pantalla principal de la interfaz de usuario.

Page 36: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

36

Figura 2.2.3.3.2.

Figura 2.2.3.3.3. Menú Función.

Figura 2.2.3.3.4. Menú Controles.

Page 37: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

37

Para confirmar operaciones realizadas o alertar al usuario respecto a algún error, el programa

presenta diversos carteles explicativos al mismo tiempo que asegura la estabilidad del programa.

Figura 2.2.3.3.5.

Page 38: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

38

2.3. RESULTADOS DE LAS PRUEBAS

Una vez diseñado y ensamblado el prototipo se prosiguió a la prueba del dispositivo frente a las

diferentes opciones posibles.

Figura 2.3.1. Imagen del prototipo

Se comenzó con señales de baja frecuencia, observándolas correctamente generadas. Sin embargo

ante señales de mayor frecuencia se detectaba un ruido y/o distorsión montado sobre la misma.

Filtrando de forma más estrecha señales senoidales de diferentes frecuencias con el filtro digital del

osciloscopio, se detectó que el ruido era eliminado y se descartó un posible error de firmware al

observar una forma correcta en la señal de salida.

Para corroborar que el ruido era independiente de la frecuencia de la señal, se probó nuevamente

con señales de baja frecuencia pero sin ninguna etapa de filtrado y se observó que el ruido persistía.

En las figuras 2.3.2 y 2.3.3 se observa lo mencionado anteriormente y la forma detectada del ruido

sin ninguna señal en reproducción.

Con el fin de corroborar que el ruido era externo y que este podía provenir de alguna fuente

switching se midió la fuente del dispositivo en vacío observando la existencia del mismo ruido.

Figura 2.3.2. Salida del generador con señal senoidal de 15KHz con presencia de ruido

Page 39: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

39

Figura 2.3.3. Salida del generador sin ninguna señal en reproducción

Tras exponerlo y consultar con los profesores, se procedió a investigar la fuente del ruido e

implementar alguna solución siguiendo sus sugerencias. Se comenzó colando un filtro pasa bajos en

la entrada de la alimentación del circuito, notando que la salida del generador sin reproducción era

limpia. A pesar de esto al generar señales de diferentes frecuencias sin filtrado, se observaba una

distorsión periódica que parecía estar asociada a la característica y frecuencia de la misma.

Figura 2.3.4

Por dicha razón se procedió a conectar el plano de cobre, producto de haber fabricado el PCB con

CNC, a la masa del circuito y conectar capacitores de desacople en la alimentación de cada uno de

los integrados con el fin de intentar eliminar la distorsión y de ajustar el diseño a las buenas

practicas. Esta implementación no presentó ninguna mejora. A pesar de esto los ensayos realizados

permitieron sospechar que estas distorsiones eran producto de la respuesta de los amplificadores

operacionales a la salida del DAC. Para corroborar esto se diseñó en MATLAB una señal senoidal

con pocas muestras por periodo, y observar una posible relación entre los saltos de nivel del

muestreo y la distorsión. Como se observa en las figuras 2.3.5 a la 2.3.7, la respuesta de los AO

presenta un overshoot frente a cada salto de tensión del DAC, que distorsiona la señal. Esta

distorsión no pudo ser solucionada debido a la disponibilidad de componentes y al costo que

hubiera implicado implementar otro diseño.

Page 40: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

40

Figura 2.3.5 Señal senoidal con pocas muestras por periodo

Figura 2.3.6. Overshoot en Amplificador Operacional

Figura 2.3.7. Señal senoidal con pocas muestras por período.

Page 41: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

41

A continuación se muestran algunas imágenes del funcionamiento final del generador.

Figura 2.3.8. Señal senoidal 1KHz

Figura 2.3.9. Señal cuadrada 1KHz

Figura 2.3.10. Señal diente de sierra 1KHz

Page 42: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

42

3. CONCLUSIONES

En este proyecto se diseñó un generador de señales arbitrario, el cual es una herramienta muy útil en

laboratorios para el ensayo de diversos dispositivos que requieran, o no, señales específicas de

entrada.

Si bien se encontraron dificultades, que algunas fueron solucionadas y otras no, se obtuvo un

dispositivo de gran utilidad para el desarrollo de otros proyectos y se cumplió con los objetivos

planteados al inicio del desarrollo.

Se destaca, además, la característica multidisciplinaria de la electrónica en este proyecto, al abarcar

conocimientos relacionados con análisis de señales, diseño analógico, programación de

microcontroladores, programación orientada a objetos, utilización de protocolos de comunicación,

entre otros.

Page 43: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

43

ANEXO 1 ESQUEMATICO FUENTE:

Page 44: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

44

ANEXO 2 ESQUEMATICO FILTRO 20 KHz:

Page 45: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

45

ANEXO 3 ESQUEMATICO PLACA PRINCIPAL:

Page 46: GENERADOR DIGITAL DE SEÑALES ARBITRARIAS digital de... · 2.2.1.2. INTERFAZ DEL DAC: FUNCIONAMIENTO Y CALIBRACION ... entre -5 y +5V, y que la codificación de la palabra digital

Técnicas Digitales III – Problema de ingeniería

46