Diseño y Desarrollo de un Analizador Lógico de 64 Canales ...

66
i Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Diseño y Desarrollo de un Analizador Lógico de 64 Canales basado en FPGA Autor: Darío Piña Gómez Tutor: Juan Antonio Sánchez Segura Dpto. de Ingeniería Electrónica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021

Transcript of Diseño y Desarrollo de un Analizador Lógico de 64 Canales ...

i

Equation Chapter 1 Section 1

Trabajo Fin de Grado

Grado en Ingeniería de las Tecnologías de

Telecomunicación

Diseño y Desarrollo de un Analizador Lógico de 64

Canales basado en FPGA

Autor: Darío Piña Gómez

Tutor: Juan Antonio Sánchez Segura

Dpto. de Ingeniería Electrónica

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2021

iii

Trabajo Fin de Grado

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

Diseño y Desarrollo de un Analizador Lógico de 64

Canales basado en FPGA

Autor:

Darío Piña Gómez

Tutor:

Juan Antonio Sánchez Segura

Profesor Colaborador

Dpto. de Ingeniería Electrónica

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2021

v

Trabajo Fin de Grado: Diseño y Desarrollo de un Analizador Lógico de 64 Canales basado en FPGA

Autor: Darío Piña Gómez

Tutor: Juan Antonio Sánchez Segura

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2021

El Secretario del Tribunal

A mi familia

A mis maestros

vii

Agradecimientos

Este proyecto significa el cierre de la fase más importante de mi vida hasta ahora. Cuando elegí estudiar este

grado no sabía muy bien de que trataba, pero un par de años después estaba seguro de que era mi pasión y de

que había acertado de lleno al elegirlo.

No han sido pocas las dificultades que he encontrado a lo largo del grado, pero siempre encontraba amigos

apoyándome y acompañándome en cada tropiezo. Estoy seguro de que muchos de estos amigos serán para

toda la vida.

Gracias a mis profesores. Por haberme enseñado todo lo que necesito para empezar la vida de ingeniero.

Gracias a mi familia y amigos. Por estar siempre cerca y no dejar que las dificultades que encontraba llegaran

a agotarme y por el apoyo y ayuda

Darío Piña Gómez

Sevilla, 2021

ix

Resumen

Hoy en día cada vez se utilizan más soluciones que pasan por el diseño de un circuito digital, cualquier

electrodoméstico, vehículo, todo tipo de maquinaria industrial, dispositivos como ordenadores o móviles,

todos ellos pasan por una etapa de diseño y verificación.

El objetivo de este trabajo es el desarrollo de un módulo, que unido a la FPGA ZYNQ, sea capaz de medir

hasta 64 señales digitales a la vez, compatible con varias tecnologías tales como CMOS 5v, TTL 3,3v y TTL

5v de una forma mucho más asequible que las soluciones que existen actualmente en el mercado.

Para llevar a cabo este proyecto se empieza con el diseño de un PCB para adaptar las señales a medir, a la

entrada de la FPGA. Este PCB debe adaptarse a las diferentes tecnologías y se configurará a través de la

FPGA.

Se va a mandar a fabricar el PCB y se van a soldar todos los componentes completando el desarrollo hardware

de este analizador lógico. Se va a verificar el correcto conexionado del PCB.

En cuanto al control de la FPGA se va a utilizar el software de desarrollo Vivado a modo de prueba de cara a

comprobar que se lean todas las señales correctamente.

xi

Abstract

Nowadays, more and more solutions are being used that go through the design of a digital circuit, any

household appliance, vehicle, all kind of industrial machinery, devices such as computers or smartphones, all

of them go through a design and verification stage.

The point of this project is the development of a module, which together with the ZYNQ FPGA, can analyze

up to 64 digital signals at the same time, compatible with various technologies such as CMOS 5v, TTL 3.3v

and TTL 5v in an easier and cheaper way than the current available devices on the market.

To carry out this project it starts by designing a PCB to adapt the signal amplitude to be measured at the input

of the FPGA. This PCB must adapt to different technologies and will be configured through the FPGA. The

PCB will be manufactured, and all the components will be soldered, completing all the hardware development

of the logic analyzer. The right connection of the PCB will be verified.

For the control of the FPGA, the Vivado development software will be used as a test to verify that all the

signals are read correctly.

xiii

Índice

Agradecimientos viii

Resumen x

Abstract xii

Índice xiii

Índice de Tablas xv

Índice de Figuras xvii

Notación xix

1 Introducción 1

2 Bases de Diseño 7 2.1. Z-Turn 7

2.1.1 Descripción física de la Z-Turn 8 2.1.2 Hardware de la Z-Turn 9

2.2. Conexiones de las señales de entrada 9 2.3. Conexiones de las señales de entrada 12

3 Circuito de Adaptación de Entrada 13 3.1. Cálculo de Resistencias 14 3.2. Circuito para generar VREFIO 15

4 Diseño del PCB 19 4.1. Elección del PCB 19 4.2. Diseño del esquemático utilizando KiCad 20 4.3. Diseño del layout utilizando KiCad 23 4.4. Soldadura de componentes 28 4.5. Presupuesto total del proyecto 28 4.6. Software 33

5 Etapa de Verificación 37 5.1. Montaje con Arduino UNO 37 5.2. Programa de Test 38

6 Líneas Futuras 41 6.1. Analizador Portátil 41 6.2. Aumentar Compatibilidad 41 6.3. Implementar Entrelazado de Relojes 42 6.4 Desarrollar interfaz gráfica 42 6.5. Verificación de nivel Superior 42

Referencias 44

Anexo 1 45

xv

ÍNDICE DE TABLAS

Tabla 2–1. Pinnout Conector CN1.

Tabla 2–2. Pinnout Conector CN2.

xvii

ÍNDICE DE FIGURAS

Figura 1-1. Analizador lógico de Saleae.

Figura 1-2. Analizador lógico DSLogic U3Pro.

Figura 1-3. Analizador lógico Digital Discovery.

Figura 1-4. Analizador lógico Red Pitaya Logic Analyzer Pro.

Figura 1-5. Analizador lógico IKALOGIC SP209.

Figura 1-6. Analizador lógico RTH1004 + RTH-B1.

Figura 1-7. Analizador lógico MP720013.

Figura 1-8. Analizador lógico PLA2532.

Figura 2-1. Imagen de la Zturn.

Figura 2-2. Plano de la Z-Turn.

Figura 3-1. Niveles lógicos de las distintas tecnologías.

Figura 3-2. Input Divider.

Figura 3-3. Diagrama de Bode del Input Divider.

Figura 3-4. DAC R2R.

Figura 4-1. Calculador de precios tamaño 100x100mm.

Figura 4-2. Calculador de precios tamaño 110x110mm.

Figura 4-3. Conexionado de los puertos del PCB.

Figura 4-4. Input Dividers.

Figura 4-5. Estructura DAC R2R de configuración de VREFIO.

Figura 4-6. Vista general del esquemático.

