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
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
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.
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
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.
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.
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
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.
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.
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
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.
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
Top Related