Está en la página 1de 22

1

Notas de clase Profesora Lucelly Reyes



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.


2

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 Maestro-
Esclavos 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.
3

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.


4

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.

5

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 A3 A2 A1 A0 Input Voltage Range
B3 B2 B1 B0 Min Max
0 0 0 0 0
-1 0 0 0 1 0.4 2.9
.2 0 0 1 0 1.025 2.275
-5 0 0 1 1 1.4 1.9
-10 0 1 0 0 1.525 1.775
-20 0 1 0 1 1.5875 1.7125
-50 0 1 1 0 1.625 1.675
-100 0 1 1 1 1.6375 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.
6

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.

7

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
8

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
a dos
Decimal
Complemento
a dos
Decimal
0111 7 1111 1
0110 6 1110 2
0101 5 1101 3
0100 4 1100 4
0011 3 1011 5
0010 2 1010 6
0001 1 1001 7
0000 0 1000 8
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
1 1 1 1 1 1 1 1 1 1 1 1 1 1 =$1FFF= 8191
Nmero
mnimo
1 0 0 0 0 0 0 0 0 0 0 0 0 0 =$2000= -8192
9

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 | DRIVE = 6 ;
NET "AMP_CS" LOC = "N7" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ;
NET "SPI_SCK" LOC = "U16" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ;
NET "AMP_SHDN" LOC = "P7" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ;
NET "AMP_DOUT" LOC = "E18" | IOSTANDARD = LVCMOS33 ;

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
10

Notas de clase Profesora Lucelly Reyes

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

11

Notas de clase Profesora Lucelly Reyes


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.
12

Notas de clase Profesora Lucelly Reyes

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
13

Notas de clase Profesora Lucelly Reyes


Este modulo permite ver la ganancia programada en los LEDs

Estos modulo constituyen el modulo del preamplificador
14

Notas de clase Profesora Lucelly Reyes

B15

Modulo para el ADC


15

Notas de clase Profesora Lucelly Reyes

16

Notas de clase Profesora Lucelly Reyes


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

El programa final ser:
17

Notas de clase Profesora Lucelly Reyes



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.
18

Notas de clase Profesora Lucelly Reyes



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.

19

Notas de clase Profesora Lucelly Reyes



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
20

Notas de clase Profesora Lucelly Reyes




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

Notas de clase Profesora Lucelly Reyes


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.


22

Notas de clase Profesora Lucelly Reyes

También podría gustarte