Figura 4-7. Colocación de los componentes y conectores.

Figura 4-8. Pads originales del conector 2x40.

Figura 4-9. Pads modificados del conector 2x40.

Figura 4-10. Rutado de la capa superior

Figura 4-11. Rutado de la capa inferior.

Figura 4-12. Capa superior completa.

Figura 4-13. Capa GND completa.

Figura 4-14. Capa VREFIO completa.

Figura 4-15. Capa inferior completa.

Figura 4-16. Modelo 3D.

Figura 4-17. Proceso de Soldado.

Figura 4-18. Pads VCC3V3 en diodo.

Figura 4-19. Error de soldadura.

Figura 4-20. Z-Turn acoplada en el PCB diseñado.

Figura 4-21. Placa Finalizada.

Figura 4-22. Z-Turn acoplada al PCB.

Figura 4-23. Código captura.

Figura 4-24. Código para configurar VREFIO.

Figura 5-1. Circuito de puebas.

Figura 5-2. Código de Arduino.

Figura 5-3. Vivado Waveform.

Figura 6-1. Convertidor R2R con Ajuste de ganancia.

xix

Notación

v Voltio

K Kiloohmio

R Resistencia

C Capacidad

PCB Printed Circuit Board

FPGA Field Programmable Gate Array

GS/s Miles de millones de muestras por segundo

MS/s Millones de muestras por segundo

USB Universal Serial Bus

KiCad Software de diseño de Circuitos

Vivado Software de desarrollo FPGA

1

1 INTRODUCCIÓN

oy en día cada dispositivo que nos rodea trabaja de forma digital y a menudo utilizan bastantes señales,

a la vez que aumenta el número de señales, el problema a la hora de verificar el funcionamiento del

prototipo se complica. Así, las empresas recurren a utilizar analizadores digitales comerciales, el

inconveniente principal es el alto coste de estos equipos. A menudo pequeñas empresas desarrollan soluciones

simples y económicas, pero al recurrir a equipos de verificación de tan alto nivel se dispara el precio.

Para comenzar se ha buscado en internet las soluciones que existen actualmente para solventar este problema.

Se va a centrar la búsqueda en dispositivos que estén a la venta y estén disponibles a través de distribuidores de

confianza como son Farnell, Mouser y RS-Components. Así se ve el estado del arte en estos dispositivos.

Existe una empresa llamada Saleae [1], aunque sus dispositivos no se encuentran en las distribuidoras

anteriormente citadas, ha parecido buena idea incluirlo ya que se dedica a vender varios tipos de analizadores

lógicos, utilizan desde 8 a 16 canales y los precios oscilan desde 800€ hasta 1000€. Cuentan con un software

muy intuitivo y compatible con todos los sistemas operativos.

Figura 1-1. Analizador lógico de Saleae.

H

Introducción

2

En la web de Mouser se han encontrado tres dispositivos diferentes y muy interesantes, en primer lugar está el

DSLogic U3Pro 16 [2], se trata de un analizador lógico por USB, puede utilizar hasta 16 canales y leer a una

velocidad muy alta, de hasta 1GS/s, el rango de tensiones de entrada soportadas para diferentes tecnologías va

de uno a cinco voltios y tiene un precio de 269,19€.

Figura 1-2. Analizador lógico DSLogic U3Pro.

En segundo lugar, Digilent Digital Discovery [3], esta solución tiene un coste de aproximadamente 211,74€

[4], está basada en una FPGA. Cuenta con 24 canales para analizar señales, 16 puertos de entrada y salida y un

generador de 16 canales para hacerlo compatible con diferentes tecnologías. Además, es capaz de tomar hasta

800MS/s usando eso sí hasta 8 señales de entrada, 400MS/s con 16 hasta señales de entrada y 200MS/s con

hasta 32 señales de entrada.

Figura 1-3. Analizador lógico Digital Discovery.

3

El último producto de Mouser es el más asequible ya que ronda los 80€, se trata del Red Pitaya Logic Analizer

PRO [5], utiliza 8 canales para señal, es compatible con tensiones de 2,5 hasta 5,5 voltios. Es un modelo de

analizador muy especial ya que cuenta con una plataforma web de forma que se puede utilizar desde un

dispositivo móvil incluso y de forma totalmente inalámbrica y el software parece a su vez muy intuitivo.

Figura 1-4. Analizador lógico Red Pitaya Logic Analyzer Pro.

En la tienda RS-Components se han elegido dos soluciones completamente distintas, ambas muy caras eso sí,

en primer lugar tenemos el IKALOGIC SP209 [6], se trata de un analizador lógico USB, solo tiene 9 canales,

es compatible con tecnologías desde 1,8v hasta 5v y tiene un coste de 543,29€, para las características de

interés en este proyecto, parece ser la peor opción con diferencia debido a su precio y al reducido nivel de

canales.

Figura 1-5. Analizador lógico IKALOGIC SP209.

El segundo dispositivo se trata en realidad de la unión de un osciloscopio y un adaptador para hacerlo

funcionar como analizador digital, hablamos de osciloscopio de mano Rohde & Schwarz RTH1004 [7] y el

módulo de osciloscopio Rohde & Schwarz RTH-B1 [8], tiene 16 canales, una velocidad de lectura de 5GS/s

soporta cualquier tensión y tiene un coste en conjunto de 6.763,9€, aunque puede oscilar ya que hay varios

osciloscopios disponibles. El adaptador por separado tiene un precio de 1.439,90€.

Introducción

4

Figura 1-6. Analizador lógico RTH1004 + RTH-B1.

En la web de Farnell se ha elegido otro analizador digital osciloscopio que tienen ciertas ventajas, por ejemplo,

leer con precisión los niveles de tensión que puede ser útil en muchos casos o tener una pantalla integrada, este

es más económico que el último mencionado y se trata del MP720013 [9], posee también 16 canales de los

que leer, tasa de muestreo algo inferior, pero llega hasta 1 GS/s y con un precio de 560€.

Figura 1-7. Analizador lógico MP720013.

También se ha seleccionado en Farnell el dispositivo con mayor número de señales de los que se han

encontrado, hablamos del PLA-2532 [10] de Leap Electronic, cuenta con 32 canales, se trata de un analizador

USB, es capaz de leer todo tipo de señales digitales sin importar la tensión, pero tiene una baja tasa de

muestreo, y tiene un precio de 444,15€.

5

Figura 1-8. Analizador lógico PLA2532.

Como conclusión vemos que aunque hay muchos dispositivos disponibles con diferentes características, no

encontramos ninguno de 64 canales, dentro de la variedad que se ha encontrado vemos dos tipos distintos, los

dispositivos que dependen de un ordenador, vía USB, y los analizadores osciloscopios, que se pueden conectar

también a un PC, pero en principio no sería necesario para su correcto desempeño, destacamos una de las

soluciones que implementa una aplicación web, muy interesante para hacer el dispositivo portátil y medir

señales que estén en sitios de difícil acceso o donde no haya posibilidad de tener un PC.

