Necesito medir el voltaje pico a pico y la compensación de CC de una onda sinusoidal/triangular de 1 Hz a 1 MHz. La amplitud de las señales varía entre 0 y 2Vpp y el offset puede variar entre -2v y +5v. Usaré un Atmega16 para hacer el A/D. El Atmega16 tiene un ADC de 10 bits de 8 canales con una frecuencia de muestreo de 50-200 KHz a una resolución de 10 bits. Obviamente, tomar múltiples muestras para el ciclo está fuera de discusió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 pico negativo y un rectificador de precisión y conectar las salidas de esos circuitos a dos canales ADC diferentes y luego del resultado de estas conversiones (es decir, el negativo y picos positivos) calcule la compensación de vpp y DC. Obviamente, las señales deberán escalarse y cambiarse de nivel antes de aplicarse al controlador.
No estoy muy seguro de si esto funcionará en absoluto, debe haber una manera mucho más simple y sofisticada de hacer esto que no he pensado.
Varias formas de medir el voltaje pico a pico con una MCU:
submuestreo: Muestra directamente con un ADC, aunque sepa 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 sobre la misma forma de onda, y que cualquier cambio en ese patrón ocurra con relativa lentitud, y (b) la parte real de muestreo y retención del ADC tenga un ancho de banda lo suficientemente alto, aunque solo obtener una muestra una vez cada pocos ciclos de la señal, y (c) el instante de muestreo exacto del muestreo y retención no siempre llega al mismo punto en la señal repetida, sino que se desplaza a lo largo de él, alcanzando finalmente el pico más alto y luego 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 bajarsu frecuencia de muestreo con algunas señales). Los osciloscopios digitales de alta velocidad suelen utilizar esta técnica de submuestreo para inspeccionar señales de frecuencia sorprendentemente alta.
use el detector de pico máximo y el detector de valle mínimo para mantener los voltajes máximo y mínimo en los capacitores de muestreo durante el tiempo suficiente para que pueda muestrearlos. 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 que lo muestree. Si puede estimar la caída de voltaje del diodo en el software, el hardware más simple es un detector de pico de diodo-capacitor-resistencia y un detector de valle de diodo-capacitor-resistencia ... pero usar un detector de pico de precisión de amplificador operacional en lugar de un solo diodo puede ser más simple 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 sujetar el voltaje mínimo a 0) y un diodo a un capacitor de muestreo de detección de pico. El voltaje en ese capacitor le da directamente el voltaje de pico a pico. De alguna manera estime y compense las caídas de voltaje del diodo en el software, o use amplificadores operacionales para compensarlas en el 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 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 con relativa lentitud).
No estoy seguro de por qué quieres un rectificador de precisión. Supongo que realmente quiso decir "detector de pico 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 sea mejor usar una frecuencia de corte fija (para la detección de pico, detección de valle y detección de promedio) para manejar las frecuencias altas con circuitos analógicos y manejar las frecuencias bajas en el software.
Siempre que la MCU esté muestreando el voltaje pico más alto y el voltaje valle más bajo, considere también reportar el voltaje medio entre los dos; esto no siempre es el mismo que el voltaje promedio real de la señal.
Creo que está tomando el enfoque correcto al dividir la señal y medir cada parámetro por separado.
Primero, mide el voltaje de compensación de CC mediante el filtrado de paso bajo de la señal y alimentando la salida al A/D. Debido a que la señal oscila en un rango de frecuencias tan amplio, necesitará un filtro con una frecuencia de corte adaptable o tendrá que soportar un retraso prolongado en sus lecturas. Es posible que pueda hacer algo inteligente filtrando la señal lo suficiente en el hardware para reducirla a 20 kHz más o menos; entonces podría calcular el valor promedio en el 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 cual no es trivial).
Luego, vas tras la amplitud. Cambias de nivel, rectificas y escalas el voltaje de entrada para que abarque el rango del Atmega16 A/D. Podrías hacer esto con dos amplificadores operacionales rápidos y un rectificador. Creo que el orden es importante, o al menos debe tener cuidado con el voltaje al que se refiere su rectificador.
Kellenjb
Voltaje