DISEÑO DE CIRCUITO ELECTRÓNICO PARA ADQUISICIÓN Y ...

65
DISEÑO DE CIRCUITO ELECTRÓNICO PARA ADQUISICIÓN Y MODULACIÓN DE SEÑALES EN APLICACIONES DE CONVERSIÓN ELECTRÓNICA DE POTENCIA Santiago Antón Area Trabajo de Fin de Grado Escuela de Ingeniería de Telecomunicación Grado en Ingeniería de Tecnologías de Telecomunicación Tutores Francisco Poza González Jessús Doval Gandoy 2015

Transcript of DISEÑO DE CIRCUITO ELECTRÓNICO PARA ADQUISICIÓN Y ...

DISEÑO DE CIRCUITO ELECTRÓNICO PARAADQUISICIÓN Y MODULACIÓN DE SEÑALES

EN APLICACIONES DE CONVERSIÓNELECTRÓNICA DE POTENCIA

Santiago Antón Area

Trabajo de Fin de GradoEscuela de Ingeniería de Telecomunicación

Grado en Ingeniería de Tecnologías de Telecomunicación

TutoresFrancisco Poza González

Jessús Doval Gandoy

2015

Escola de

Enxeñaría de

Telecomunicación

Grao en Enxeñaría de

Tecnoloxías de

Telecomunicación

Mención:

Sistemas Electrónicos

DISEÑO DE CIRCUITO ELECTRÓNICO PARA

ADQUISICIÓN Y MODULACIÓN DE SEÑALES

EN APLICACIONES DE CONVERSIÓN

ELECTRÓNICA DE POTENCIA

Autor: Santiago Antón Area

Tutor: Francisco Poza González

Co-Tutor: Jesús Doval Gandoy

Curso: 2014-2015

2

Contenido I.Introducción .................................................................................................................................................... 3

II.Objetivos ......................................................................................................................................................... 4

III.Toma de decisiones ....................................................................................................................................... 5

IV.Resultados ..................................................................................................................................................... 6

Diseño del prototipo ...................................................................................................................................... 6

Diseño Hardware/Software Spartan 6 .......................................................................................................... 8

Diseño LabVIEW ........................................................................................................................................... 11

Diseño del PCB completo ............................................................................................................................ 12

V.Pruebas y conclusiones ................................................................................................................................ 13

VI.Bibliografía .................................................................................................................................................. 16

Anexo 1: Estado del arte.................................................................................................................................. 17

Bibliografía ................................................................................................................................................... 18

Anexo 2: Plataforma de simulación ................................................................................................................. 19

Anexo 3: Diseño prototipo .............................................................................................................................. 24

Anexo 4: Diseño PCB final ................................................................................................................................ 31

Anexo 5: Presupuesto Hardware ..................................................................................................................... 52

Anexo 6: Pinout FMC LPC ................................................................................................................................ 53

Anexo 7: Diseño Hardware Spartan 6.............................................................................................................. 54

Anexo 8: Diseño Software Spartan 6 ............................................................................................................... 60

Anexo 9: Diseño LabVIEW ............................................................................................................................... 62

3

I.Introducción

Gran parte de los sistemas asociados a la investigación y desarrollo en los distintos ámbitos de la

electrónica son plataformas formadas por una unidad de procesamiento y por la adaptación de las

diferentes señales necesarias para ser leídas o escritas.

Siguiendo esta pauta, en este informe se recoge el proceso de diseño de una placa de adaptación para el

estudio y control de aplicaciones de potencia, siendo necesarias entradas y salidas tanto digitales como

analógicas que se controlan a través de la FPGA Spartan 6 y del entorno LabVIEW.

Existen en el mercado soluciones para estas aplicaciones, en concreto, la plataforma usada actualmente en

la Universidad de Vigo consiste en la combinación de la placa NI GPIC9683 que adapta todas las señales

necesarias con la placa de procesado NI sbRIO 9606. A su vez, la NI GPIC9683 se conecta a una placa de

adaptación que contiene todos los conectores necesarios para dar salida al exterior a todos los tipos de

entradas y salidas como se ve en la Figura 1.

Figura 1: Tarjeta adaptación sbRIO

El diseño del PCB comparte dimensiones y señales con la tarjeta NI GPIC9683 con un aumento de sus

características, especialmente en la conversión analógico-digital manteniendo una resolución de 12 bits e

incrementando la tasa de 100kS/s a 1MS/s. La placa se ha diseñado para reutilizar la tarjeta de adaptación

de la Figura 1.

Este PCB ha sido diseñado mediante el software Altium Designer e irá conectado a la FPGA programada con

el SDK y el EDK de Xilinx. Para ofrecer una interfaz al usuario, se usará el software LabVIEW donde se

gestionarán los comandos y se representarán las señales conectando el PC a la FPGA por un puerto serie

como se muestra en la Figura 2.

FPGA

LabVIEW

PCB

Figura 2: Diagrama de bloques

4

II.Objetivos

El objetivo principal de este proyecto es la realización de una placa de circuito impreso que sirva de interfaz

a una FPGA Spartan 6 que deberá gestionar las siguientes señales:

- 12 Salidas digitales Half-Bridge

- 8 Salidas digitales

- 4 Salidas digitales para control de relés

- 14 Entradas digitales

- 8 Señales LVTTL

- 16 Entradas analógicas

- 8 Salidas analógicas

Cada uno de estos tipos de señales lleva asociado un circuito incluido en el PCB, siendo las entradas

analógicas las de mayor complejidad por requerir un convertidor analógico digital de alta velocidad. Debido

a la magnitud del diseño, se han marcado unos pasos intermedios entre los que se encuentra la fabricación

de un prototipo con las herramientas disponibles.

Las etapas marcadas para el desarrollo del proyecto son las siguientes:

- Elección de los componentes electrónicos determinantes (ADC y DAC)

- Diseño y simulación del circuito

- Elaboración del PCB del prototipo

- Programación de la FPGA

- Programación en LabVIEW

- Prueba del prototipo

- Elaboración del PCB final

5

III.Toma de decisiones

Las primeras decisiones llevadas a cabo se corresponden con la elección de los circuitos integrados usados

para la conversión. Se ha tenido en cuenta previamente que los componentes dispongan de un

encapsulado que permita ser soldado a mano, estableciendo un mínimo de grosor de los pads SMD de

0.35mm correspondiente a los modelos TSSOP. Además, será necesaria la disponibilidad de stock en

Mouser, tienda donde se ha realizado el pedido.

El convertidor analógico digital escogido es el ADS7254 (TSSOP-16, 5mm x 4.4mm) de Texas Instruments de

tipo SAR por reunir los requisitos de ser diferencial, poder capturar un millón de muestras por segundo de

12 bits y por disponer de dos convertidores en el mismo encapsulado. En el Anexo 2 se documentan las

simulaciones realizadas del convertidor con el driver recomendado por el fabricante mediante su propio

software TINA.

En lo referente al convertidor digital analógico se ha seleccionado el MCP4822 de Microchip, un integrado

mucho más sencillo y económico al no necesitar grandes velocidades en estas señales para la aplicación.

Se requieren además 4 salidas para el control de relés de potencia. Para estas señales se ha incorporado el

