Midiendo VPP y DC offset de una señal de 1Hz - 1MHz usando MCU

4

Necesito medir la tensión de pico a pico y la compensación de CC de una onda sinusoidal / triangular de 1Hz a 1MHz. La amplitud de las señales varía entre 0 y 2Vpp y el desplazamiento puede variar entre -2v y + 5v. Usaré un Atmega16 para hacer el A / D. El Atmega16 tiene un ADC de 8 canales y 10 bits con una frecuencia de muestreo de 50-200 KHz con una resolución de 10 bits. Tomar múltiples muestras para el ciclo obviamente está fuera de la cuestión.

Lo que estaba pensando hacer era muestrear dos versiones diferentes de la señal, por ejemplo, conectar la señal a un detector de picos negativos y un rectificador de precisión y conectar las salidas de los circuitos a dos canales ADC diferentes y luego del resultado de estas conversiones ( es decir, los picos negativos y positivos) calculan el vpp y DC offset. Obviamente, las señales necesitarán escalarse y cambiar de nivel antes de ser aplicadas al controlador.

No estoy realmente seguro de si esto funcionará, debe haber una forma mucho más simple y sofisticada de hacer esto en la que no he pensado.

    
pregunta volting

2 respuestas

1

Varias formas de medir el voltaje pico a pico con una MCU:

  • submuestreo: muestree directamente con un ADC, aunque sabe que está obteniendo menos de una muestra por ciclo de la señal. Esto requiere (a) que la señal se repita una y otra vez en la misma forma de onda, y cualquier cambio en ese patrón se produzca de manera relativamente lenta, y (b) la parte real de muestra y retención del ADC tiene un ancho de banda suficientemente alto, aunque solo obtener una muestra una vez cada pocos ciclos de la señal, y (c) el instante exacto de muestreo de la muestra y retención no siempre llega al mismo punto en la señal de repetición, sino que se desplaza a lo largo de la misma, alcanzando finalmente el pico más alto y Más tarde el valle más bajo de la señal. (A menudo, esta deriva ocurre sin que tenga que hacer nada; pero para garantizar que siempre funcionará, es posible que deba reducir su frecuencia de muestreo con algunas señales). Los osciloscopios digitales de alta velocidad a menudo utilizan esta técnica de submuestreo para inspeccionar señales de alta frecuencia.

  • use el detector de picos máximos y el detector de valles mínimo para mantener los voltajes máximos y mínimos en los condensadores de muestreo el tiempo suficiente para que los muestree. Use una resistencia en cada capacitor con una constante de tiempo RC "lo suficientemente larga" para que el cambio en el voltaje del máximo real a su muestra de ADC sea insignificante, o use un transistor en cada capacitor para restablecer el voltaje inmediatamente después de muestrearlo. Si puede estimar la caída de voltaje del diodo en el software, el hardware más simple es un detector de picos de diodo-condensador-resistencia y un detector de valle de diodo-capacitor-resistor ... pero usar un detector de picos de precisión de amplificador operacional en lugar de un solo diodo sea más sencillo que tratar de estimar la caída de voltaje del diodo.

  • use un capacitor de bloqueo de CC, seguido de un diodo a tierra (para fijar la tensión mínima a 0) y un diodo a un capacitor de muestreo de detección de picos. El voltaje en ese capacitor le da el voltaje pico a pico directamente. De alguna manera, estime y compense las caídas de voltaje del diodo en el software, o bien use amplificadores operacionales para compensarlos en hardware, similar al detector de picos.

  • use un mezclador de frecuencia (multiplicador analógico) para cambiar las señales de alta frecuencia a una frecuencia más fácil de manejar dentro de la capacidad de su ADC. (Al igual que en el submuestreo, esto supone que la señal se repite una y otra vez en la misma forma de onda, y cualquier cambio en ese patrón ocurre de manera relativamente lenta).

No estoy seguro de por qué quieres un rectificador de precisión. Supongo que realmente quería decir "detector de picos de precisión" (que ciertamente es casi el mismo circuito).

Un filtro RC con una constante de tiempo RC larga le dará el voltaje promedio de la señal. Como dice pingswept, probablemente es mejor usar una frecuencia de corte fija (para la detección de picos, la detección de valles y la detección promedio) para manejar las altas frecuencias con circuitos analógicos, y tratar las bajas frecuencias en el software.

Mientras la MCU muestree la tensión pico más alta y la tensión de valle más baja, Considere también reportar el voltaje a mitad de camino entre los dos - esto no siempre es el mismo que el voltaje promedio real de la señal.

    
respondido por el davidcary
4

Creo que está tomando el enfoque correcto al dividir la señal y medir cada parámetro por separado.

Primero, se mide la tensión de compensación de CC mediante el paso bajo, filtrando la señal y alimentando la salida a la A / D. Debido a que la señal oscila en un rango tan amplio de frecuencias, o bien necesitará un filtro con una frecuencia de corte adaptativa, o tendrá que soportar un largo retraso en sus lecturas. Es posible que pueda hacer algo inteligente al solo filtrar la señal lo suficiente en el hardware para reducirla a 20 kHz o menos; entonces podrías calcular el valor promedio en software.

(No creo que acelere su respuesta, pero podría ser más fácil que construir un filtro con una frecuencia de corte cambiante, lo que no es trivial).

Entonces, vas tras la amplitud. El nivel cambia, rectifica y escala el voltaje de entrada para que abarque el rango del Atmega16 A / D. Podrías hacer esto con dos opamps rápidos y un rectificador. Creo que el orden es importante, o al menos debe tener cuidado con el voltaje al que hace referencia su rectificador.

    
respondido por el pingswept

Lea otras preguntas en las etiquetas