You are on page 1of 22

1

Mdulo ADC (Convertidores analgicos-digitales)


Introduccin
Los convertidores A/D son dispositivos electrnicos que establecen una relacin biunvoca entre el valor de la seal en su entrada y la palabra digital obtenida en su salida. La relacin se establece en la mayora de los casos, con la ayuda de una tensin de referencia. La conversin analgica a digital tiene su fundamento terico en el teorema de muestreo y en los conceptos de cuantificacin y codificacin.

0a tarjeta Spartan 3E FPGA Starter Kit


La tarjeta Spartan 3E FPGA Starter Kit incluye un circuito analgico de dos canales de captura, que consta de un preamplificador con escala programable y un convertidor de analgico a digital (ADC), como se muestra en la figura.

Notas de clase Profesora Lucelly Reyes

La tarjeta proporciona una interfaz perifrica serial (SPI). El bus SPI es fullduplex con comunicacin serial sincrnica. EL bus SPI establece un esquema MaestroEsclavos manejado por 3 seales: 1. MOSI (Master Output,Slave Input), 2. MISO (Master Input, Slave Output) y 3. SCK (Reloj del Sistema). En este caso el maestro es el FPGA y los esclavos son: El DAC LTC2624, el ADC LTC1407A-1 y el pre-amplificador LTC6912-1, todos manufacturados por Linear Technology. Puesto que los esclavos comparten el bus SPI, adems de estas tres seales cuentan con seales propias para su habilitacin, de manera que no existan conflictos para un dispositivo mientras otro se est utilizando. La interfaz SPI basa su operacin en registros de desplazamiento. El maestro determina la velocidad y marca el inicio de la transferencia. Los datos recibidos por el esclavo son retornados para verificacin. Esto se ilustra en la figura siguiente, donde la seal ss es para seleccionar un esclavo en particular, dado que pueden ser varios los que comparten la interfaz.

Conversor Anlogo Digital (ADC)


Este ADC est incorporado en la placa de la FPGA y es un integrado de Linear Technology cuya referencia es LTC1407A.

Notas de clase Profesora Lucelly Reyes

Es un ADC de dos canales, cuenta con una resolucin de 14 bits, con voltaje de referencia de 1.65 voltios por canal y una frecuencia de muestreo segn el datasheet de hasta 1.5MHZ si se le incorpora un reloj de 100MHZ, por lo que, de acuerdo con el teorema de muestreo de Shanon-Nyquist, puede soportar seales de frecuencia de hasta 700KHZ. Cada canal del ADC soporta entradas entre 0.4V y 2.5 voltios, motivo por el cual es necesario que en su entrada se adecue el voltaje de la seal mediante algn circuito sujetador o retenedor. Las muestras digitales de la seal de entrada, de acuerdo a la conversin que realiza el ADC, corresponden a un valor entre -8192 y 8192 contenido en 14 bits en representacin de complemento a dos, que se entregan de manera serial en una misma seal del ADC para ambos canales.

Notas de clase Profesora Lucelly Reyes

Como se podr observar en la figura siguiente el ADC va acompaado de un preamplificador programable de ganancia variable de referencia LTC6912

Figura 1 Circuito de Captura de Seales Anlogas Como se observa en la Figura anterior, los dispositivos se comunican mediante un bus SPI de la tarjeta (adems de otros dispositivos SPI como un DAC y memoria FLASH), por lo cual se debe tener especial cuidado de deshabilitar los otros dispositivos mientras se utilizan los buses de comunicacin.

Pre-amplificador LTC6912
El LTC6912 consta de 2 amplificadores de ganancia programable de poco ruido, que son fciles de utilizar y ocupan muy poco espacio.

Notas de clase Profesora Lucelly Reyes

Las seales analgicas se conectan a los pines VinA o VinB del conector J7, con un voltaje de referencia Vref=1.65V. El 1.65V de referencia se genera mediante un divisor de tensin de los 3,3 v de la tensin de alimentacin. La ganancia de cada amplificador es programable de -1 a -100, como se muestra en la tabla.
Gain 0 -1 .2 -5 -10 -20 -50 -100 A3 B3 0 0 0 0 0 0 0 0 A2 B2 0 0 0 0 1 1 1 1 A1 B1 0 0 1 1 0 0 1 1 A0 B0 0 1 0 1 0 1 0 1 Input Voltage Range Min Max 0.4 1.025 1.4 1.525 1.5875 1.625 1.6375 2.9 2.275 1.9 1.775 1.7125 1.675 1.6625

Tabla 1 La ganancias para los dos canales son programables de manera independiente utilizando una interfaz de 3 hilos SPI para seleccionar ganancias de voltaje. Todas las ganancias estn invertidas. La ganancia de cada amplificador se enva como una palabra de 8 bits de comando, que consta de dos campos de 4 bits. El bit ms significativo, B3, se enva primero.

Notas de clase Profesora Lucelly Reyes