relé de estado sólido ASSR-1218 que proporciona aislamiento y sirve de interruptor para el circuito de

activación del relé.

En la Figura 3 se muestra el encapsulado de los 3 integrados.

Figura 3: ASSR-1218, ADS7254 y MCP4822

Tras la elección de los componentes se ha diseñado un prototipo que implementa un integrado ADC y otro

DAC, dando acceso a dos entradas y a dos salidas analógicas. Tanto el diseño hardware y software incluidos

en la FPGA como los diagramas de LabVIEW han sido pensados para las diferentes pruebas realizadas sobre

el prototipo, aunque se ha tenido en cuenta la necesidad de ampliar el número de señales para el diseño

final.

6

IV.Resultados

Debido a las diferentes plataformas usadas a lo largo del proyecto se dividirá la exposición de los resultados

en las siguientes secciones:

- Diseño del prototipo

- Diseño Hardware/Software Spartan 6

- Diseño diagrama LabVIEW

- Diseño del PCB completo

Diseño del prototipo

Tras la elección de los componentes y la simulación del circuito de conversión analógico-digital se han

diseñado en el Altium los esquemas del PCB que incorpora 2 entradas analógicas, 2 salidas analógicas y 5

salidas digitales.

Las entradas analógicas que se muestrearán oscilan entre 5V y -5V. A pesar de ello, el ADC realizará su

conversión con un rango máximo de 5V. Por tanto, se ha implementado una etapa anterior al ADC con el

operacional THS4532 que deberá reducir el rango de la señal de 10V a 5V, estableciendo una ganancia de

0.5 mediante los valores de las resistencias. Se ha añadido una etapa intermedia entre el operacional y el

ADC formada por un filtro paso bajo RC que eliminará el ruido. En la Figura 4 se observa el orden de las

etapas.

Figura 4: Diagrama circuito AD

Las salidas analógicas no precisan de ninguna modificación por lo que se ha conectado el DAC directamente

a la salida. Sin embargo, la tensión de alimentación de este integrado lo hace incompatible con las señales

de la FPGA de menor tensión. Para evitar dicho problema se ha recurrido a un circuito de interfaz que

convertirá las señales de 5V a señales de 3.3V compatibles con los pines de la FPGA como se muestra en la

Figura 5.

Figura 5: Diagrama circuito DA

7

El circuito integrado usado como interfaz dispone de 8 canales, lo que permite conectar 5 salidas digitales

de 5V en los canales no ocupados por el convertidor digital-analógico.

Una vez finalizado el diseño de los circuitos se procede al diseño de las huellas (footprints) donde irán

soldados los diferentes chips. Algunas de ellas no se encuentran disponibles en la librería del Altium siendo

necesario generarlas a través de la herramienta PCB Component Wizard de acuerdo con las

especificaciones del datasheet de cada fabricante.

Previamente a la colocación y enrutado de los componentes en el PCB se han definido unas reglas de

diseño que permitan la fabricación de la tarjeta en los laboratorios de la universidad:

- Ancho de pista minimo de 0.35 mm correspondientes al ancho de pad TSSOP

- Separación entre pistas de 0.254 mm

- Diametro de pads y vías de 2.5 mm para su taladrado a mano en el laboratorio

- Diseño doble cara: Capa Top de enrutado y capa Bottom de masa

- Tamaño de PCB: 10 cm x 8 cm que se corresponde a la mitad del tamaño de placa estándar

Se ha decidido establecer un plano de masa continuo en lugar de un plano analógico y un plano digital

motivado por notas de aplicación de diferentes fabricantes y estudios [1] donde se da prioridad al correcto

enrutado de las señales para la reducción de interferencias. Se ha añadido como norma de diseño no

enrutar líneas analógicas sobre la sección digital del plano y viceversa, manteniendo un plano continuo

donde las corrientes de retorno de las diferentes señales no interfieran entre la zona digital y la zona

analógica.

Como consideración final para el diseño, se ha tratado de minimizar el espacio del circuito AD [2] debido a

la cantidad de entradas analógicas de la placa final y del poco espacio disponible. De este modo las pruebas

realizadas en el prototipo deberán de obtener el mismo resultado que en la placa final al disponer de un

layout muy similar.

En la Figura 6 se muestra el resultado final de la interconexión de todos los componentes necesarios para

su funcionamiento. En la zona superior se situan el operacional y el ADC dejando la zona inferior para el

DAC, el circuito de interfaz y el regulador de tensión que ofrecerá la alimentación de 3.3V.

Figura 6: Layout y visión 3D del prototipo

La información más detallada del prototipo se encuentra en el Anexo 3.

8

Diseño Hardware/Software Spartan 6

La FPGA se encargará de la conexión SPI con los convertidores y de la gestión de todas las señales de la

placa. La conexión entre el PCB y la FPGA se ha realizado mediante el uso del conector FMC y de una placa

de adaptación donde se conectarán las señales mediante un cable plano. La placa de adaptación FMC se

muestra en la Figura 7.

Figura 7: Placa adaptación FMC

El fichero UCF se ha modificado de acuerdo al reparto de señales en los pines FMC, siendo necesario para el

prototipo únicamente un conector de 30 pines de los 3 disponibles. En el Anexo 6 se documentan las

señales y su pin correspondiente del conector FMC.

El la Figura 8 se representa el diagrama de los bloques creados mediante el EDK formando un sistema

centrado en el procesador embebido MicroBlaze.

Figura 8: Diagrama de bloques FPGA

9

El bloque central del sistema es el procesador software MicroBlaze [3] en el que se programarán las rutinas

de comunicación con el PCB y el entorno LabVIEW que se comentarán posteriormente. A continuación se

detallan brevemente la funcionalidad de cada uno de los bloques presentes en la figura anterior.

El procesador MicroBlaze se acompaña de una memoria BRAM donde se pueden almacenar datos e

instrucciones con una capacidad limitada aunque suficiente para algunas aplicaciones. Esta memoria

dispone de un controlador que gestiona los datos recibidos por DLMB y otro controlador que gestiona las

instrucciones recibidas por ILMB.

Dado que la capacidad de la memoria BRAM es insuficiente se agrega un módulo de memoria hardware

DDR2 presente en la FPGA para guardar las instrucciones y los datos. La comunicación entre procesador y

memoria se produce mediante la interfaz AXI4 [4] dedicada exclusivamente a esa función.

Además de la interfaz AXI4 para la memoria se dispone de una interfaz AXI4LITE dedicada a la conexión

entre periféricos. Se han incorporado los periféricos básicos de la FPGA como botones, leds e interruptores

además de los periféricos encargados de la comunicación. El periférico AXI SPI 0 realiza la comunicación

con el convertidor analógico-digital, el AXI SPI 1 la comunicación con el convertidor digital-analógico y el

AXI UART Lite la comunicación serie con el PC al entorno LabVIEW.

De cara a futuras mejoras del proyecto completo se ha añadido el bloque Ethernet Lite por resultar el

puerto serie lento para la captura de varios canales analógicos. Se incluye también el bloque Debug module

que es el encargado de habilitar el funcionamiento paso a paso del software para tareas de depuración y se

conecta con el micro a través del puerto DEBUG.

