DISEÑO DE CIRCUITO ELECTRÓNICO PARA ADQUISICIÓN Y ...
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
Sí
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
Sí
Hay datos de entrada serie?
No
Almacena en cola
Elimina cabecera con
longitud
Buffer trama de recepción
Sí
Hay trama de recepción?
No
Selección comando
Sí
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
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
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
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
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
Sí
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
Sí
Hay datos de entrada serie?
No
Almacena en cola
Elimina cabecera con
longitud
Buffer trama de recepción
Sí
Hay trama de recepción?
No
Selección comando
Sí
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.