En este proyecto se busca diseñar un analizador digital capaz de leer 64 canales y que a la vez tenga un precio

muy contenido, así se coloca el objetivo en desarrollar un analizador USB ya que se trata de un proyecto más

asequible. Para ello se va a recurrir a usar una FPGA ampliamente utilizada en ingeniería como es la ZYNQ…

y se va a diseñar una placa capaz de adaptar 64 señales digitales de diferentes tecnologías, en principio

compatible con TTL y CMOS, a la entrada de la FPGA.

El alcance de este proyecto incluye el diseño completo físico del analizador digital, desde la elección de etapas

necesarias, elección de componentes, diseño de PCB, soldadura de componentes y verificación. No incluye el

dearrollo de un software para utilizar el analizador lógico, en su lugar se va a utilizar el entorno de desarrollo

Vivado simplemente para verificar el correcto funcionamiento de la placa desarrollada.

Introducción

6

7

2 BASES DE DISEÑO

ntre las distintas soluciones encontradas en el mercado para el análisis de circuitos lógicos se encuentran

dos alternativas totalmente distintas, en primer lugar existen analizadores osciloscopios con hasta 16

canales, se trata de una opción muy cara pero necesaria si se quiere conocer con precisión los niveles de

tensión y caracterizar el ruido en las señales digitales. La segunda alternativa es más económica y permite

analizar un mayor número de señales, además es más fácil de almacenar la información en una memoria, se

trata de los analizadores lógicos vía USB, ahora bien, gracias a las mejoras en el mundo de las FPGA, cada vez

más empresas utilizan estas placas fáciles de programar para diseñar analizadores lógicos, como es el caso de

la anteriormente mencionada Digital Discovery de Digilent. De cara al proyecto se va a buscar una FPGA ya

que no se considera conocer los niveles de las señales con detalle, y necesitamos que sea una solución sencilla

y económica.

Se comienza buscando una FPGA capaz de leer 64 canales, es decir, debía tener 64 entradas disponibles para

utilizar como mínimo. Otra opción hubiera sido realizar una comunicación mediante I2C por ejemplo y añadir

un extensor de puertos, pero hubiera lastrado la velocidad de lectura, la cual interesa que sea la mayor posible.

2.1. Elección FPGA

Se elige la solución ofrecida por MYiR, la FPGA ZYNQ que tiene muy buenas características y, además,

unida a la placa Z-turn, ofrece una muy buena solución al tener un precio reducido, está disponible en muchas

tiendas de electrónica de confianza (En este caso se ha utilizado Mouser) y ofrece gran cantidad de pines libres

para poder utilizar.

E

Bases de Diseño

8

Figura 2-1. Imagen de la Zturn.

Desde un principio se ha buscado hacerlo con el modelo 7020 ya que se había trabajado con ella

anteriormente. Más adelante, por problemas de stock relacionados con la actual pandemia, la reducción de la

fabricación y, por ello la escasez de chips, se decidió utilizar la 7010 que sí se encontraba disponible,

adaptando en parte las conexiones del PCB diseñado. Es necesario comentar que esta modificación mejora el

diseño ya que lo hace compatible con ambos modelos.

2.1.1 Descripción física de la Z-Turn

Finalmente, el PCB es compatible con ambas placas. Esto es gracias a que físicamente los pines de conexión

tienen la misma disposición (Como se puede ver en la siguiente figura), solo varía en que la 7010 tiene algunos

pines deshabilitados.

Los conectores de pines de la Z-Turn son carriles hembras de 80 posiciones dispuestos en dos columnas y con

un paso de 1.27mm y ambos zócalos están separados entre sí 53mm. Se va a tratar que la placa encaje en el

zócalo de la Z-Turn para facilitar el conexionado y hacer que el producto quede más compacto prescindiendo

de cables.

9

Figura 2-2. Plano de la Z-Turn.

2.1.2 Hardware de la Z-Turn

El procesador que incorpora esta FPGA es una gama superior al del producto Digital Discovery de Digilent se

trata de un Xilinx Dual-core ARM cortex-A9 a 667 MHz, se dispone de potencia de sobra para el analizador

lógico y para añadir funcionalidades en líneas futuras.

2.2 Pinnout y asignaciones de la Z-turn

Este es el Pinnout de la 7020 junto con las asignaciones que se han decidido para el diseño:

Bases de Diseño

10

Tabla 2–1. Pinnout Conector CN1.

Default

Function

BGA

Pin Name

CN1

Pin Name

BGA

Default

Function

VDD_5V 1 2 GND

VDD_3.3V 3 4 GND

VDD18_KEY_BACKUP 5 6 JTAG_TCK F9

U7 IO_L11P_T1_13 7 8 JTAG_TMS J6

V7 IO_L11N_T1_13 9 10 JTAG_TDI G6

T9 IO_L12P_T1_13 11 12 JTAG_TDO F6

U10 IO_L12N_T1_13 13 14 JTAG_NTRST

VDDIO_13_PL 15 16 IO_L14P_T2_13 Y9

Y7 IO_L13P_T2_13 17 18 IO_L14N_T2_13 Y8

Y6 IO_L13N_T2_13 19 20 IO_L21P_T3_13 V11

V8 IO_L15P_T2_13 21 22 IO_L21N_T3_13 V10

W8 IO_L15N_T2_13 23 24 GND

GND 25 26 IO_L1P_T0_34 T11 DIN_FPGA_9

DIN_FPGA_0 T12 IO_L2P_T0_34 27 28 IO_L1N_T0_34 T10 DIN_FPGA_10

DIN_FPGA_1 U12 IO_L2N_T0_34 29 30 IO_L3P_T0_34 U13 DIN_FPGA_11

DIN_FPGA_2 V12 IO_L4P_T0_34 31 32 IO_L3N_T0_34 V13 DIN_FPGA_12

DIN_FPGA_3 W13 IO_L4N_T0_34 33 34 GND

GND 35 36 IO_L5P_T0_34 T14 DIN_FPGA_13

DIN_FPGA_4 P14 IO_L6P_T0_34 37 38 IO_L5N_T0_34 T15 DIN_FPGA_14

DIN_FPGA_5 R14 IO_L6N_T0_34 39 40 IO_L7P_T1_34 Y16 DIN_FPGA_15

DIN_FPGA_6 W14 IO_L8P_T1_34 41 42 IO_L7N_T1_34 Y17 DIN_FPGA_16

DIN_FPGA_7 Y14 IO_L8N_T1_34 43 44 GND

12M U14 IO_L11P_T1_34 45 46 IO_L10P_T1_34 V15 LCD_DATA2

DIN_FPGA_8 U15 IO_L11N_T1_34 47 48 IO_L10N_T1_34 W15 LCD_DATA3

VDDIO_34_PL 49 50 IO_L13P_T2_34 N18 LCD_DATA6

LCD_DATA0 T16 IO_L9P_T1_34 51 52 IO_L13N_T2_34 P19 LCD_DATA7