Por último, el bloque AXI Intc es el encargado de gestionar las 3 fuentes de interrupción disponibles

permitiendo identificar y lanzar una interrupción al micro cuando cualquiera de ellas se activa. Los módulos

que pueden generar interrupciones son el AXI SPI 0, AXI SPI 1 y AXI UART Lite.

El software que procesará el MicroBlaze ha sido desarrollado mediante el SDK de Xilinx facilitando la

programación mediante las llamadas a las diferentes funciones de las librerías asociadas a los bloques como

por ejemplo la UART. El programa se ha diseñado para poder comunicarse con los convertidores por su

correspondiente SPI haciendo de master, sin embargo, en la comunicación con el PC el módulo master será

el LabVIEW. Así, todas las peticiones de conversión, lectura o escritura deberán de realizarse desde el panel

frontal del VI principal.

Las tramas de datos entre la FPGA y los convertidores vienen predefinidas por el datasheet. En el caso del

ADC, serán necesarios 16 pulsos de reloj para realizar una captura de 12 bits y de 48 ciclos para realizar la

lectura o escritura en un registro de configuración interno.

Para la gestión de las tramas de datos entre la FPGA y el PC se han incorporado las cabeceras mostradas en

la Figura 9. Se han añadido 3 bytes, los dos primeros H y L indican la longitud de la trama y el tercero el tipo

de comando que se está llevando a cabo.

H L CMD FRAME

Figura 9: Trama FPGA-PC

10

En la Figura 10 se representa en un diagrama de flujo el código desarrollado para ser ejecutado por el

MicroBlaze.

Inicio

Inicialización SPI, UART e

interrupciones

Hay trama de recepción serie?

No

Comando

CMD = 0

Lectura ADC

CMD = 1

Escritura ADC

CMD = 2

Lectura continua ADC

Genera trama de respuesta a LabView

Genera trama de respuesta a LabView

Escritura DAC

CMD = 3

Figura 10: Diagrama de flujo MicroBlaze

Durante la inicialización del programa se configuran los diferentes periféricos adaptándolos a los requisitos

necesarios, habilitando el control manual del CS en el SPI, seleccionando la velocidad del puerto serie o

habilitando las interrupciones. Tras este proceso el programa entra en el bucle principal que espera a

recibir una trama procedente del LabVIEW. En el momento que se reciben datos se procede a leer el

número de bytes indicados por las cabeceras H y L e identificando el comando que ha de ejecutarse.

El programa de pruebas para el prototipo permite realizar 4 operaciones:

- Lectura de registros del convertidor: Para el valor CMD = 0 el programa lee el registro solicitado por

LabVIEW y devuelve una nueva trama con el valor indicado por el ADC.

- Escritura de registros del convertidor: Para el valor CMD = 1 se envía al ADC el registro y el valor

deseado para ser escrito en él. No se envía ninguna trama al LabVIEW.

- Lectura continua: Para el valor CMD = 3 el programa realiza un muestreo continuo del mismo

tamaño que la trama recibida por el LabVIEW. Al terminar, genera una trama donde se envían

todas las muestras leídas al PC.

- Escritura del DAC: Para el valor CMD = 3 el programa envía el dato recibido por LabVIEW al

convertidor digital-analógico.

11

Diseño LabVIEW

El programa diseñado en LabVIEW servirá de interfaz para usar y leer las distintas señales del PCB a través

de la comunicación por puerto serie [5]. Se ha decidido realizar 4 procesos en Vis independientes

comunicados en caso de ser necesario por un buffer. Estos 4 procesos se corresponden con la generación

de comandos, la representación de datos, el envío serie y la recepción serie.

La independencia permite seguir usando el programa en caso de querer modificar el medio de

comunicación con la FPGA, previsto como línea futura de mejora del proyecto debido al poco ancho de

banda actual.

En la Figura 11 se muestran los diagramas de los 4 procesos y las dos conexiones a través de un buffer entre

ellos.

Interfaz usuario Programa principalEnvío serie Recepción serie

Selección comando

CMD = 0

Lectura ADC

CMD = 1

Escritura ADC

CMD = 2

Lectura continua ADC

Buffer trama de envío

Hay trama de envío?

No

Añade cabecera con

longitud

Envío por puerto serie

Hay datos de entrada serie?

No

Almacena en cola

Elimina cabecera con

longitud

Buffer trama de recepción

Hay trama de recepción?

No

Selección comando

Muestra el contenido del

registro

Dibuja una gráfica con las muestras

obtenidas

CMD = 0 CMD = 2

Escritura DAC

CMD = 3

Figura 11: Diagrama de flujo LabView

El proceso Interfaz usuario gestiona los comandos que solicitarán a la FPGA una función concreta

dependiendo del valor de CMD. Así ordenaremos leer un registro, escribir un dato en el o solicitar la lectura

de n muestras al convertidor AD o enviar datos al DAC. Las tramas generadas se envían al buffer de salida.

El proceso Envío serie se encarga de comprobar si hay alguna trama en el buffer de salida y enviarla

añadiendo los campos de cabecera H y L en caso de que haya datos en el buffer.

El proceso Recepción serie guarda los datos en el buffer de entrada eliminando las cabeceras H y L cada vez

que se recibe una trama de la FPGA.

Por último, el Programa principal lee el buffer de entrada para procesar la trama recibida mostrando el

valor del registro en caso de una solicitud de lectura o dibujando una gráfica en caso de haber solicitado

una lectura continua de n muestras.

12

Diseño del PCB completo

El diseño final gestionará todas las señales marcadas como objetivos en el segundo apartado de este

informe. Debido a la extensión del diseño y a la cantidad de componentes se realizará un breve resumen

del Anexo 4 donde se detallan los circuitos y capturas del diseño final.

A diferencia del prototipo, el PCB final se realizará a 4 capas en una empresa externa lo que permite

establecer unas reglas de diseño mucho más precisas, pudiendo por ejemplo posicionar una vía de 1 mm

debajo de un componente SMD al no realizar manualmente el taladrado y conexionado entre capas.

Las dimensiones y distribución de conectores vienen predefinidos por la tarjeta PCB_sbRIO-Convertidor

mostrada al principio del informe en la Figura 1, quedando la mayor concentración de componentes en la

zona superior derecha, donde se incluyen los operacionales, los ADC y la circuitería asociada. En la Figura

12 se observa el diseño completo llevado a cabo con el fin de minimizar el espacio ocupado, dejando la

mitad de los canales AD en la capa top (rojo) y la otra mitad en la capa bottom (azul, apenas visible por

estar los componentes simétricamente colocados).

Figura 12: PCB completo

13

V.Pruebas y conclusiones

Para probar el correcto funcionamiento del prototipo se ha realizado la conexión de las diferentes

plataformas. En la Figura 13 se observan dos fotografías, a la izquierda el prototipo realizado y a la derecha

la FPGA con el adaptador FMC. La conexión de la FPGA al PC se realiza por USB.

Figura 13: Fotografías de las pruebas realizadas

Se conecta además un analizador lógico a las patillas del cable plano para comprobar los datos transmitidos

y recibidos por SPI para depuración de errores.

En primer lugar, se envía al registro CFR del ADC la configuración necesaria para activar la referencia