La salida AMP_DOUT del amplificador contiene la informacin de la ganancia. Estos valores pueden ser ignorados por la mayora de las aplicaciones. La transaccin de bus SPI se inicia cuando la FPGA coloca en bajo la seal AMP_CS. El amplificador captura datos en serie de SPI_MOSI en el franco de subida de la seal de reloj SPI_SCK. El amplificador presenta los datos en serie AMP_DOUT en el flanco de bajada del a seal SPI_SCK.

La configuracin se enva serialmente por el bus SPI_MOSI (Master Out Slave In) partiendo por el bit B3 y terminando por el bit A0. El registro de configuracin actualiza sus valores a medida que les van llegando en los flancos de subida del reloj SCK mientras la seal AMP_CS (chip select del amplificador) se encuentra en 0 lgico, y la configuracin se termina cuando se sube la seal AMP_CS (situacin en la cual ya se puede utilizar el ADC). La configuracin utilizada para el core es 00010001, es decir ganancia -1 para ambos canales, de manera de obviar este componente.

Notas de clase Profesora Lucelly Reyes

El resultado del circuito de captura (para uno de los canales) corresponde a un valor en complemento 2 de 14 bits, que en valor decimal se explica de acuerdo a la siguiente frmula: [ ]

La ganancia es la configuracin cargado en el preamplificador programable. Las diversas configuraciones permitidas para ganancia y tensiones admisibles aplicadas a las entradas de VINA y VINB aparecen en la tabla 1. La tensin de referencia para el amplificador y el ADC es 1.65V, generados a travs de un divisor de tensin que se muestra en la figura 1. En consecuencia, 1.65V se resta del voltaje de entrada en VINA o VINB. El mximo rango de la ADC es 1.25V, centrada alrededor de la tensin de referencia, 1.65V. Por lo tanto, 1.25V aparece en el denominador para escalar la entrada analgica.

Cmo se escribe un nmero en Complemento a 2?


En este sistema de representacin, los nmeros positivos se expresan igual que en Signo Magnitud que en Binario Puro. Sin embargo, para escribir los nmeros negativos se utiliza el Complemento a la Base. Formalmente, el Complemento a la
Notas de clase Profesora Lucelly Reyes

Base de un nmero entero positivo N de base b, se expresa de la siguiente manera:

siendo n el nmero de cifras empleadas en la representacin del nmero. El clculo del complemento a dos es muy sencillo y muy fcil de realizar mediante puertas lgicas, donde reside su utilidad. Para comenzar los nmeros positivos se quedarn igual en su representacin binaria. Los nmeros negativos deberemos invertir el valor de cada una de sus cifras, es decir realizar el complemento a uno, y sumarle 1 al nmero obtenido. Podemos observar esto en la tabla siguiente.
Complemento Decimal a dos 7 0111 6 0110 5 0101 4 0100 3 0011 2 0010 1 0001 0 0000 Complemento Decimal a dos 1 1111 2 1110 3 1101 4 1100 5 1011 6 1010 7 1001 8 1000

Cabe recordar que debido a la utilizacin de un bit para representar el signo, el rango de valores ser diferente al de una representacin binaria habitual; el rango de valores decimales para n bits ser:

Ejemplo : En Complemento a 2, para n = 14, el rango de representacin es:

Bits 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Nmero mximo Nmero mnimo

1 1

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

=$1FFF= 8191 =$2000= -8192

Notas de clase Profesora Lucelly Reyes

De acuerdo con la tabla 1 del fabricante los valores de voltaje para una ganancia de 1 estn entre

de la ecuacin de la recta tenemos que el voltaje medido es: [ La resolucin est dada por: [ ] ]

Pines en la FPGA
NET "SPI_MOSI" LOC = "T4" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | NET "AMP_CS" LOC = "N7" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | NET "SPI_SCK" LOC = "U16" | IOSTANDARD = LVCMOS33 | SLEW = SLOW NET "AMP_SHDN" LOC = "P7" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | NET "AMP_DOUT" LOC = "E18" | IOSTANDARD = LVCMOS33 ; DRIVE = 6 ; DRIVE = 6 ; | DRIVE = 8 ; DRIVE = 6 ;

Lenguaje de programacin grfico LabVIEW


Previamente se deshabilitan las siguientes seales de la FPGA, de manera que no exista conflicto por el uso del bus SPI: SPI_SS_B = 1 DAC_CS = 1 SF_CE0 = 1 FPGA_INIT_B = 0 DAC_CLR = 1 STRATAFLASH_OE = 1 STRATAFLASH_WE = 1
Notas de clase Profesora Lucelly Reyes

10

Los dispositivos que se deben activar de la tarjeta son:

A continuacin de creando los subVI para el preamplificador y para la toma de datos ADC

Notas de clase Profesora Lucelly Reyes

11

Existen varias seales de control que se deben tener en cuenta para manejar el ADC SCK (U16): seal de reloj. Interesa para programar la ganancia. Frecuencia mxima de 20 MHz. MOSI (T4): entrada en serie para los bits de la ganancia. Para nuestro caso (ganancia=-1) A3A2A1A0 = 0001=B3B2B1B0, siendo Ax los bits que indican la ganancia para el canal 0 y Bx para el canal 1. Los datos son capturados en flanco positivo. AMP_CS (N7): cuando se pone a nivel bajo indica que se le empiezan a enviar los bits de la ganancia AMP_SHDN(P7): reiniciar el preamplificador. Activo a nivel alto. AMP_DOUT(E18): salida de los bits de la ganancia cuando se estn introduciendo hace "eco" de los bits que se introducen. ADC0 y ADC1 sern las salidas de 14 bits de cada uno de los canales del ADC.