LCD_DATA1 T20 IO_L15P_T2_34 53 54 GND

LCD_DATA4 U18 IO_L12P_T1_34 55 56 IO_L15P_T2_34 T20 LCD_DATA10

LCD_DATA5 U19 IO_L12N_T1_34 57 58 IO_L15N_T2_34 U20 LCD_DATA11

LCD_DATA8 N20 IO_L14P_T2_34 59 60 IO_L17P_T2_34 Y18 LCD_DATA14

LCD_DATA9 P20 IO_L14N_T2_34 61 62 IO_L17N_T2_34 Y19 LCD_DATA15

LCD_DATA12 V20 IO_L16P_T2_34 63 64 IO_L19P_T3_34 R16 LCD_DE

LCD_DATA13 W20 IO_L16N_T2_34 65 66 IO_L19N_T3_34 R17 LCD_PCLK

GND 67 68 GND

LCD_HSYNC W16 IO_L18N_T2_34 69 70 IO_L18P_T2_34 V16 LCD_VSYNC

I2S_SCLK T17 IO_L20P_T3_34 71 72 IO_L20N_T3_34 R18 I2S_FSYNC_OUT

I2S_FSYNC_IN V18 IO_L21N_T3_34 73 74 IO_L21P_T3_34 V17 I2S_Dout

I2S_Din W18 IO_L22P_T3_34 75 76 IO_L24P_T3_34 P15 I2C0_SDA

HDMI_INT W19 IO_L22N_T3_34 77 78 IO_L24N_T3_34 P16 I2C0_SCL

MEMS_INTn N17 IO_L23P_T3_34 79 80 IO_L23N_T3_34 P18 BP

11

Tabla 2–2. Pinnout Conector CN2.

Default

Function

BGA

Pin Name

CN2

Pin Name

BGA

Default

Function

VDD_5V 1 2 GND

VDD_3.3V 3 4 GND

K9 XADC_INP0 5 6 DXP_0 M9

L10 XADC_INN0 7 8 DXN_0 M10

XADC_VCC 9 10 GND

DIN_VREF_1 E6 PS_MIO0_500 11 12 PS_MIO10_500 E9 UART0_RX

DIN_VREF_2 D5 PS_MIO8_500 13 14 PS_MIO11_500 C6 UART0_TX

DIN_VREF_3 B5 PS_MIO9_500 15 16 PS_MIO14_500 C5 CAN0_RX

DIN_VREF_4 D9 PS_MIO12_500 17 18 PS_MIO15_500 C8 CAN0_TX

I2C1_SDA E8 PS_MIO13_500 19 20 GND

GND 21 22 IO_L2P_T0_35 B19 DIN_FPGA_40

DIN_FPGA_17 C20 IO_L1P_T0_35 23 24 IO_L2N_T0_35 A20 DIN_FPGA_41

DIN_FPGA_18 G20 IO_L18N_T2_35 25 26 IO_L4P_T0_35 D19 DIN_FPGA_42

DIN_FPGA_19 E17 IO_L3P_T0_35 27 28 IO_L4N_T0_35 D20 DIN_FPGA_43

D18 IO_L3N_T0_35 29 30 GND

GND 31 32 IO_L6P_T0_35 F16 DIN_FPGA_44

DIN_FPGA_20 E18 IO_L5P_T0_35 33 34 IO_L6N_T0_35 F17 DIN_FPGA_45

DIN_FPGA_21 E19 IO_L5N_T0_35 35 36 IO_L8P_T1_35 M17 DIN_FPGA_46

DIN_FPGA_22 M19 IO_L7P_T1_35 37 38 IO_L8N_T1_35 M18 DIN_FPGA_47

DIN_FPGA_23 M20 IO_L7N_T1_35 39 40 GND

GND 41 42 IO_L10P_T1_35 K19 DIN_FPGA_48

DIN_FPGA_24 L19 IO_L9P_T1_35 43 44 IO_L10N_T1_35 J19 DIN_FPGA_49

DIN_FPGA_25 L20 IO_L9N_T1_35 45 46 IO_L12P_T1_35 K17 DIN_FPGA_50

DIN_FPGA_26 L16 IO_L11P_T1_35 47 48 IO_L12N_T1_35 K18 DIN_FPGA_51

DIN_FPGA_27 L17 IO_L11N_T1_35 49 50 GND

VDDIO_35_PL 51 52 IO_L14P_T2_35 J18 DIN_FPGA_52

DIN_FPGA_28 H16 IO_L13P_35 53 54 IO_L14N_T2_35 H18 DIN_FPGA_53

DIN_FPGA_29 H17 IO_L13N_35 55 56 IO_L16P_T2_35 G17 DIN_FPGA_54

DIN_FPGA_30 F19 IO_L15P_T2_35 57 58 IO_L16N_T2_35 G18 DIN_FPGA_55

DIN_FPGA_31 F20 IO_L15N_T2_35 59 60 GND

GND 61 62 IO_L18P_T2_35 G19 DIN_FPGA_56

DIN_FPGA_32 J20 IO_L17P_T2_35 63 64 IO_L18N_T2_35 G20 DIN_FPGA_57

DIN_FPGA_33 H20 IO_L17N_T2_35 65 66 IO_L20P_T3_35 K14 DIN_FPGA_58

DIN_FPGA_34 H15 IO_L19P_T3_35 67 68 IO_L20N_T3_35 J14 DIN_FPGA_59

DIN_FPGA_35 G15 IO_L19N_T3_35 69 70 GND

GND 71 72 IO_L22P_T3_35 L14 DIN_FPGA_60

DIN_FPGA_36 N15 IO_L21P_T3_35 73 74 IO_L22N_T3_35 L15 DIN_FPGA_61

DIN_FPGA_37 N16 IO_L21N_T3_35 75 76 IO_L24P_T3_35 K16 DIN_FPGA_62

DIN_FPGA_38 M14 IO_L23P_T3_35 77 78 IO_L24N_T3_35 J16 DIN_FPGA_63

DIN_FPGA_39 M15 IO_L23N_T3_35 79 80 GND

12

En las anteriores tablas se ha marcado en rojo las señales que se van a rutar a cada puerto. Habría cuatro

señales de control de VREFIO que servirán para adaptar el dispositivo a las diferentes tecnologías. Las demás

señales corresponden a las salidas de los divisores de entrada de cada canal (64 señales).

2.3 Conexiones de las señales de entrada

Se han utilizado dos conectores de dos columnas de 64 pines y vamos a rutar 32 señales a cada uno de los

conectores, los 64 pines que sobran en total se van a dejar a tierra ya que para analizar circuitos se van a

utilizar sondas que consisten en dos cables trenzados, uno a tierra y otro a la señal en cuestión, utilizados para

mantener un bajo nivel de ruido. El paso entre pines de los conectores es de 2,54 mm ya que es el tamaño más

extendido en la industria.

13

3 CIRCUITO DE ADAPTACIÓN DE ENTRADA

ara adaptar las señales a medir a la tensión esperada a la entrada de la FPGA se han diseñado unos