interna de tensión y seleccionar el modo SPI de 16 ciclos. Desde el panel de LabVIEW (Figura 14) se activan

los pulsadores correspondientes a los bits de configuración y se presiona en el botón Write.

Figura 14: LabVIEW CFR Config

14

En la Figura 15 se puede observar el comando de escritura del registro. En ella se envía un primer bit a nivel

alto representando el tipo de operación y otros 3 bits a nivel alto a lo largo de la trama, correspondientes a

los pulsadores seleccionados en la Figura 14.

Figura 15: Sección trama de escritura del CFR

Se procede posteriormente a leer el registro comprobando que la comunicación funciona correctamente.

Para ello se pulsa el botón Read mostrando en los pulsadores el valor leído que coincide con el escrito

anteriormente. Además, en la Figura 16 se muestra una sección de la trama de lectura que concuerda con

la trama escrita en la Figura 15 demostrando el correcto funcionamiento.

Figura 16: Sección trama de lectura del CFR

Por último se realiza una prueba de comunicación con el DAC, enviando datos a los dos canales disponibles

mediante el LabVIEW. La pantalla del LabVIEW para controlar el convertidor DA es la presente en la Figura

17.

Figura 17: LabVIEW DAC

15

En la Figura 18 se muestra una sección de las tramas enviadas que alternan variando el primer bit entre el

primer y el segundo canal constantemente generando las formas de onda solicitadas. En la zona superior

de la figura se puede ver la trama continua, que ha sido ampliada en secciones de 16 bits para observar el

cambio de canal mediante la alternancia del primer bit (izquierda bit 1 a 1, derecha bit 1 a 0).

Figura 18: Secciones tramas DAC

Tras la correcta realización de las pruebas se puede considerar que los objetivos del proyecto se han

concluido, demostrando que la comunicación entre las diferentes plataformas y el diseño del PCB final y el

prototipo realizado a mano (Figura 19) son válidos.

Figura 19: Capa Top del prototipo

Cabe mencionar como líneas futuras del proyecto la fabricación del PCB final y la adaptación del software

para las nuevas señales a controlar, incluyendo la adaptación del módulo Ethernet en lugar del puerto serie

usado actualmente para disponer del ancho de banda suficiente para todas las señales.

16

VI.Bibliografía

[1] Henry W. Ott “Partitioning and Layout of a Mixed-Signal PCB”

[2] Rob Reeder “Techniques for High Speed ADC PCB Layout” 2012

[3] Mauro Cipollone “Implementación de un microprocesador embebido sobre un FPGA Spartan 6” 2013

[4] AVNET “Creating an AXI-based Embedded System” 2011

[5] Universidad Militar Nueva Granada “SISTEMA DE CONTROL DE UNA PLANTA EMBEBIDA EN FPGA

EMPLEANDO HARDWARE-IN-THE-LOOP” 2013

17

Anexo 1: Estado del arte

Muchos dispositivos electrónicos requieren procesar o generar variables analógicas en un entorno digital,

siendo necesaria la implementación de un circuito dedicado a esta transformación. Estos circuitos

electrónicos dedicados a la conversión son los denominados DAC (digital-analógico) y ADC (analógico-

digital).

Figura 20: ADC y DAC

Los convertidores AD han evolucionado en las últimas cinco décadas drásticamente, pasando de

dispositivos de decenas de centímetros cuadrados valorados en centenas de dólares a circuitos integrados

de dimensiones milimétricas valorados en escasos dólares. Todos los avances en el diseño de circuitos

integrados forman parte del motivo de esta mejora, además de la creación de nuevas arquitecturas de

convertidores. Los tipos de convertidores más conocidos son los siguientes [1]:

- Convertidores sigma-delta: Destacan por permitir las más altas resoluciones llegando a los 24 bits

con tasas de velocidad medias del orden de 1 Mhz. Son los convertidores escogidos para

aplicaciones de alta resolución con la mayor velocidad de conversión posible.

- Convertidores pipeline: Admiten velocidades del orden de 100 MHz con resoluciones en torno a los

12 bits, sin embargo, la señal de salida se genera con latencia y el consumo es alto.

- Convertidores SAR: Son los denominados de aproximaciones sucesivas. Estos convertidores

permiten el uso de altas resoluciones con velocidades de hasta 10 MHz con la particularidad de

estar incluidos en integrados de pequeñas dimensiones con bajo consumo y coste, lo que los hace

viables para gran parte de las aplicaciones.

- Convertidores Flash: Permiten el muestreo de señales a las más altas velocidades disponibles a

costa de un precio y consumo elevado. Se usan en aplicaciones que requieren gran ancho de banda

como pueden ser un radar o un osciloscopio digital.

Los convertidores DA se encargan de obtener un valor analógico de tensión a través de una combinación de

bits. Estos están formados por redes de resistencias conectadas a través de varios interruptores accionados

por cada uno de los bits, de este modo, cada rama enviará a la salida una tensión proporcional al peso del

bit en el código digital. Las topologías de estas ramas de dividen en dos tipos [2]:

- Convertidores con red de resistencias ponderadas: En ellos las resistencias de cada rama aumentan

su valor del mismo modo que lo hacen los bits, doblando su valor máximo por cada bit de

resolución que se incrementa en su diseño. Son usados en convertidores sencillos de poca

resolución, ya que el valor de las resistencias necesarias crece exponencialmente al aumentar la

resolución, necesitando además que estas resistencias sea de alta precisión para minimizar los

errores en la salida.

18

- Convertidores con red de escalera R-2R: Para solucionar la desventaja de las resistencias

ponderadas se ha diseñado una red de resistencias compuesta por el mismo número de ramas que

la resolución del convertidor. Cada una de estas ramas contiene una resistencia de valor R y otra de

valor 2R, haciendo que no sea necesario incrementar los valores de las resistencias para obtener

una mayor resolución.

En la actualidad existen diversas plataformas dedicadas a proporcionar un control completo sobre un gran

número de señales, entre las que se incluyen entradas y salidas analógicas que precisan la incorporación de

ADCs y DACs para su gestión. En este anexo se mostrarán las características de una de estas plataformas, en

concreto la GPIC9683, mencionada al principio de este documento que será sustituida por la placa aquí

diseñada.

La placa GPIC9683 desarrollada por National Instruments cubre la necesidad de ofrecer un dispositivo que

gestione todo tipo de entradas y salidas a un sistema de procesado. Concretamente, esta placa está

diseñada para su uso con los modelos sbRIO mezzanine card de la misma empresa. Sus especificaciones son

las siguientes [3]:

- Entradas analógicas: 16 canales de 12 bits con una velocidad de 100kS/s

- Salidas analógicas: 8 canales de 12 bits con una velocidad de 1kS/s

- 28 Entradas digitales

- 24 Salidas digitales

- 32 Señales LVTTL

Estableciendo comparaciones entre la placa de NI y la desarrollada en este proyecto se observa que la

GPIC9683 dispone de un número mucho mayor de señales digitales. Sin embargo, la placa aquí diseñada

destaca por ofrecer las mismas señales analógicas con una velocidad de conversión 10 veces mayor, que en

ocasiones es mucho más necesario que disponer de gran cantidad de señales.

Cabe mencionar finalmente el precio en el que se sitúa el producto de NI, que en su página oficial ronda los

