Cómo eliminar el ruido de audio de bajo nivel de un circuito ATMEGA328p + LM386

Estoy construyendo un proyecto de audio con un ATMEGA328p usando un LM386 como amplificador y la biblioteca de audio Mozzi.

  • La fuente de alimentación son 4 pilas AA.
  • Estoy usando un regulador de voltaje MCP1700 para bajar el voltaje a 3.3 V para todo el circuito EXCEPTO el LM386.
  • El LM386 se alimenta directamente de las baterías a 6 V (con una tapa de desacoplamiento de 100 μF), sin pasar por el regulador, para obtener un mejor volumen de salida.
  • La señal de audio sale directamente del pin 15/PB1/digital 9 de Atmega a través de una resistencia de 2,2 kΩ al LM386 (la resistencia no se muestra en el esquema).

La salida es agradable, fuerte y no distorsionada, pero hay un gemido agudo y silencioso y un zumbido/clic bajo en el fondo que fluctúa; suena como una onda de diente de sierra de tono bajo.

¿Qué me estoy perdiendo? He leído acerca de una tapa de desacoplamiento en el pin 7 del amplificador, resistencias en el voltaje en el pin 6 del amplificador. Intenté piratearlos en mi PCB pero no escuché ninguna diferencia en el ruido.

Algunas notas esquemáticas:

  • C3 es 1000 μF
  • phoneroute va directamente a una salida de conmutación de auriculares/altavoces
  • la salida de audio proviene directamente del Atmega a través de una resistencia de 2,2 kΩ

esquema de audio

Esquema del regulador de voltaje

¿Cómo es la señal de salida de audio del Atmega?
Entonces, ¿qué hace el software del Atmega? ¿Sabes lo que hace la biblioteca? ¿El sonido desaparece si no usa la biblioteca, no emite nada o mantiene el AVR reiniciado? ¿Dónde está el resto de los esquemas, tal vez debería haber una tapa de acoplamiento de CA entre LM386 y AVR, verdad? ¿Y cómo sería suficiente un 2k2 para mantener la amplitud de la entrada LM386 dentro de las especificaciones? ¿Has comprobado con un osciloscopio que lo que estás haciendo mantendrá el LM386 en condiciones de funcionamiento?
¿Para qué sirve C2 (100nF)? Intente eliminar C2 y pruebe de nuevo.
También me gustaría señalar que el límite de 100nF directamente en la salida puede ser una mala idea, ya que va en contra de las sugerencias de la hoja de datos, y que los 1000uF con teléfonos son excepcionalmente grandes, a menos que su rango de audición sea excepcionalmente bajo, lo que una persona promedio llamaría infrasónicos ¿Hay algo más en el circuito que consumiría corriente a la frecuencia que escuchas?
¿Por qué no miras la hoja de datos del LM386? Todos los circuitos que se muestran tienen una resistencia de 10 ohmios en serie con un capacitor de 50 nF como una red zobel para evitar que suene. Estoy de acuerdo en que se necesita un condensador de acoplamiento de entrada en serie importante para bloquear CC en la entrada.
Gracias a todos. Parece ser algún tipo de distorsión causada por manejar demasiado fuerte el lm386. Solo escucho estos artefactos mientras el sonido se emite desde el atmega. Estoy usando ondas cuadradas y triangulares simples y escucho muchos artefactos de distorsión relacionados con los tonos. No es típicamente lo que piensas como "distorsión". Todos me ayudaron a darme cuenta de que mi voltaje de entrada es demasiado alto aquí. Voy a probar a ver que pasa.
@ocrdu ondas cuadradas y triangulares

Respuestas (1)

Usted dice que el sonido no está distorsionado, pero lo está sobrecargando terriblemente y haciéndolo más sensible al ruido de lo que debe ser.

El LM386 tiene una ganancia de 20 en la configuración que está mostrando. Dado que tiene una salida máxima de aproximadamente 4 V pp con un suministro de 6 V, la entrada máxima que puede aceptar será de 200 mV pp.

Dado que está utilizando 3,3 V para alimentar el ATmega328, dará una salida de 3,3 V pp. Debe atenuar la salida de la MCU en un factor de aproximadamente 17 para reducir la señal a <200 mV pp.

Eso seguirá impulsando la salida a la amplitud máxima, pero reducirá la amplificación de cualquier ruido por el mismo factor, haciéndolo mucho menos ruidoso.

La atenuación podría lograrse con una resistencia de 18k desde la MCU y una resistencia de 1k a tierra. (que da una atenuación de 19:1). Tenga cuidado de que la tierra de la resistencia de 1k esté cerca del LM386 en lugar de la MCU o habrá más oportunidades de levantar la nariz del suelo. Probablemente también obtendrá mejores resultados si la señal de la MCU se filtra, por ejemplo, colocando un condensador en la resistencia de 1k (tal vez 0.1uF) para dar forma a la señal.

Creo que esto es probablemente correcto. Después de algunos experimentos, descubrí que el ruido no deseado solo ocurría mientras el atmega emitía sonido. Y con una salida muy baja (atenuada digitalmente), tenía un sonido muy distorsionado. Estoy usando ondas cuadradas y triangulares simples, por lo que puede ser difícil saber cuándo están distorsionadas. Medí el voltaje que salía del atmega y era de aproximadamente 1,6 V, que sería aproximadamente la mitad de 3,3 V (pico a pico). Después de la resistencia de 2.2k, midió un poco más de 1v. Parece que necesito reducir este voltaje como me recomendaste. tratare de informar