circuitos llamados divisores de entrada. Básicamente, consisten en un divisor resistivo junto con un

diodo de protección que conducirá en caso de que se supere la tensión esperada a la entrada de la FPGA.

En este apartado se van a distinguir dos partes, primero el estudio de las resistencias a colocar y segundo la

configuración necesaria para cada una de las tecnologías que el dispositivo va a soportar.

El ‘Input Divider’ consiste básicamente en un divisor resistivo unido a un diodo de protección y una capacidad

de compensación. Para calcular el valor de las resistencias necesarias, se ha tenido en cuenta que la tensión a la

entrada de la FPGA conviene que sea 3,3V como máximo y que la tensión de VREFIO es configurable.

Puesto que se va a hacer el dispositivo compatible con las tecnologías TTL (3.3V y 5V) y CMOS (5V). En el

caso de la tecnología TTL, ambas variantes, 3,3v y 5v, comparten VOH, VIH, VIL y VOL [11].

Figura 3-1. Niveles lógicos de las distintas tecnologías.

P

Circuito de adaptación de entrada

14

3.1 Cálculo de Resistencias.

Figura 3-2. Input Divider.

En el divisor resistivo, aplicando superposición, queda la siguiente solución al circuito,

𝑉𝐹𝑃𝐺𝐴 = 𝑅3

𝑅1 + 𝑅3𝑉𝐼𝑁 +

𝑅1

𝑅1 + 𝑅3𝑉𝑅𝐸𝐹𝐼𝑂

se trata de una ecuación con dos incógnitas, lo importante es la relación entre R1 y R3; se va a dar un valor a

𝑅3 de 200K, ya que es una resistencia lo suficientemente elevada como para evitar que pase demasiada

corriente por el amplificador de VREFIO. Como mencionamos anteriormente para el cálculo de las

resistencias se va a anular la tensión VREFIO. Los valores de los demás parámetros quedan de la siguiente

forma:

𝑉𝐹𝑃𝐺𝐴 = 3𝑣; 𝑉𝐼𝑁 = 5𝑣; 𝑅3 = 200𝐾;

3𝑣 =200𝐾

𝑅1+200𝐾 5𝑉

Despejando, R1 = 133K.

En el mercado existen resistencias de 130K, para este caso el valor de 𝑉𝐹𝑃𝐺𝐴 = 3,03𝑣 lo cual no supone

ningún problema.

Se ha analizado el circuito utilizando el software LTSpice y queda un cero en 10202 Hz y un polo en 1,65

veces la frecuencia del cero anterior, es decir, en 16833 Hz, el siguiente diagrama de Bode, el motivo de esta

pequeña atenuación a bajas frecuencias es compensar con las capacidades que hay a la entrada de la FPGA

ZYNQ.

15

Figura 3-3. Diagrama de Bode del Input Divider.

Se va a estudiar el caso más desfavorable, es decir el de CMOS 5v y el de TTL 5v. De momento no se va a

trabajar con VREFIO simplemente, en este caso se va a anular y ya se tendrá en cuenta para el caso de TTL

3,3v.

3.2 Circuito para generar VREFIO

De cara a añadir compatibilidad con diferentes tecnologías se ha decidido diseñar un convertidor digital a

analógico R2R para así, optar más valores disponibles en VREFIO. Se ha decidido alimentar el operacional a

5 voltios y se ha añadido una resistencia de 0 ohm para hacer el PCB compatible con otras configuraciones en

las que se requiera aumentar VREFIO por encima incluso de los 3,3 voltios.

Circuito de adaptación de entrada

16

Figura 3-4. DAC R2R.

Se procede a continuación, primero a calcular la tensión necesaria en VREFIO para trabajar con circuitos TTL

3,3v.

𝑉𝐹𝑃𝐺𝐴 = 𝑅3

𝑅1 + 𝑅3𝑉𝐼𝑁 +

𝑅1

𝑅1 + 𝑅3𝑉𝑅𝐸𝐹𝐼𝑂

𝑉𝑅𝐸𝐹𝐼𝑂 = (𝑉𝐹𝑃𝐺𝐴 −𝑅3

𝑅1 + 𝑅3𝑉𝐼𝑁)

𝑅1 + 𝑅3

𝑅1

𝑉𝐹𝑃𝐺𝐴 = 3𝑣; 𝑉𝐼𝑁 = 3,3𝑣; 𝑅1 = 130𝐾; 𝑅3 = 200𝐾;

𝑉𝑅𝐸𝐹𝐼𝑂 = (3𝑣 −200𝐾

330𝐾3,3𝑣)

330𝐾

130𝐾; 𝑉𝑅𝐸𝐹𝐼𝑂 = 2,54𝑣

Se calcula ahora dentro de los valores que VREFIO puede tomar cual es el más cercano a 2,54v por encima ya

que, gracias al margen de 0,3v existente en 𝑉𝐹𝑃𝐺𝐴 se puede subir algo la tensión.

𝑉𝑅𝐸𝐹𝐼𝑂 =𝐷

24 − 13,3𝑣; 𝑠𝑖 𝐷 = 12 → 𝑉𝑅𝐸𝐹𝐼𝑂 = 2,64𝑣

Finalmente, se recalcula la tensión que hay en 𝑉𝐹𝑃𝐺𝐴

𝑉𝐹𝑃𝐺𝐴 = 𝑅3

𝑅1 + 𝑅3𝑉𝐼𝑁 +

𝑅1

𝑅1 + 𝑅3𝑉𝑅𝐸𝐹𝐼𝑂

17

𝑉𝐹𝑃𝐺𝐴 = 200𝐾

330𝐾3,3𝑣 +

130𝐾

330𝐾2,64𝑣; → 𝑉𝐹𝑃𝐺𝐴 = 3,04𝑣

Se trata de un valor aceptable y se garantiza que, al estar por debajo de 3,3v, el diodo de protección no va a

conducir.

En la configuración se utiliza el vector DIN_VREF [1:4] y se decide la siguiente relación:

TTL 3,3v → DIN_REF = 1100

CMOS 5v y TTL 5v → DIN_REF = 0000

Se va a comentar como podría hacerse el dispositivo compatible con las tecnologías CMOS 1,8v y CMOS

2,5v.

En primer lugar, se va a repetir la expresión simplificada que se obtuvo en el cálculo de VREFIO para el caso

de TTL 3,3v. Y se sustituye, primero 3,3v por 2,5v y en la segunda por 1,8v para ver qué valor es necesario en

la tensión de referencia para cada caso.

𝑉𝑅𝐸𝐹𝐼𝑂 = (3𝑣 −200𝐾

330𝐾2,5𝑣)

330𝐾

130𝐾; 𝑉𝑅𝐸𝐹𝐼𝑂 = 3,77𝑣

𝑉𝑅𝐸𝐹𝐼𝑂 = (3𝑣 −200𝐾

330𝐾1,8𝑣)

330𝐾