900€, frente al presupuesto manejado en el Anexo 5 de 181€ para los componentes hardware.

Bibliografía

[1] Camilo Quintáns Graña “ESTRUCTURAS AVANZADAS DE CONVERTIDORES ANALÓGICO-DIGITAL:

METODOLOGÍAS DE DISEÑO, SIMULACIÓN Y ENSEÑANZA” 2.2. Clasificación de los convertidores A/D

[2] Federico Miyara “CONVERSORES D/A Y A/D” 2. Conversión digital / analógica (D/A)

[3] User guide and specifications NI 9683 General Purpose Inverter Controller RIO Mezzanine Card

19

Anexo 2: Plataforma de simulación

Para el diseño del circuito asociado a cada convertidor analógico digital se ha usado el programa TINA de

Texas Instruments. Este programa permite realizar simulaciones de cualquier circuito además de disponer

de los modelos de todo el catálogo de TI vía web.

La simulación se ha realizado para las diferentes combinaciones de operacional + convertidor estudiadas.

En este anexo se muestran los resultados del operacional TI THS4532 y del convertidor TI ADC7254.

Las señales analógicas que se muestrearán deben situarse entre 5V y -5V. A pesar de ello, el ADC realizará

su conversión con un rango máximo de 5V. Por tanto, el circuito operacional anterior al ADC deberá tener

una ganancia de 0.5 para reducir el rango de la señal de 10V a 5V como se puede ver en la Simulación 1.

Simulación 1: Salida Driver ADC Ideal

20

En primer lugar, se ha comprobado el correcto funcionamiento del circuito de entrada del ADC para señales

referenciadas a masa. En el Esquema 1 se muestra el circuito a simular, con una entrada de 5 a -5V

referenciada a masa.

Esquema 1: Driver ADC Single Ended

En la Simulación 2 se pueden observar las dos salidas referenciadas en el Esquema 1. Una de ellas a la salida

del operacional y otra en la etapa posterior de filtrado RC.

Simulación 2: Driver ADC Single Ended

21

En segundo lugar, se ha comprobado el correcto funcionamiento del circuito de entrada del ADC para

señales diferenciales. En el Esquema 2 se muestra el circuito a simular, con una entrada de 5 a -5V en

modo diferencial.

Esquema 2: Driver ACD Diferencial

En la Simulación 3 se observa una salida idéntica a la Simulación 2, lo que implica que en ambos modos el

circuito funciona correctamente.

Simulación 3: Driver ADC Diferencial

22

En la Simulación 4 se muestra la respuesta en frecuencia del circuito. Los valores estudiados en la

simulación son los recomendados por el fabricante, siendo el valor del condensador lo variable para

establecer ancho de banda del filtro dependiendo de la aplicación. El ancho de banda necesario para

realizar el muestreo a la máxima velocidad permitida por el ADC es de 1 MHz.

Simulación 4: Respuesta en frecuencia Driver ADC

Por último, se ha comprobado el funcionamiento del driver formado por el operacional y el filtro unidos al

convertidor analógico digital. En el Esquema 3 se muestra el convertidor con el driver en uno de sus dos

canales.

Esquema 3: Driver + ADC

23

En la Simulación 5 se observan las señales necesarias para el funcionamiento del ADC además de la entrada

(VM2) y la salida (VA_smpl).

Simulación 5: Driver + ADC

24

Anexo 3: Diseño prototipo

En este anexo se muestran todos los documentos asociados al diseño del prototipo mediante el software

Altium Designer.

La placa de prototipo se ha diseñado para probar el hardware en un entorno real, reduciendo al mínimo el

número de señales que se podrán usar. Las entradas y salidas disponibles son las siguientes:

- 2 Entradas analógicas

- 2 Salidas analógicas

- 5 Salidas digitales

Se han escogido estas señales ya que son las que representan la mayor complejidad, siendo su correcto

funcionamiento determinante para la placa completa detallada en el Anexo 4.

En el Esquema 4 se puede observar el circuito simulado en el Anexo 2. Las entradas analógicas (VIN1 y

VIN2) pueden ser referenciadas a masa o tratadas en modo diferencial mediante un jumper a través de los

conectores P1 y P2.

Esquema 4: Entradas analógicas

El integrado TI THS4532 combina los dos operacionales usados para cada ADC, necesitando para cada par

de entradas analógicas un solo chip además del propio convertidor TI ADS7254.

Las relaciones entre las resistencias que determinan la ganancia han sido diseñadas para disminuir el rango

de entrada de 10V (de 5V a -5V) a un rango de 5V con el que trabajará el ADC. Estas resistencias son R1/R2,

R6/R4, R7/R8 y R12/R10.

A la salida de cada operacional se sitúa un filtro paso bajo con una frecuencia de corte aproximada de 1

Mhz formado por R3 R5 y C3 en el primer canal y por R9 R11 y C12 en el segundo.

25

Se ha configurado el ADS7254 para su funcionamiento con referencia interna de tensión, lo que evita el uso

de otros componentes. Las entradas de referencia se han conectado a los condensadores C5, C6, C7 y C8 tal

y como recomienda el fabricante para su uso con referencia interna.

El ADC proporciona un bus que permitirá leer las futuras 16 señales analógicas simultáneamente con el

menor número posible de señales comunicadas a la FPGA. Además, incorpora una entrada de alimentación

digital que ha sido alimentada a 3.3V para hacerla compatible con la FPGA de un modo directo.

En el Esquema 5 se representa el circuito integrado escogido para las salidas analógicas. Este DAC es el

MCP4822 de Microchip, siendo un integrado mucho más sencillo que el ADC debido a los pocos requisitos

exigidos para estas señales. Al igual que el ADC, dispone de una conexión serie que permite conectar varios

dispositivos que ayudará a reducir el número de señales para la gestión de las 8 salidas analógicas de la

placa final.

Esquema 5: Salidas analógicas

Dado que el MCP4822 no dispone de entradas de alimentación independientes para la parte digital y

analógica, las señales digitales trabajan con la misma alimentación del chip, en este caso, 5V.

Para conectar la FPGA a cualquier señal que trabaje a 5V se han usado los integrados SN74LVC8T245 que

sirven de interfaz adaptando los niveles de tensión de 5 a 3.3V. En el Esquema 6 se muestra el integrado

que además de adaptar las señales del DAC incorpora las salidas digitales a 5V en los 5 canales libres (I1-I5).

Esquema 6: Interfaz 5V-3.3V

26

El prototipo se alimenta a través del conector P23 con una tensión de 5V. Además, para la alimentación de

los circuitos a la tensión de la FPGA se ha incorporado el regulador de tensión de 3.3V LMS81117 de TI. Esta

etapa de alimentación se ve reflejada en el Esquema 7.

Esquema 7: Etapa de alimentación

Por último, se han incorporado los conectores necesarios para realizar las pruebas, siendo en este caso un

conector de 15x2 pines (CN1) que irá conectado a la FPGA y diferentes conectores que se encargaran de

dar acceso al exterior a las entradas y salidas como se muestra en el Esquema 8.

Esquema 8: Conectores

27

Una vez terminado el diseño del hardware se ha procedido a la generación de las diferentes huellas de los

