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.
No hay comentarios:
Publicar un comentario