130𝐾; 𝑉𝑅𝐸𝐹𝐼𝑂 = 4,85𝑣

En ambos casos se necesita amplificar en la etapa del R2R.

En cuanto al amplificador de esta etapa, se alimenta en este caso a 5 voltios para reutilizar la placa en caso de

necesitar amplificar por encima de 3,3v de cara a hacerlo compatible con tecnologías de tensiones más

reducidas.

Para las resistencias del R2R se ha elegido R=10K y por tanto 2R=20K. El R2R es un tipo de DAC muy

básico, pero, para la aplicación que le vamos a dar en el proyecto, es muy buena elección ya que es muy

cómodo a la hora de modificar la tensión de salida.

𝑉𝑅𝐸𝐹𝐼𝑂 =𝐷

2𝑛 − 1𝑉𝐼𝑁;

En este caso n = 4 y 𝑉𝐼𝑁 = 3,3v.

𝑉𝑅𝐸𝐹𝐼𝑂 =𝐷

153,3𝑣;

Finalmente, se ha colocado una serie de condensadores (desde C5 hasta C8) y una resistencia (R16), que en

principio no haría falta colocar, pero conviene. En el caso de las capacidades se tratan de capacidades de

desacoplo, es bueno colocarlas repartidas por la placa, evitan que el ruido que producen las conmutaciones de

las señales afecte a la parte de alimentación. Las capacidades dan la corriente necesaria para mantener la

tensión de referencia constante cuando hay transitorios, es importante que sean transistores cerámicos ya que

se necesita que trabajen lo más rápido posible para evitar errores. En cuanto a la resistencia R16, se queda de

reserva por si VREFIO no fuera estable. Como el circuito seguidor de tensión soporta algo de corriente

negativa podría ocurrir que, si la corriente es muy negativa, los reguladores y el amplificador operacional no

funcionen bien, la tensión aumente y deje de ser estable. Al colocar una resistencia en R16 se produce una

Circuito de adaptación de entrada

18

corriente de salida que cancela la corriente negativa total o parcialmente. La desventaja es que al colocar R16

aumenta el consumo de energía de la etapa.

19

4 DISEÑO DEL PCB

ste proyecto debe ser económico y sencillo, así, se ha encontrado una empresa que se dedica a fabricar

PCB de forma económica en China y enviarlos a todo el mundo, esta empresa se llama JLCPCB [12] y

en su web se explica las reglas de diseño que deben seguirse y las distintas opciones de PCB que

comercializan.

4.1 Elección del PCB

Para comenzar se ha ingresado en la página y buscado el configurador de PCB, se trata de conseguir

una placa relativamente grande de forma que quepan bien todos los componentes ya que se necesita

conectar 64 señales externas y por cada señal se tienen 2 resistencias, una capacidad y el diodo de

protección, además del circuito de generación de VREFIO y los conectores a los puertos de la FPGA.

Se puede ver que un tamaño de 100x100mm con 4 capas metálicas tiene un precio asequible.

Figura 4-1. Calculador de precios tamaño 100x100mm.

En cuanto se exceden los 100x100mm el precio se dispara.

E

Diseño del PCB

20

Figura 4-2. Calculador de precios tamaño 110x110mm.

Finalmente, el coste del PCB es de unos 12 euros incluyendo gastos de envío

4.2 Diseño del esquemático en KiCad

Se ha utilizado el software libre KiCad para diseñar el PCB, la lista de componentes que se va a utilizar es la

siguiente:

• 64 Resistencias de 130K

• 64 Resistencias de 200K

• 4 Resistencias de 10K (del R2R)

• 4 Resistencias de 20K (del R2R)

• 64 Capacidades de 120pF

• 22 1PS88SB82,115 (Cada encapsulado contiene 3 diodos)

• 2 Conectores Macho de 2x32 pines horizontales y paso de 2,54mm

• 2 Conectores Macho de 2x40 pines verticales y paso de 1,27mm (Conexión con la Z-Turn)

• 1 Amplificador operacional

El conexionado del esquemático es muy simple ya que se trata de repetir las 64 etapas de divisores de entrada,

montar el DAC R2R y organizar los distintos conectores.

La función de etiquetas de KiCad ha facilitado mucho la tarea de cablear quedando un resultado mucho más

ordenado y con la cantidad de señales que se están empleando sería impensable prescindir de esta herramienta.

21

Figura 4-3. Conexionado de los puertos del PCB.

Figura 4-4. Input Dividers.

Diseño del PCB

22

Figura 4-5. Estructura DAC R2R de configuración de VREFIO.

Figura 4-6. Vista general del esquemático.

23

4.3 Diseño del Layout del PCB en KiCad

En primer lugar, se ordenan los componentes de forma que las pistas a conectar sean lo más cortas posibles, en

la siguiente figura se puede ver cómo se han dispuesto las resistencias y capacidades en línea recta y agrupadas

en orden de manera que cada diodo queda orientado y muy cerca de los componentes a los que va conectado.

Por comodidad, se han colocado los conectores de las señales de entrada en los extremos opuestos de la placa.

Figura 4-7. Colocación de los componentes y conectores.

A continuación se realiza el rutado, como reglas de diseño se propone que las dos capas interiores de las placas

solo van a ser plano de alimentación y tierra, se evitará colocar vías bajo los pads de los componentes ya que

se podría dañar la protección a la hora de soldar y provocar un cortocircuito.

El ancho de pista es 0,25mm para el rutado de señales y 0,8 mm para las pistas de alimentación, el espaciado

es 0,2mm y la cuadrícula es de 25 mils.

De las huellas que se han tomado de las librería se han modificado los pads de los conectores que encajan con

la Z-Turn para que se adapten mejor los conectores.

Diseño del PCB

24

Figura 4-8. Pads originales del conector 2x40.

Figura 4-9. Pads modificados del conector 2x40.

A la hora de rutar se ha decidido utilizar un enrutador automatico llamado freeRouting, la preparación del

circuito para ello es muy sencilla, se eliminan las señales VREFIO, VCC3V3, VDD5V y GND para

posteriormente rutarlas a mano. Se selecciona que solo rute en las caras exteriores quedando el siguiente

resultado.

25

Figura 4-10. Rutado de la capa superior

Figura 4-11. Rutado de la capa inferior.

Al terminar el rutado e importarlo correctamente de vuelta a KiCad se procede a actualizar la netlist añadiendo

las señales que anteriormente se habían suprimido, y en las capas intermedias se asignan las señales GND y

VREFIO como señales principales y dentro de la capa de VREFIO se rutará VDD5V y VCC3V3, el motivo de

asignar VREFIO en esta capa en lugar de VCC3V3 es para que quede la mayor parte posible apantallada, y así

reducir el nivel de ruido. Por último se va a rellenar con GND las capas exteriores dejando el siguiente

resultado.

Diseño del PCB

26

Figura 4-12. Capa superior completa.

Figura 4-13. Capa GND completa.

27

Figura 4-14. Capa VREFIO completa.

Figura 4-15. Capa inferior completa.