chips para el PCB:

- TSSOP-16: ADC y Operacional

- SOIC-8: DAC

- SOIC-24: Interfaz 5V-3.3V

- SOT223: Regulador de tensión

Además, todas las resistencias y condensadores SMD se han diseñado para el tamaño 0805.

Debido a la gran cantidad de muestras que debe realizar el ADC su posicionamiento en el PCB es clave. De

este modo, se ha implementado un diseño compacto imitando el diseño del PCB final, minimizando los

posibles errores que surgen al modificar el layout del circuito.

El prototipo ha sido diseñado para ser fabricado, taladrado y soldado a mano por lo que se ha limitado el

PCB al uso de 2 capas, con pads y vías de 2.5mm y un ancho de pista de 0.5mm a excepción del circuito

ADC, cuyo encapsulado requiere pistas de 0.35mm de grosor.

En la Imagen 1 se muestra el resultado final del diseño de la sección de conversión analógico-digital

incorporando todos los componentes presentes en el Esquema 4 en el menor espacio posible. Se muestra

además una captura del visor 3D que proporciona el Altium para visualizar el aspecto final.

Imagen 1: OP + ADC

28

En la parte superior derecha de la Imagen 2 se sitúa el circuito que sirve de interfaz (T1) entre 5 V y 3.3 V,

tanto para las señales que van al DAC (parte izquierda, DA1) como a las salidas digitales que se enrutan

directamente a los pines de salida. Se muestra también en la parte inferior derecha el regulador de tensión

que proporciona la salida de 3.3V (U33).

Imagen 2: DAC + Interfaz + DVDD 3.3V

Para finalizar este anexo, se mostrarán a continuación los ficheros de salida para la fabricación del

prototipo además de la visualización 3D de la placa completa.

Imagen 3: Prototipo completo

29

Imagen 4: Capa TOP

Imagen 5: Capa BOTTOM

30

Imagen 6: Visión 3D 1

Imagen 7: Visión 3D 2

31

Anexo 4: Diseño PCB final

A lo largo de este anexo se detallarán los componentes del diseño final del PCB que incluirá la electrónica

asociada a las señales marcadas como objetivo del proyecto:

- 12 Salidas digitales Half-Bridge

- 8 Salidas digitales

- 4 Salidas digitales para control de relés

- 14 Entradas digitales

- 8 Señales LVTTL

- 16 Entradas analógicas

- 8 Salidas analógicas

La conexión entre el PCB y la FPGA se realizará mediante una tarjeta de adaptación FMC, la cual usa el

conector FMC LPC de la Spartan 6. Las señales anteriormente citadas ocupan por completo el conector FMC

de baja densidad. La conexión entre el PCB y la tarjeta de adaptación se llevará a cabo mediante 3

conectores de 15x2 pines que incorpora la tarjeta hasta el PCB como se observa en la Imagen 8.

Imagen 8: Inrevium FMC LPC (Bottom/Top)

El diseño se realizará en el software Altium Designer siguiendo el layout del circuito AD visto en el

prototipo. Debido al gran número de componentes y al poco espacio disponible, se ha optado por realizar

un PCB de 4 capas que permite interconectar correctamente todas las señales.

Dado que la placa se encargará a una empresa del sector de fabricación de PCBs, las limitaciones del

prototipo no serán necesarias, admitiendo vías de 1mm y pistas de 0.35mm lo que facilitará la

interconexión de los diferentes pads.

32

Las capas del PCB son las siguientes:

- Top: Enrutado de señales y DVDD

- Internal Plane: VCC

- Internal Plane: GND

- Bottom: Enrutado de señales

La mayor parte de los componentes SMD se han incluído en la capa Top, a excepción de los convertidores

AD y operacionales, que siguen un diseño simétrico tanto por la capa Top como por la capa Bottom. De este

modo 4 convertidores se colocan en la capa superior y los 4 restantes en la inferior.

La distribución de los conectores a lo largo del PCB viene predefinido por la tarjeta diseñada por Applied

Power Electronics Technology Research Group de la Universidad de Vigo. Esta tarjeta, denominada

PCB_sbRIO-Convertidor, dispone de todos los conectores necesarios para la integración de las señales

anteriormente citadas. En la Imagen 9 se puede ver la disposición de los diferentes conectores en la zona

exterior de la placa y los conectores en los que deberá encajar la placa diseñada en este anexo.

Imagen 9: PCB_sbRIO-Convertidor

33

A continuación se mostrarán los esquemas que componen el sistema AD y el DA. Para más información

sobre los esquemas consultar el Anexo 3.

Esquema 9: AD1

Esquema 10: AD2

34

Esquema 11: AD3

Esquema 12: AD4

35

Esquema 13: AD5

Esquema 14: AD6

36

Esquema 15: AD7

Esquema 16: AD8

37

Esquema 17: DA

Esquema 18: Etapa alimentación

38

En el Esquema 19 se representan los conectores y la asociación de señales de la placa de adaptación

PCB_sbRIO-Convertidor. Estos conectores se incluirán en la capa bottom para enganchar y comunicar

ambas placas.

Esquema 19: Conectores PCB_sbRIO-Convertidor

La FPGA se conectará con la placa a través de los conectores CN1, CN2 y CN3 del Esquema 20:

- El conector CN1 recoge las señales necesarias para las entradas y salidas analógicas.

- El conector CN2 incluye 8 señales LVTTL además de 14 entradas digitales.

- El conector CN3 da salida a las salidas digitales además de 4 salidas especiales para activación de

relés.

Esquema 20: Conectores tarjeta adaptación FMC

39

En el Esquema 21 se pueden observar los 6 circuitos dedicados a la conversión de voltaje de las señales,

puesto que la FPGA trabaja a 3.3V y los requisitos del proyecto precisan señales de 5V.

Esquema 21: Interfaces 5V - 3.3V

Por último, se muestran en el Esquema 22 las salidas opto acopladas aptas para el manejo de los relés a

través de los integrados ASSR-1218. La corriente que circulará por el led es de 3.3/500=6.6mA.

Esquema 22: Relés de estado sólido

40

Para el diseño final del PCB se han distribuido los conectores CN1, CN2 y CN3 por proximidad a las señales

con las que cuentan. De este modo se minimiza la longitud de las pistas y se mantiene un diseño más

ordenado.

La mayor concentración de componentes se sitúa en la zona superior derecha, donde se incluyen los

operacionales, los ADC y la circuitería asociada. El diseño se ha llevado a cabo con el fin de minimizar el

espacio ocupado, dejando la mitad de los canales en la parte superior (Imagen 10) y la otra mitad en la

parte inferior (Imagen 11).

Imagen 10: ADC Top

Imagen 11: ADC Bottom

41

El resto de señales del conector CN1 se completan con las referentes a los módulos DAC (DA1, DA2, DA3 y

DA4). Estas señales requieren el uso de uno de los circuitos de interfaz entre 5V y 3.3V (T2) como se ve en

la Imagen 12.

Imagen 12: DAC

En la zona media de la placa se sitúa el regulador de tensión a 3.3V (U33) que repartirá la alimentación a

todos los circuitos de interfaz además de al ADC. En la parte derecha de la Imagen 13 se puede ver también

