3 votos

Considerando el CAD Delta Sigma. Cómo establecer una frecuencia de muestreo arbitraria con ADS1675

He estado leyendo sobre lo que es el ADC delta sigma (DSADC) y si pueden ayudarme en mi proyecto y creo que sí.

El sobremuestreo reduce los requisitos del filtro antialiasing analógico y los DSADC tienen muy buena resolución.

He estado leyendo sobre un DSADC de Texas Instruments, ADS1675, pero no entiendo cómo puedo controlar la velocidad de muestreo con mejor resolución que las opciones ya incorporadas. Supongo que si el oscilador de cristal tiene frecuencia variable puedo de alguna manera ser capaz de establecer una frecuencia de muestreo arbitraria?

Si es así, ¿qué tipo de oscilador de cristal tiene un rango entre 1kHz y 32MHz? Quiero poder establecer una frecuencia de muestreo de aproximadamente 1kHz a 1MHz.

¿Cómo puedo conseguirlo? ¿Es posible o está restringido a las frecuencias de muestreo incorporadas?

Nota al margen: Estoy usando un microcontrolador con un reloj de 72MHz.

Aquí hay un enlace directo a la hoja de datos: Hoja de datos del ADS1675

1voto

Jeremy Ruten Puntos 59989

La fluctuación mencionada en la hoja de datos (p. 25) sólo se aplica a la fluctuación de la clavija CLK: el uso de la clavija de inicio para determinar la frecuencia de muestreo no afecta a la fluctuación de la clavija CLK.

La parte difícil de establecer "una frecuencia de muestreo de aproximadamente 1kHz a 1MHz" es el ajuste del filtro antialiasing analógico que dirige la entrada del ADC. (Mientras que ese filtro es difícil para los ADCs sigma-delta, es aún más difícil para los ADCs SAR y cualquier otro tipo de ADC).

Así que pasaré por alto eso y saltaré a la parte fácil de establecer "una frecuencia de muestreo de aproximadamente 1kHz a 1MHz": Si tienes suerte, hay un temporizador/contador en tu microcontrolador que puedes configurar para conducir un pulso fuera de algún pin a una velocidad programable. Si no tienes tanta suerte, hay muchos chips de temporizador/contador disponibles en el mercado con un pin de salida de pulsos de este tipo; conecta ese chip entre tu microcontrolador y el ADC de forma que el microcontrolador pueda ajustar la frecuencia de pulsos sobre la marcha.

En su lugar, yo consideraría las siguientes opciones:

Opción A: CLK de frecuencia variable. Podría conectar ese pin de salida de frecuencia programable a la entrada CLK del ADS1675. A continuación, ajuste la patilla de inicio a +3V para seleccionar el modo de "conversión múltiple" para generar automáticamente una serie de conversiones a varias velocidades indicadas en la hoja de datos (p. 17). Para obtener 1 megamuestra/segundo (1 MS/s) en esta disposición aparentemente se requieren pulsos a exactamente 8 MHz. (Por desgracia, muchos temporizadores/contadores no pueden ir tan rápido).

Opción B: CLK de frecuencia fija, frecuencia de muestreo variable. Podría conectar ese pin de salida de frecuencia programable a la entrada de inicio del ADS1675, utilizando el modo de "conversión simple" para generar una sola conversión nueva en cada pulso (p. 17). Para obtener 1 megamuestra/segundo (1 MS/s) en esta disposición se requieren pulsos en el pin de inicio a exactamente 1 MHz, y un oscilador de frecuencia fija que conduzca la clavija CLK en cualquier lugar de 8 MHz a 32 MHz - quizás algo fácilmente generado a partir del reloj de 72MHz que ya estás utilizando. (Por desgracia, este enfoque es muy vulnerable al aliasing).

La hoja de datos (p. 25) también dice

"Se recomienda que el pin START esté alineado con el flanco descendente de CLK para asegurar una correcta sincronización ya que la señal de START es internamente por el ADS1675 en el flanco ascendente de CLK".

así que yo configuraría el CLK de entrada del temporizador/contador para que sea manejado por lo mismo que maneja el CLK del ADS1675.

Opción C: velocidad de muestreo fija. Podría conectar el ADS1675 para muestrear a alguna frecuencia de muestreo fija (quizás 1 MS/s o 2 MS/s o 4 MS/s). Tal vez la forma más sencilla de hacer esto es conducir el pin CLK con un oscilador de cristal de frecuencia fija (8 MHz o 16 MHz o 32 MHz), establecer el pin de inicio a +3V para seleccionar el modo de "conversión múltiple", y establecer SCLK_SEL a GND para seleccionar el modo "SCLK interno". Luego configure el microcontrolador como "esclavo SPI" para recibir los datos. Luego, una vez que tenga los datos en la RAM, utilice el software para diezmar o promediar o generar una serie de valores a una velocidad de muestreo más lenta. (Debido a que tiene una tasa de muestreo de hardware fijo, este enfoque tiene el filtro anti-aliasing más simple, y no requiere de hardware de temporizador / contador). (Por desgracia, este enfoque es el que más energía consume).

0voto

George Netu Puntos 133

En página 15 dice: Un pin dedicado a START permite un control preciso de la conversión; conmuta el pin para comenzar el proceso de conversión.

Por lo tanto, el reloj que se utiliza es necesario para tomar conversiones de calidad, pero la velocidad de muestreo (hasta 4MSPS) es controlado por el pin de inicio y la interfaz de serie. La temporización está controlada por el microcontrolador.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X