Diseño del PCB

28

KiCad ofrece un visor 3D de la placa colocando modelos de los componentes, en la siguiente figura se muestra

el resultado final de la placa.

Figura 4-16. Modelo 3D.

4.4 Presupuesto total del proyecto

A estas alturas ya se conocen todos los materiales necesario y es preciso pedir todos para pasar al siguiente

punto. Se ha elegido la tienda Mouser.

El coste total se compone de la compra en mouser, que se encuentra en el anexo 1 y tiene un coste total de

231,41€, que añadiendo los 12€ del coste del PCB se queda en 243,41€. Un precio que queda bastante por

debajo de la competencia y teniendo un potencial muy interesante.

4.5 Soldadura de componentes

A la hora de soldar, se agradece que las resistencias y capacidades sean 1206 ya que un tamaño inferior

hubiera sido bastante más complicado de soldar a mano. Se comienza soldando las resistencias y capacidades

en fila a un solo pad de forma que queden sujetos y dar una segunda pasada a la fila soldando ahora sí los pads

opuestos de forma más rápida. En la siguiente imagen se ve como los componentes están fijados con un único

pad soldado.

29

Figura 4-17. Proceso de Soldado.

Diseño del PCB

30

En cuanto a los diodos ha sido mucho más tedioso debido al minúsculo tamaño de los pads, incluso se han

cometido varios errores en la parte de VCC3V3, puesto que se ha degradado la protección del calor irradiado

por el soldador. No ha habido ningún problema ya que ambos pads son la misma señal. En las siguientes

figuras se puede ver el error al que se hace referencia.

Figura 4-18. Pads VCC3V3 en diodo.

Figura 4-19. Error de soldadura.

31

Finalmente, a la hora de soldar los conectores, de cara a garantizar que la placa Z-Turn encajara perfectamente,

primero se colocaron los conectores en la cara trasera de la Z-turn y se soldo con la placa enganchada, al

enfriar el estaño se comprobó que se podía sacar y volver a colocar sin problema la Z-turn al PCB del

proyecto. En la siguiente imgen se aprecia como queda conectada la FPGA encima de la PCB desarrollada.

Figura 4-20. Z-Turn acoplada en el PCB diseñado.

El último paso consiste en limpiar perfectamente la placa y asegurarse de forma visual que no haya

cortocircuitos y que no haya ningún pad suelto. En la siguiente figura se puede ver el resultado final del

proceso de soldado.

Diseño del PCB

32

Figura 4-21. Placa Finalizada.

Como resultado queda una placa a la que se puede acoplar perfectamente la Z-Turn de forma que no es

necesario utilizar cables para interconectar la FPGA con el PCB desarrollado, como se puede ver en la

siguiente imagen.

33

Figura 4-22. Z-Turn acoplada al PCB.

4.6 Software

A la hora de trabajar con la FPGA se ha utilizado el software Vivado proporcionado por Xilinx, se va a

comenzar buscando en el manual las direcciones de los puertos y se asignarán a los pines de entrada de las

señales de forma que se pueda identificar correctamente cada pin. A continuación, se procede a la creación un

Diseño del PCB

34

código a ejecutar en el núcleo ARM que permite configurar a través del teminal la tensión Vref y se sigue

sintetizando el código, programando la FPGA y abriendo el debugger de Xilinx, se configura la señal de

referencia a través del terminal y, por fin se ejecuta el vivado WaveForm y, utilizando la herramienta trigger,

se pueden capturar las señales de interés.

Los códigos utilizados solo sirven para realizar comprobaciones capturando las señales con el debugger de

Xilinx de cara garantizar que el PCB fabricado en el proyecto sea totalmente funcional, la implementación de

un software para utilizar el analizador digital queda fuera del alcance de este proyecto.

El siguiente código permite que la placa esté constantemente leyendo de las 64 entradas.

Figura 4-23. Código captura.

El código de la siguiente figura permite utilizar el terminal para configurar debidamente Vrefio de acuerdo a la

tecnología que se va a probar, se ejecuta dentro del núcleo ARM.

35

Figura 4-24. Código para configurar VREFIO.

Diseño del PCB

36

37

5 ETAPA DE VERIFICACIÓN

na vez finalizadas las etapas de diseño y montaje se va a comprobar el funcionamiento del proyecto.

Para estas pruebas se ha utilizado un Arduino Uno, se trata de un dispositivo muy asequible y sencillo

que ofrece capacidad para abordar bastantes soluciones que no requieren de mucho procesamiento. En

este caso, simplemente se han utilizado sus 14 pines digitales para cablearlos a la placa e ir modificando cada

una de las señales.

5.1 Montaje con Arduino UNO

En la siguiente imagen se puede ver la placa de Arduino abajo a la derecha y la Z-Turn encajada sobre la placa

diseñada.

Figura 5-1. Circuito de puebas.

El principal fallo que se puede observar es muy fácil de solventar, se trata de que dos de las entradas a la

FPGA tienen un pull-up con una resistencia mucho más pequeña que las de este circuito de manera que

siempre se quedan a nivel alto, la forma de arreglarlo es simplemante desoldar dos resistencias en la FPGA.

U

Etapa de Verificación

38

Debido al considerable coste y a la cantidad de pines que se encuentran disponibles para realizar la

verificación, se ha decidido no desoldar estas resistencias y prescindir de las dos entradas afectadas. Además

esta FPGA se puede utilizar para otros proyectos gracias a su versatilidad. En caso de comercializar el

Analizador lógico se solventaría este detalle sin mayor problema.

Añadir que se han utilizado cables dupont sueltos para estas pruebas, pero en realidad se deberían haber

utilizado pares trenzados de cables dupont, estos están disponibles en Mouser [13] por un precio desorbitado

(En torno a 50 euros 16 pares de cables) pero también se pueden fabricar fácilmente con cables dupont sueltos.

Figura 5-2. Cables Dupont Trenzados.

5.2 Programa de Test

Se ha utilizado el siguiente código de arduino. Consiste básicamente en un bucle infinito en el que va dando

valores a cada salida y cada vez que empieza alterna las señales de salida, un ciclo a nivel alto y el siguiente a

nivel bajo, un código muy sencillo pero que sirve perfectamente para comprobar el correcto funcionamiento

del proyecto.

Figura 5-2. Código de Arduino.

39

Y al leer desde el software de Vivado se obtiene el siguiente resultado.

Figura 5-3. Vivado Waveform.

Se aprecia con detalle como el Arduino va cambiando de nivel las señales en el orden en el que se ha escrito el

código, y se ve perfectamente como pasa de un ciclo al siguiente del bucle infinito.

Se ha probado que, en la práctica, se puede utilizar un valor de VREFIO fijo para ambas tecnologías que

además sea seguro. Procedo a hacer los cálculos para buscar este valor,

𝑆𝑢𝑝𝑜𝑛𝑔𝑜 𝑉𝑅𝐸𝐹𝐼𝑂 = 4

24−13,3𝑣 = 0,88𝑣