el conector de alimentación de 5V (P23) y los condensadores de filtrado (C109 y C110).

Imagen 13: Módulo de alimentación

42

En el lazo izquierdo de la placa se encuentra el conector CN2, que reparte las entradas digitales al circuito

de interfaz T5 y T6. Las señales LVTTL son compatibles con la FPGA por lo que no requieren de ninguna

adaptación como se observa en la Imagen 14.

Imagen 14: Entradas digitales y LVTTL

Por último, en la Imagen 15 se representan las salidas digitales dotadas de la interfaz de 5V además de las 4

salidas para los relés situadas en la zona media de la imagen.

Imagen 15: Salidas digitales y relés

43

Para finalizar este anexo, se mostrarán a continuación los ficheros de salida para la fabricación del

prototipo además de la visualización 3D de la placa completa.

Imagen 16: PCB Multilayer Color

44

Imagen 17: PCB Top

45

Imagen 18: PCB Bottom

46

Imagen 19: PCB Plane VCC

47

Imagen 20: PCB Plane GND

48

Imagen 21: PCB Top 3D 1

49

Imagen 22: PCB Top 3D 2

50

Imagen 23: PCB Bottom 3D 1

51

Imagen 24: PCB Bottom 3D 2

52

Anexo 5: Presupuesto Hardware

En este anexo se muestra la tabla realizada para el pedido de los componentes.

Mouser

Cantidad Descripción Referencia Precio

u. Parcial

8 Texas ADS7254IPW 595-ADS7254IPW 8,96 71,68

8 Texas THS4532IPW 595-THS4532IPW 5,06 40,48

4 Microchip MCP4822 579-MCP4822-E/SN 2,99 11,96

2 Texas SN74LVC2T45DCTR 595-SN74LVC2T45DCTR 0,652 1,304

6 Texas SN74LVC8T245DWR 595-SN74LVC8T245DWR 1,1 6,6

1 LMS8117AMP-3.3/NOPB 926-LMS8117AMP33NOPB 1,03 1,03

4 Avago ASSR-1218 630-ASSR-1218-003E 1,87 7,48

3 Conector 2.54 30pin Cara superior 517-D2530-6V0C-AR-WF 3,56 10,68

1 Conector 2.54 20pin Cara inferior 653-XG4C-2031 0,977 0,977

1 Conector 2.54 26pin Cara inferior 653-XG4C-2631 1,11 1,11

1 Conector 2.54 34pin Cara inferior 653-XG4C-3431 1,36 1,36

2 Conector 2.54 40pin Cara inferior 653-XG4C-4031 1,4 2,8

1 Conector 2.54 60pin Cara inferior 653-XG4C-6031 2,05 2,05

0

1 Condensador Electrolítico 100uF 140-REA101M1EBK0611P 0,108 0,108

1 Condensador 100nF 81-GRM219R71E104KA1D 0,109 0,109

22 Condensador 10V 1 uF 77-VJ0805Y105KXQTBC 0,045 0,99

16 Condensador 10uF 581-0805YD106K 0,097 1,552

42 Condensador 0.1uF 77-VJ0805Y104MXXAC 0,054 2,268

16 Condensador 2.2nF 77-VJ0805A222JXAAT 0,081 1,296

16 Condensador 0.22uF 77-VJ0805Y224MXJTBC 0,054 0,864

4 Condensador 2.2uF 77-VJ0805V225MXQTBC 0,054 0,216

1 Condensador tantalio 10uF 581-TAJR106K006R 0,097 0,097

1 Condensador tantalio 22uF 581-TAJP226M006RNJ 0,737 0,737

32 Resistencia 2k 667-ERJ-6GEYJ202V 0,018 0,576

52 Resistencia 1k 667-ERJ-6GEYJ102V 0,016 0,832

32 Resistencia 10 667-ERJ-6GEYJ100V 0,016 0,512

4 Resistencia 470 667-ERJ-6GEYJ471V 0,091 0,364

5 Jumpers 571-382811-6 0,1 0,5

6 Conectores cable plano 30pin 517-8930 1,84 11,04

Total 181,572

53

Anexo 6: Pinout FMC LPC

Conector 1:

Conector 2:

Conector 3:

54

Anexo 7: Diseño Hardware Spartan 6

Se ha diseñado un sistema para la gestión de datos entre el LabVIEW y los convertidores basado en el

procesador embebido MicroBlaze y generado a partir del software EDK de Xilinx.

En el Esquema 23 se representa el diagrama de bloques formando un sistema centrado en el MicroBlaze.

Esquema 23: Diagrama de bloques FPGA

El bloque central del sistema es el procesador software MicroBlaze en el que se programarán las rutinas de

comunicación con el PCB y el entorno LabVIEW que se comentarán posteriormente. A continuación se

detalla la funcionalidad y las señales de cada uno de los bloques presentes en la figura anterior.

El procesador MicroBlaze cuenta con dos señales de gestión que se corresponden con INTERRUPT y DEBUG

cuyo uso de detallará en los bloques que las usan. Los buses son manejados como master por el

procesador, disponiendo del bus LMB que se conecta a una memoria BRAM, del bus AXI4 que gestionará la

memoria DDR2 y del bus AXI4LITE dedicado a la conexión con todos los periféricos.

Imagen 25: MicroBlaze

55

El MicroBlaze dispone de dos buses LMB, uno de datos DLMB y otro de instrucciones ILMB que irán

conectados a los controladores del bloque BRAM. En esta memoria se pueden almacenar datos e

instrucciones con una capacidad limitada.

Imagen 26: Controladores y bloque BRAM

Se ha añadido un bloque DDR2 para controlar la memoria hardware disponible en la Spartan 6. Esta

permitirá guardar tanto datos como instrucciones en su interior sirviendo de memoria del sistema cuando

el bloque BRAM no es suficiente. Se conecta a través del bus AXI4 que únicamente ocupará esa función.

Imagen 27: Bloque DDR2

56

De cara a posibles mejoras del proyecto se ha incorporado el módulo Ethernet al hardware disponible. Con

esto se permitirá en un futuro ampliar drásticamente el ancho de banda actual del puerto serie para

realizar lecturas y escrituras continuas de varios canales.

Imagen 28: Módulo Ethernet

Además del módulo Ethernet, se han incorporado los periféricos básicos al diseño que se corresponden con

los botones, los interruptores y los LEDs de la FPGA.

Imagen 29: Botones, interruptores y LEDs

57

Para la comunicación con los convertidores se han añadido dos módulos SPI. El primero denominado AXI

SPI 0 gestionará el convertidor analógico-digital quedando el AXI SPI 1 para el control del convertidor

digital-analógico. Ambos módulos se conectan a través del bus AXI4LITE al procesador como todos los

periféricos.

Imagen 30: SPI 0 y SPI 1

Del mismo modo, se agrega un módulo para la comunicación con el software LabVIEW, en este caso, un

módulo UART que gestionará la comunicación serie.

Imagen 31: Módulo UART

58

Para las tareas de depuración software necesarias para las pruebas del correcto funcionamiento del código

desarrollado se añade el módulo Debug. Este módulo se conecta a la señal DEBUG del MicroBlaze

permitiendo ejecutar tareas paso a paso.

Imagen 32: Módulo Debug

