Conexión del pin ADC a op. amperio. la salida distorsiona la señal

Estoy usando un microcontrolador STM32 Cortex M3 y he configurado el ADC. He verificado que el ADC funciona midiendo diferentes voltajes en la evaluación del microcontrolador. junta.

Cuando conecto mi ADC a la salida del amplificador operacional (MCP6002), la señal se distorsiona. A continuación se muestra una imagen que muestra cómo se ve la señal en la salida antes y después de conectar el ADC.

El pin ADC está configurado como entrada analógica (como debería). Al conectar pines con otra configuración, la señal no se distorsiona. la operación amperio. es alimentado por el microcontrolador eval. junta.

¡Cualquier ayuda es muy apreciada! =)

EDITAR: Esquema agregado. operación real amperio. utilizado es MCP6002 en lugar de los que se muestran en el circuito. Cuando conecto ADC1 al ADC en mi microcontrolador, la señal se distorsiona.

EDIT2: Observación adicional: al medir y colocar el ADC en el riel de alimentación de 3.3V provisto por el microcontrolador, el alcance lee 3.3V. Al hacer lo mismo con GND leo 0V. Pero al conectarlo al (3.3V/2) GND virtual realizado por uno de los MCP6002 op. amperios el resultado es el mismo que el de la imagen distorsionada de abajo.

EDIT3: acabo de configurar un nuevo ADC con configuraciones idénticas (los compararé de nuevo) y funciona. Supongo que encontraré algún error en el código/configuración en alguna parte. Te lo haré saber.

EDIT4/Solución: Estoy nuevamente asombrado por mí mismo. El mismo pin se configuró como push-pull digital en otro lugar del código, pero este módulo ya no lo usa. Este código ha estado presente durante más de un año, pero como probablemente siempre se haya inicializado antes que el ADC, el ADC ha estado sobrescribiendo la configuración de pines y todo ha funcionado bien. Esto fue hasta que la inicialización del ADC se movió y se realizó antes que la otra configuración, lo que hizo que la configuración del ADC se sobrescribiera como una entrada digital push-pull. Deseo agradecer a todos por la gran ayuda y aportes y su tiempo.

Antes arriba y después abajo

Esquemático

¿Desactivó la entrada digital en el pin, si corresponde?
@IgnacioVazquez-Abrams: Hasta donde yo sé, no hay opción para hacer esto. Estos son los modos posibles: GPIO_Mode_AIN, GPIO_Mode_IN_FLOATING, GPIO_Mode_IPD, GPIO_Mode_IPU, GPIO_Mode_Out_OD, GPIO_Mode_Out_PP, GPIO_Mode_AF_OD, GPIO_Mode_AF_PP
agregue 10nF en la entrada al ADC. Considere igualmente poner un 100R o 1k para hacer un filtro de paso bajo. El ADC es del tipo muestra y retención.
@Naib: probé ambos. No arreglé esto.
Por favor, publique un esquema.
@DeathBySnuSnu: Esquema agregado. Por favor, lea el comentario de EDITAR también.
¿Todo esto está en un simulador? Si es así, probablemente solo suponga que el simulador está actuando de alguna manera.
@ConnorWolf: el circuito no está en un simulador. (Pero dibujado en LTSpice con fines ilustrativos)

Respuestas (3)

Algunas cosas para asegurarse de:

  • Asegúrese de tener condensadores de desacoplamiento (por ejemplo, 100 nF) en todos los pines de alimentación opamp.
  • Como una configuración de ganancia unitaria es sensible a la carga capacitiva (el pin de entrada del ADC), intente aislarla usando una resistencia en serie (entre la salida del opamp y la entrada del ADC), con un valor de entre 220 Ω y 820 Ω.
  • Asegúrese completamente de que no haya nada más que afecte la entrada del ADC y que esté configurada correctamente como una entrada analógica; compruébelo con una fuente conocida, como un generador de señal, para confirmar que no sucede lo mismo.
  • Asegúrese de que la sección analógica y el uC compartan un terreno común.
  • Verifique que ninguno de los amplificadores operacionales esté oscilando en ningún punto.
  • Verifique que los rieles de suministro estén bien (verifique también bajo carga)

Háganos saber cómo va, debería ser un problema razonablemente fácil de rastrear, pero sin duda Murphy tendrá algo que decir al respecto ;-)
Un esquema adecuado con todas las partes presentes sería útil (es decir, asumo que los amplificadores operacionales tiene límites de desacoplamiento pero no los incluyó en el esquema LTSpice)

Los condensadores de desacoplamiento están en su lugar. Probando directamente con el generador de señal (chip DDS) al ADC, la señal sinusoidal está ahí, pero atenuada con un factor de aprox. 6. ¿Esto probablemente se deba a una adaptación de impedancia imperfecta? Analog y uC comparten un terreno común. Todos los rieles de suministro se revisaron y tienen los voltajes correctos. Intenté cambiar el op.amp. (por si acaso) y también probando el amplificador operacional LM358, pero el mismo problema (excepto que la CC era entonces de 700 mV frente a los 400 mV que se muestran en OP). Intenté usar una resistencia en serie (470 ohmios) y eso le dio la forma sinusoidal, pero con un pico a pico de 25 mV. 680 ohmios dieron 10 mV pico a pico.
Observación adicional: al medir y colocar el ADC en el riel de alimentación de 3,3 V proporcionado por el microcontrolador, el alcance indica 3,3 V. Al hacer lo mismo con GND leo 0V. Pero al conectarlo al (3.3V/2) GND virtual realizado por uno de los MCP6002 op. amperios el resultado es el mismo que la imagen distorsionada en OP.

Por el nivel de voltaje que ve en el pin (0.4V), tendría un 90% de suposición de que hay un cortocircuito involucrado. Podría ser la salida GPIO del ARM habilitada y conduciendo ese pin a GND. Intentaría medir la corriente que fluye hacia el pin de entrada ARM.

Estoy de nuevo asombrado por mí mismo. El mismo pin se configuró como push-pull digital en otro lugar del código, pero este módulo ya no lo usa. Este código ha estado presente durante más de un año, pero como probablemente siempre se haya inicializado antes que el ADC, el ADC ha estado sobrescribiendo la configuración de pines y todo ha funcionado bien. Esto fue hasta que la inicialización del ADC se movió y se realizó antes que la otra configuración, lo que hizo que la configuración del ADC se sobrescribiera como una entrada digital push-pull. Deseo agradecer a todos por la gran ayuda y aportes y su tiempo.