Misteriosa ~ Oscilación de 1Hz en la salida de audio

3

Estoy tratando de crear un circuito de audio simple que sea capaz de emitir una onda sinusoidal a una frecuencia audible. Estoy usando un atmega328p para esto porque me gustaría que el patrón de frecuencia sea programable en el software. Funciona principalmente correctamente, excepto por una misteriosa oscilación de ~ 1Hz en la parte superior de la frecuencia que se está reproduciendo, y me gustaría deshacerme del ruido de ~ 1Hz. El código es bastante simple, solo contiene una interrupción para establecer el valor de PWM que se llama aproximadamente 30,000 / sy no hay otras interrupciones o eventos de bucle. El circuito también es simple y contiene la MCU, el encabezado icsp, el botón de reinicio, el conector de audio y un filtro de paso bajo para eliminar el ruido de alta frecuencia. Aquí hay una foto:

Originalmente estaba usando una placa de pruebas, pero encontré algunas sugerencias de que el acoplamiento capacitivo en la placa de pruebas podría estar causando esto, por lo que la trasladé al protobardador soldado sin éxito. Además, he intentado con batería, pared y alimentación USB sin éxito.

¿Alguna sugerencia sobre cosas para probar? ¿Podría estar relacionado con bucles de tierra?

gracias.

    
pregunta Greg

2 respuestas

2

Esta es una posibilidad muy remota ya que soy un piloto de PIC y no tengo experiencia con Atmega. Sin embargo, ¿qué pasa con el temporizador de vigilancia? ¿Podría estar encendido accidentalmente y reiniciar el procesador cada segundo o así?

Muestra una captura de la forma de onda que muestra lo que sucede alrededor de esta anomalía de un segundo. Eso podría dar una pista a la causa.

    
respondido por el Olin Lathrop
1

Debes tener mucho cuidado CUANDO cambies tu valor de PWM, hacerlo en medio del ciclo de PWM llevaría a todo tipo de locuras.

Entonces, intente establecer un nuevo valor en la interrupción de desbordamiento del contador de PWM y establezca un nuevo valor, digamos, en cada 100 interrupciones.

    
respondido por el BarsMonster

Lea otras preguntas en las etiquetas