Notas de clase Profesora Lucelly Reyes

12

El preamplificador es tambin inversor, pero como la seal de entrada ser peridica y se ajustar entre valores conocidos no tendremos en cuenta este hecho. AMP_CS se debe poner a nivel bajo mnimo 30 ns antes de un flanco positivo y durar a nivel alto medio ciclo de reloj (a 1 en el flanco de bajada anterior). Los bits deben de estar estables en SPI_MOSI al menos 30 ns antes del flanco positivo, en el cual se leen. Establecemos varias seales de control para configurar el preamplificador y luego el conversor, todo esto haciendo uso del SPI de la Spartan 3E. SCK: reloj del SPI ce_amp: conf enabled del preamplificador si esta en alto counter: hasta 2 para controlar los tiempos arriba comentados amp_bit_count: contador hasta 8 para terminar de configurar el preamplificador go_conv: para empezar la conversin de la seal en el ADC counter: hasta 34 para guardar la conversin de los dos canales ADC0y ADC1 del ADC

El modulo que sigue maneja las seales del preamplificador

Notas de clase Profesora Lucelly Reyes

13

Este modulo permite ver la ganancia programada en los LEDs

Estos modulo constituyen el modulo del preamplificador


Notas de clase Profesora Lucelly Reyes

14

B15 Modulo para el ADC

Notas de clase Profesora Lucelly Reyes

15

Notas de clase Profesora Lucelly Reyes

16

Para entender lo del complemento a 2, veamos el siguiente ejemplo: Conectemos en el canal A 015 1.8V y en el canal B tiierra es decir 0V.

El programa final ser:

Notas de clase Profesora Lucelly Reyes

17

Creando un Host VI

Haga clic en mi PC en la ventana Explorador de proyectos y seleccione Nuevo VI. Observe cmo la nueva VI es bajo el rbol de mi PC, lo que indica que este VI pertenece al equipo host y no el Spartan-3E. En el diagrama de bloque, colocar una funcin " Open FPGA VI Reference". Este VI se encuentra en la paleta de funciones en la interfaz de FPGA. El VI "Open FPGA VI Reference "es utilizado para hacer referencia al VI que se ubicara en la memoria de la FPGA.

Notas de clase Profesora Lucelly Reyes

18

Haga clic en la funcin Open FPGA VI referencia. En el cuadro de dilogo Seleccionar VI, seleccione FPGA VI, como se muestra en la figura y haga clic en el modulo que lee las entradas ADC.

Coloque ahora funcin de Control de lectura/escritura a la derecha de la funcin de referencia abierta de VI de FPGA, como se indica a continuacin.

Notas de clase Profesora Lucelly Reyes

19

Alambre la salida FPGA VI Reference In del contro Read/Write con la entra de la FPGA Target, repita para las seales que indican algn error presente en la interfaz.

Despliegue el Vi Read/Write Control u selecciones las entradas del conversor ADC

Notas de clase Profesora Lucelly Reyes

20

Se cierra el recurso abierto en la funcin funcin: Function>>FPGAInterface>>Close FPGA VI Reference.

Notas de clase Profesora Lucelly Reyes

21

Salve como HostADC.

Compilacin fpga-vi
Para poder descargar el sistema de control al FPGA, es necesario compilar el VI. Al compilar el archivo, LABVIEW FPGA determina el rea utilizada en el FPGA, segn el nmero de slices, flip-flops, lookup tables (LUTs), multiplicadores y bloques de memoria RAM utilizados en el diseo, para as conocer el tamao de implementacin en la tarjeta. Antes de compilar el archivo, es necesario configurar el modo de la FPGA, es decir se debe especificar que el FPGA VI corra o arranque automticamente cuando se descargue sobre el dispositivo, ya que al no hacerlo no se tendr independencia con la PC. Finalizada la compilacin, se crean los archivos necesarios para descargar a la tarjeta, El archivo que se descarga a la tarjeta tiene extensin .lvbitx y se crea en la carpeta FPGA Bitfiles de la carpeta raz donde se almacena el proyecto principal. El estado de compilacin se muestra en el cuadro de dilogo y cuando se ha visualizado sale un mensaje The compilation complete successfully ,el archivo estar generado.

Descarga fpga-vi
LABVIEW FPGA permite descargar directamente el archivo a la tarjeta luego de haber terminado la compilacin, cabe indicar que se debe descargar el archivo a la memoria Flash de la tarjeta, ya que este proyecto implica que el control se debe realizar sin utilizar la interfaz con la PC, es decir que el programa de control se ejecuta directamente en la FPGA de manera autnoma. Para ello se selecciona el FPGA VI que se desee descargar, como se muestra en la figura.

Notas de clase Profesora Lucelly Reyes

22

Notas de clase Profesora Lucelly Reyes

You might also like