PWM es una técnica muy poderosa 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 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 avanza constantemente, y cuando está por encima de un valor de umbral (el % deseado de voltaje de salida), entonces se envía una lógica '1', cuando está por debajo de una lógica '0'.
El principal problema de PWM es que existe una compensación entre precisión y frecuencia: si se necesita un bit más para la precisión, significa que el contador tardará el doble antes de volver a rodar y, como tal, las frecuencias parásitas que tendrán que ser filtrados son 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 para señales que deberían
Mi idea es simple, en lugar de usar un contador de N bits, uso un generador de números aleatorios, hecho tomando los N bits altos (¿o bajos?) de un LFSR de M bits (por ejemplo, use los 8 bits más bajos de un LFSR de 16 bits). LFSR). De esa manera, en lugar de generar 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 el voltaje de salida deseado y el voltaje de salida máximo. Como tal, el resultado es exactamente el mismo que PWM, excepto que las frecuencias parásitas 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 realmente muy simple tener una salida de audio de 16 bits con un reloj de 1 MHz. Con PWM tradicional, esto nunca hubiera sido posible: solo una señal de audio de 5 bits habría sido posible sin una pelusa de audio audible.
esto funcionara? Dado que esta idea es tan simple y mejora tanto la técnica PWM, ¿por qué no se menciona en ninguna parte?
Pensé en resumir mis comentarios en una respuesta, tal vez sea de alguna utilidad para alguien.
Entonces, la idea funciona y no funciona.
Como esperaba, puede usar la modulación de ruido para obtener una mejor profundidad de bits y tener menos errores de cuantificación al distribuir la señal de modulación en todo el ancho de banda.
Eso tiene el costo de no poder eliminar el ruido de modulación de la señal de salida generada para que termine con la misma relación señal/ruido.
Todo lo que ha hecho es cambiar la causa de la mala relación señal/ruido.
Una mejora sin duda. Pero no lo mejora hasta el punto de que no hay señales a una frecuencia de f_clock/resolución, siguen presentes, reducidas en el primer orden de la relación de frecuencias. Si la pequeña mejora es adecuada para su aplicación, hágalo. Para una aplicación de audio típica, la mejora no sería suficiente, ni lo sería para generar señales de calibración de CC, por ejemplo.
Puede lograr una mejor supresión de las frecuencias f_clock/resolution mediante una de dos técnicas.
N fraccionario sigma delta en forma de ruido . Hay mucho material publicado sobre este tema, mucho de él bastante opaco. No voy a hacer una revisión de la literatura aquí. En este método todavía hay señales en fclk/resolución, pero son suprimidas por el orden n de la relación para un modulador de orden n.
Síntesis del teorema del resto chino. Esto utiliza dos (o más) PWM convencionales en paralelo, cada uno con un acumulador más corto. Los dos contadores tienen la forma MN y MP, donde M, N y P son primos entre sí, y M es un poco más que el número de PWM, digamos 5 para dos PWM. Si N=63 y P=64, entonces la tasa de repetición más baja es 1/320 de fclock (1/5x64), pero la resolución que se puede lograr es 1/16128 (el 63 y el 64 trabajan juntos para crear 1/4032, y hay una adición de 1/4 de 1/(M-1)). En este método, realmente no hay señales en fclk/resolución. El método está limitado por la monotonicidad por el grado de balance analógico que se puede obtener, pero esta igualdad debería ser más fácil de lograr que la relación entre un PWM más significativo y menos significativo, si intenta combinar dos de esa manera. ¿Por qué se llama Síntesis del Teorema del Resto Chino? Eso'
El problema es que aún tendrá bajas frecuencias en la salida. Peor aún, no existe un límite inferior en el contenido de frecuencia incluso si la señal prevista es estable. Al menos con PWM sabes que todo el ruido estará en la frecuencia PWM y sus armónicos.
Básicamente, está intercambiando ruido en frecuencias conocidas con ruido de amplio espectro. En algunos casos, eso podría ser una compensación deseable. En otros casos, esto es peor porque ahora ya no se puede separar el ruido de la señal por frecuencia.
Otra idea común en esta línea es usar un motor DIV o algo así como un algoritmo de Bresenham. Realiza un seguimiento del error acumulado y hace que la salida sea alta cuando el error es negativo y baja cuando el error es positivo.
Luego puede jugar con diferentes estrategias de cómo se acumula cada porción de salida con el tiempo en el error. Si solo se agrega sin decaer, entonces tiene un motor DIV puro o un algoritmo de Bresenham. Esto puede producir frecuencias infinitamente bajas, pero el promedio a largo plazo está dentro de ± un segmento alto o bajo. Con diferentes decaimientos, puede hacer que emita menos frecuencias más bajas a expensas de la precisión a largo plazo.
Sin embargo, en ningún caso estos métodos tienen un límite garantizado más alto en la frecuencia de ruido que el que tiene PWM a la misma frecuencia de corte y precisión final resultante.
Esta usado.
Creo que ha descrito el generador PWM de "secuencia pseudoaleatoria" (PRS).
Se describe en la nota de aplicación de Cypress Semiconductor "AN2246: PSoC® 1 – PWM Source – High Frequency, High Resolution" en el documento "AN2246_001-33721_0C_V" que puede descargar de Cypress Semi en el documento:
AN2246_001-33721_0C_V.pdf
Esa nota de aplicación también describe varias alternativas.
Un modulador Delta-Sigma de orden simple o doble (también conocido como MOD1 y MOD2) hacen un trabajo aún mejor al aprovechar el ancho de banda, el ruido y la resolución, y son incluso más simples de implementar. Y se utilizan mucho en varios dominios.
Cuando desee obtener más información sobre los convertidores Delta-Sigma, le recomiendo: "Understanding Delta-Sigma Data Converters" de Schreier y Temes (ISBN 0-471-46585-2).
JRE
Brégalad
JRE
JRE
Brégalad
JRE
Brégalad
JRE
uint128_t
Brégalad
uint128_t
JRE