Así que estoy diseñando un dispositivo de sonido barato y simple usando el Atmega32U4 uC y me encontré con un problema.
Estoy usando la salida PWM de 10 bits de uC para emitir audio y quiero que el usuario pueda controlar el volumen de salida usando botones, no un potenciómetro discreto. Una solución típica sería simplemente disminuir el servicio de salida PWM; pero de esa manera estoy perdiendo la resolución ya baja: al disminuir el volumen de salida solo en 10 dB, ya obtengo un voltaje de salida un 60% más bajo y, por lo tanto, ya estoy ingresando al territorio de resolución de 8 bits.
Es por eso que comencé a buscar una solución de reducción de volumen de hardware barata y no quiero usar un potenciómetro digital, ya que son relativamente caros. Al final, se me ocurrió la solución que se muestra a continuación; básicamente, utiliza dos salidas uC PWM, una para controlar el volumen (VOLPWM) y otra para dar salida al audio (OUTPWM); el VOLPWM se integra fuertemente y luego el Q1 cambia de acuerdo con el OUTPWM entre tierra y el voltaje de salida del VOLPWM. Tenga en cuenta que la integración de salida ocurre después del par Q1+R2, la señal PWM pura ingresa a la base Q1.
También consideré usar un par push-pull en lugar de Q1+R2, sin embargo, no pude obtener una salida de bajo nivel decente.
Mis preguntas son:
¿Hay mejores soluciones a mi problema?
¿No será problemático el valor similar de R2 y R5?
¿Cuáles podrían ser las otras desventajas de mi solución?
Eso es bastante bueno: has creado un DAC multiplicador.
El mayor problema que veo es que la constante de tiempo del integrador varía si Q1 está encendido o apagado: cuando está encendido, solo tiene R5 en el circuito, pero cuando está apagado, tiene R2 + R5 en serie. Para minimizar el efecto de esto, haga que R5 sea un par de órdenes de magnitud mayor que R2. (Reduzca el valor de C2 para compensar.)
colin
sx107