Por último, el bloque AXI Intc es el encargado de gestionar las 3 fuentes de interrupción disponibles

permitiendo identificar y lanzar una interrupción al micro cuando cualquiera de ellas se activa. Los módulos

que pueden generar interrupciones son los siguientes:

- AXI SPI 0

- AXI SPI 1

- AXI UART Lite

Imagen 33: Módulo de interrupciones

59

Para finalizar, se muestra en la Imagen 34 la tabla de los principales recursos usados de la FPGA y su

porcentaje de utilización sobre los recursos totales.

Imagen 34: Tabla de uso de los recursos de la FPGA

Slice Logic Utilization Used Available UtilizationNumber of Slice Registers 3,782 18,224 20%

Number of Slice LUTs 4,819 9,112 52%

Number of occupied Slices 1,879 2,278 82%

Number of MUXCYs used 460 4,556 10%

Number of bonded IOBs 90 232 38%

Number of RAMB16BWERs 16 32 50%

Number of RAMB8BWERs 0 64 0%

Number of BUFIO2/BUFIO2_2CLKs 1 32 3%

Number of BUFIO2FB/BUFIO2FB_2CLKs 0 32 0%

Number of BUFG/BUFGMUXs 2 16 12%

Number of DCM/DCM_CLKGENs 0 4 0%

Number of ILOGIC2/ISERDES2s 18 248 7%

Number of IODELAY2/IODRP2/IODRP2_MCBs 24 248 9%

Number of OLOGIC2/OSERDES2s 59 248 23%

Number of BSCANs 1 4 25%

Number of BUFHs 0 128 0%

Number of BUFPLLs 0 8 0%

Number of BUFPLL_MCBs 1 4 25%

Number of DSP48A1s 3 32 9%

Number of ICAPs 0 1 0%

Number of MCBs 1 2 50%

Number of PCILOGICSEs 0 2 0%

Number of PLL_ADVs 1 2 50%

Number of PMVs 0 1 0%

Number of STARTUPs 0 1 0%

Number of SUSPEND_SYNCs 0 1 0%

Device Utilization Summary

60

Anexo 8: Diseño Software Spartan 6

En este anexo se intentará dar una visión más detallada de los comandos mencionados en el informe principal.

Inicio

Inicialización SPI, UART e

interrupciones

Hay trama de recepción serie?

No

Comando

CMD = 0

Lectura ADC

CMD = 1

Escritura ADC

CMD = 2

Lectura continua ADC

Genera trama de respuesta a LabView

Genera trama de respuesta a LabView

Escritura DAC

CMD = 3

Imagen 35: Diagrama de flujo MicroBlaze

El programa de pruebas para el prototipo permite realizar 4 operaciones como respuesta a las solicitudes

del LabVIEW:

- Lectura de registros del convertidor ADC: El programa realiza una lectura del registro de

configuración CFR cuando el valor del campo CMD de la trama es 0. Este registro permite

programar el ADC para diversos modos de salida de datos por el SPI, activar la referencia interna de

tensión y seleccionar el rango de conversión. Se realiza la lectura del registro y se guarda la

información en la variable RegisterData para posteriormente generar la trama de respuesta por

puerto serie con las cabeceras correspondientes, devolviendo el campo CMD = 0 e introduciendo

los bits leídos a continuación.

61

- Escritura de registros del convertidor ADC: Esta es la función más breve, pues solo escribe el valor

recibido en el registro CFR del ADC cuando el campo CMD es 1. Esto permite configurar el

convertidor a través de LabVIEW.

- Lectura continua ADC: Al recibir el campo CMD con valor 2 la FPGA debe realizar un muestreo

continuo del mismo número de muestras que se soliciten. Este número viene indicado por los bytes

de cabecera de la trama H y L. En esta función la señal CS se pone en modo automático dejando la

gestión al driver para realizar las capturas a la máxima velocidad que admite el convertidor de 1

MS/s. Tras la lectura de todos los valores se genera la trama de respuesta sin variar las cabeceras H,

L y CMD enviando a continuación todos los datos recibidos por el puerto serie para su

representación.

- Escritura del DAC: Por último, cuando el campo CMD es 3 las funciones pasan a realizarse con el SPI

1 conectado al convertidor digital-analógico. Esta función traslada los bytes recibidos de la onda

seleccionada en LabVIEW al convertidor para generarla. Dado que el DAC no envía nunca ningún

dato a la FPGA no se genera ninguna trama de respuesta al PC.

62

Anexo 9: Diseño LabVIEW

En este anexo se comentará el diseño de LabVIEW representado en el diagrama de flujo de la Imagen 36.

Interfaz usuario Programa principalEnvío serie Recepción serie

Selección comando

CMD = 0

Lectura ADC

CMD = 1

Escritura ADC

CMD = 2

Lectura continua ADC

Buffer trama de envío

Hay trama de envío?

No

Añade cabecera con

longitud

Envío por puerto serie

Hay datos de entrada serie?

No

Almacena en cola

Elimina cabecera con

longitud

Buffer trama de recepción

Hay trama de recepción?

No

Selección comando

Muestra el contenido del

registro

Dibuja una gráfica con las muestras

obtenidas

CMD = 0 CMD = 2

Escritura DAC

CMD = 3

Imagen 36: Diagrama de flujo LabVIEW

Para ello se comentarán los 4 comandos habilitados en el programa, mencionados también en el Anexo 8

ya que la comunicación entre la FPGA y el PC se regula a través del valor del comando correspondiente.

Entre los procesos que precisan comunicación se ha implementado un buffer a modo de memoria FIFO

para la interconexión de los VIs.

Lectura ADC

El proceso de lectura consiste en enviar al buffer de salida una trama con el campo CMD = 0. Tras ello el

proceso Envío serie gestionará el paso de la información a la FPGA que procesará el comando devolviendo

al LabVIEW el valor leído. Este valor se representará en los pulsadores de la Imagen 37.

Imagen 37: Panel frontal de configuración

63

Escritura ADC

El proceso de escritura se realiza a través del mismo panel, generando una trama con el campo CMD = 1

seguido de los datos a escribir en el convertidor. Los campos que se modifiquen en la trama serán los que

se activen a través de los interruptores del panel frontal. La FPGA se encargará de configurar el registro con

los datos recibidos.

Lectura continua ADC

El proceso de escritura continua se ejecuta mediante el panel de la Imagen 38. En él se escogen un número

finito de muestras que serán enviadas la FPGA que realizará la lectura de los datos. Tras ello, los devolverá

por el puerto serie donde el LabVIEW los representará en la gráfica.

Imagen 38: Panel frontal de gráficas de entradas analógicas

Escritura DAC

Por último, el proceso de escritura en el convertidor se realiza a través del panel de la Imagen 39 que nos

permitirá configurar el tipo de onda a generar, la frecuencia con la que se toman las muestras para ser

enviadas y un selector de ganancia incluido en el propio convertidor digital analógico.

64

Imagen 39: Panel frontal de salidas analógicas

Además se incluye en el software generador de funciones unas gráficas que representan los valores a

enviar a la FPGA además de un analizador digital de las tramas de salida.

La FPGA no realiza ninguna respuesta tras el envío de todas las tramas al convertidor.