𝑃𝑎𝑟𝑎 𝑇𝑇𝐿 3,3𝑣 ∶ 𝑉𝐹𝑃𝐺𝐴 = 200𝐾

330𝐾3,3𝑣 +

130𝐾

330𝐾0,88𝑣; → 𝑉𝐹𝑃𝐺𝐴 = 2,346𝑣

𝑃𝑎𝑟𝑎 𝐶𝑀𝑂𝑆 𝑦 𝑇𝑇𝐿 5𝑣: 𝑉𝐹𝑃𝐺𝐴 = 200𝐾

330𝐾5𝑣 +

130𝐾

330𝐾0,88𝑣; → 𝑉𝐹𝑃𝐺𝐴 = 3,38𝑣

Aunque 3,38v parezca elevado nunca se alcanza ya que ni CMOS ni TTL 5v llegan realmente a 5v, se ha

medido en el dispositivo de pruebas y sacaba en torno a 4,8 voltios. Así, buscando un margen seguro, se va a

fijar a 3,3v la entrada a la FPGA y se calcula la tensión de entrada máxima para no superar 3,3v en los puertos

de entrada de la FPGA.

𝑉𝐹𝑃𝐺𝐴 = 3,3𝑣 = 200𝐾

330𝐾𝑉𝐼𝑁

𝑀𝐴𝑋 +130𝐾

330𝐾0,88𝑣; → 𝑉𝐼𝑁

𝑀𝐴𝑋 = 4,873𝑣

Ante este pequeño margen se ha decidido que es necesario configurar debidamente el dispositivo para cada

tecnología con el fin de evitar errores en el caso de TTL 3,3v y evitar que los diodos entren en conducción en

los casos de TTL 5v y CMOS 5v.

VREF(TTL 3,3v) = 1100

VREF(CMOS 5v y TTL 5v) = 0000

Etapa de Verificación

40

41

6 LINEAS FUTURAS

ste proyecto ha sido posible gracias al auge de las FPGA y al desplome de sus precios, gracias a las

características de estas, surgen multitud de ideas que pueden mejorar el dispositivo en cuestión.

6.1 Analizador Portátil

Las FPGA ZYNQ contienen núcleos ARM, lo cual permite un consumo mínimo de energía, esto sumado a la

conectividad de la que dispone no es nada descabellado añadir un módulo wifi y conectarlo con el dispositivo

de lectura ya sea un smartphone o un portatil, incluso si se optara por la FPGA ZYNQ 7030 ya tiene varias

opciones para establecer conexiones inalámbricas sin necesidad de periféricos.

Solo faltaría añadir una batería que ofrezca autonomía suficiente para trabajar sin problemas con el equipo y

programar tanto una aplicación como una función en la fpga para que se pueda conectar con el dispositivo en

cuestión.

Sería bueno que la aplicación fuese sencilla de utilizar y rápida.

6.2 Aumentar la compatibilidad

Como se ha visto en el capítulo 3, con una simple mejora, sustituir la resistencia de 0hm por otra de un valor

fácil de calcular y colocando una resistencia del terminal negativo del amplificador a tierra se puede aumentar

la ganancia hasta conseguir VREFIO = 5v (Tensión a la que está alimentado el amplificador operacional), de

esta manera se podría hacer el dispositivo configurable para otras tecnologías como CMOS 2,5v o CMOS

1,8v.

En cuanto a las ecuaciones, RF ajusta la ganancia del circuito y Rx depende directamente de RF.

𝑅𝐹 =𝐴 𝑅

1 −1

2𝑁

Donde A es la Ganancia y N es el número de bits.

𝑅𝑥 =𝑅 𝑅𝐹

𝑅 − 𝑅𝐹

Además de esta mejora quizá convenga aumentar la resolución del convertidor para tener más valores de

VREFIO disponibles ya sea ocupando más pines o mediante algún componente físico en el PCB.

En la siguiente figura se puede ver como quedaría el circuito.

E

Lineas Futuras

42

Figura 6-1. Convertidor R2R con Ajuste de ganancia.[14]

6.3 Implementar Entrelazado de Relojes

En los analizadores lógicos que se encuentran en el mercado a menudo cuentan con esta característica, sirve

para aumentar el número de muestras por segundo utilizando varios relojes desfasados entre sí. Esta

característica se puede implementar desde el software de Vivado configurando debidamente los relojes y

generando un código que implemente el entrelazado de los relojes.

6.4 Desarrollar una Interfaz Gráfica

En el proyecto el alcance se queda en utilizar Vivado para ejecutar el analizador, sería muy interesante de cara

al público crear un software específico que implemente funcionalidades de captura de datos y utilizando un

interfaz más amigable con el usuario que Vivado.

Se podrían añadir funciones de monitoreo programado o remoto de los equipos e incluso una lista de alertas

que solo avisen al usuario en caso de detectar un mal funcionamiento.

6.5 Verificación de un Nivel Superior

Se ha verificado el funcionamiento del dispositivo mediante una placa de Arduino uno, en el mundo real hay

señales mucho más rápidas de las que se han probado y vendría bien, aunque escapa al alcance del proyecto,

probar con señales más y más rápidas.

Otro grupo de verificaciones sería el de tratar de leer señales deterioradas, ya sea por una amplitud pobre o por

un gran nivel de ruido.

43

Referencias

44

REFERENCIAS

[1] Analizadores Logic USB de Saleae

[2] 109060022 Seeed Studio | Mouser España

[3] Digital Discovery Reference Manual - Digilent Reference (digilentinc.com)

[4] 240-127 Digilent | Mouser España

[5] Logic Analyzer Pro (redpitaya.com)

[6] SP209i | Analizador lógico IKALOGIC SP209 | RS Components (rs-online.com)

[7] RTH1014 | Osciloscopio de mano Rohde & Schwarz RTH1004, calibrado UKAS, 4 canales, 100MHZ, pantalla de 7plg |

RS Components (rs-online.com)

[8] Módulo de osciloscopio Rohde & Schwarz RTH-B1 para usar con osciloscopios Serie RTH1002, RTH1004 | RS

Components (rs-online.com)

[9] Osciloscopio de Señal Mixta, Canales 2 Analógicos + 16 Digitales, 100MHz, 1 GSPS, Enchufe UE/GB (farnell.com)

[10] Analizador Lógico, 32, 2MB, 250 MHz, 30 mm (farnell.com)

[11] Detrás del pin: salidas de nivel lógico - la-tecnologia.com

[12]JLCPCB

[13] 410-349 Digilent | Mouser España

[14] Conversor digital analogico R-2R (wilaebaelectronica.blogspot.com)

Comenzando en KiCad

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_2/ug904-vivado-implementation.pdf

https://www.mouser.es/ProjectManager/ProjectDetail.aspx?AccessID=5ae106f248

Free Online PCB CAD Library | Ultra Librarian

45

ANEXO 1: PRESUPUESTO MOUSER

Anexo 1: Presupuesto Mouser

46