sábado, 29 de mayo de 2010

CONTROL DEL ADC

Existen varias señales de control que se deben tener en cuenta para manejar el ADC

SCK (U16): señal de reloj. Interesa para programar la ganancia. Frecuencia máxima 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 están introduciendo hace "eco" de los bits  que se introducen.
 ADC0 y ADC1 serán las salidas de 14 bits de cada uno de los canales del ADC.

el preamplificador es también inversor, pero como la señal de entrada será periódica y se ajustará entre valores conocidos no tendremos en cuenta este hecho.

AMP_CS se debe poner a nivel bajo mínimo 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 señales de control pra 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 conversion de la señal en el ADC
counter: hasta 34 para guardar la conversion de los dos canales ADC0y ADC1 del ADC

El control del ADC y del Preamplificador se realiza mediante una maquina de estados, esto será publicado en el siguiente post.

viernes, 28 de mayo de 2010

Diagrama Modular del Sistema

Ya familiarizados son la herramienta ISE de Xilinx, definimos el diagrama modular del Sistema, que será implementado sobre la FPGA Spartan-3E FPGA Starter Kit Board. Este diagrama se muestra a continuacion.


El ADC de la SPARTAN 3E (LTC1407A) muestrea a una frecuencia máxima de 1.47MHz por lo tanto y de acuerdo con el teorema de muetreo de Nyquist -Shannon la señal de entrada debe estar por debajo de los 750Khz. El bloque  ADC lo componen además del LTC1407A, un LTC6912-1 que es un amplificador programable dual y ambos se controlan mediante protocolo SPI. Este Bloque ADC entrega una salida de 14 bits por muestra a un bloque de MEMORIA RAM FIFO cuyo tamaño se definirá conforme se avance en la implementacion. Luego del Bloque de Memoria los registros de 14 bits se entregan al  bloque FFT que realiza una transformada rapida de fourier para entregar en sus salidas dos vectores, uno con la parte real de la transformada y otro vector con la parte imaginaria. Estos vectores  seran almacenados en otro bloque de MEMORIA RAM para que posteriormente sean enviados al PC  a través del Modulo de Control RS232.

El bloque de CONTROL PRINCIPAL consiste en una MAQUINA DE ESTADOS que se encarga de sincronizar y revisar constantemente las señales para asi decidir cuando y de que forma continúa el flujo de señales a través de la estructura definida.

En este Primer Diagrama Modular no se han definido varios elementos, primero el bloque de memoria que se utilizara para almacenar las muestras que vienen del bloque ADC. En segundo lugar no se ha mencionado el tamaño de la FFT que se utilizará y de la cual depende en gran medida  la calidad del sistema de analisis de señales de poliscopio. Por último, en este diagrama modular no se toman en cuenta las operaciones necesarias para obtener la magnitud de la FFT que permitira graficar la curva voltaje-frecuencia que se quiere lograr. asi que se supone que estas operaciones se realizaran en el computador  mediante el Software MATLAB para simplificar el sistema implementado sobre la FPGA.