PWM es una técnica muy potente para simular una salida analógica de un microcontrolador, lógica programable o cualquier otro entorno digital. Esto se puede utilizar para controlar LED, motores y altavoces, etc. sin la necesidad de un componente DAC externo (en algunos casos es necesario un filtro de paso bajo).
Un PWM generalmente se hace usando un contador y un comparador. El contador cuenta y se acumula constantemente, y cuando está por encima de un valor de umbral (el% deseado de voltaje de salida), se envía una lógica '1', y cuando se envía una lógica '0'.
El principal problema de PWM es que existe un equilibrio entre la precisión y la frecuencia: si se necesita un bit más para la precisión, significa que el contador tardará el doble de tiempo en volver a rodar, y como tal, las frecuencias de parásitos que Los filtrados tendrán que ser más bajos en el espectro, por lo tanto más cerca de la señal y más difíciles de filtrar.
Por estas razones, PWM no es aplicable a las señales que deberían
- Tienen altas frecuencias analógicas
- Necesita demasiados bits en el DAC
Mi idea es simple: en lugar de usar un contador de N bits, uso un generador de números aleatorios, creado tomando los N bits altos (¿o bajos?) de un LFSR de bits M (por ejemplo, use los 8 bits más bajos de un LFSR de 16 bits). De esa manera, en lugar de emitir una onda cuadrada con un ancho de pulso variable, generamos un vapor de pulsos aleatorios.
La probabilidad de que un pulso sea '1' es igual a la relación entre la tensión de salida deseada y la tensión de salida máxima. Como tal, el resultado es exactamente el mismo que el de PWM, excepto que las frecuencias de parásitos ahora son aleatorias, y son mucho más fáciles de filtrar. Ahora es posible agregar tantos bits como sea necesario para el ADC, y esto no causará ningún problema.
Por ejemplo, es posible y en realidad es muy simple tener una salida de audio de 16 bits con un reloj de 1MHz. Con el PWM tradicional, esto nunca hubiera sido posible: solo una señal de audio de 5 bits habría sido posible sin un fuzz de audio que se pueda cargar.
¿Funcionará esto? Como esta idea es tan simple y mejora tanto la técnica de PWM, ¿por qué no se menciona en ninguna parte?