Las unidades PWM, normalmente, funcionan de la siguiente manera, o equivalente¹.
Preparados:
- un valor de salida inicial, es decir, alto o bajo y
- el "valor de reinicio del contador", al que se reinicia el contador tras alcanzar
- el "valor máximo del contador", así como
- el "counter flip value", en el que se conmuta el estado de salida
Después de eso, sólo tienes que dejar que el contador funcione - por ejemplo, puedes poner
- estado inicial alto,
- restablecer el valor 0,
- valor máximo 100,
- umbral de volteo 25
Entonces su contador comenzaría en 0, y se incrementaría una vez cada ciclo de reloj, y en 25, la salida se pondría en baja, hasta que el contador llegara a 100 y se reiniciara a 0. De esta manera, la salida sería alta durante 25 unidades de tiempo, y baja durante 75 - un ciclo de trabajo de \$\frac14=25\%\$ .
Ahora, la frecuencia PWM se define típicamente como el tiempo entre el reinicio y el alcance del máximo.
Por lo tanto, este es un aspecto inherente a la elección de una frecuencia PWM: si hay 100 unidades de tiempo (que, por cierto, son típicamente ticks de reloj de algo como el reloj de la CPU dividido por algunos \$N\$ ), su "granularidad" del ciclo de trabajo no puede ser mejor que el 1%.
Por otro lado, si, por ejemplo, fijas el valor máximo en 10 6 Entonces podrías obtener una resolución súper buena en el ciclo de trabajo, pero eso no te ayuda, porque ahora la salida podría ser baja y alta durante tanto tiempo que cualquier cosa que manejes con el PWM simplemente ve "encendido" y "apagado", a menos que hagas grandes esfuerzos (construir un filtro de paso bajo mecánicamente grande) para "suavizar" las cosas, y entonces perderías toda la capacidad de ajustar rápidamente el ciclo de trabajo (porque el filtro también suavizará tu ajuste).
Los PWMs se utilizan para cosas muy diferentes - por ejemplo, para generar un voltaje analógico, como se mencionó anteriormente, mediante el filtrado de paso bajo. En ese caso, usar una frecuencia alta puede ser beneficioso, porque tu filtro de paso bajo, que necesita cortar la frecuencia del PWM, es mucho más fácil de construir cuando esa frecuencia es alta. Por otro lado, en los circuitos donde se trabaja con voltajes analógicos sensibles, tener una señal PWM de conmutación rápida es peligroso, debido a que esa señal puede acoplarse.
Otros usos son, y probablemente es lo que hace tu motor internamente, más digitales: el PWM simplemente controla durante cuánto tiempo se enciende o apaga algo, por ejemplo, la fuente de alimentación interna en los motores brushless de corriente continua (que son, de hecho, motores de corriente alterna trifásica que tienen una alimentación que genera tres señales sinusoidales a partir de la tensión continua que toma). Para estas aplicaciones, como se ha dicho, la frecuencia PWM no debe ser demasiado baja, porque entonces el motor se parará, arrancará, se detendrá, , pero no debe ser más alta que las frecuencias que la fuente interna utiliza para generar las tensiones de CA.
Sin embargo, otros usos son en realidad usos de generación de señales - por ejemplo, supongamos que tienes un microcontrolador con un reloj de CPU de 16 MHz, y quieres generar un conjunto de frecuencias diferentes (por ejemplo, tienes un módem que utiliza el cambio de frecuencia como modulación, por lo que una frecuencia significa "0", la otra significa "1") - en esa aplicación, podrías utilizar un ciclo de trabajo fijo, ¡y lo que realmente te interesa es la frecuencia PWM!
También hay dispositivos que comunican los valores de medición por ciclo de trabajo PWM - o que toman el ciclo de trabajo PWM como entrada, por ejemplo estos "neopixels" de los que habrás oído hablar. Por supuesto, su controlador de interfaz tiene un rango de tiempo específico, así que tienes que configurar tu frecuencia PWM para que las cosas funcionen.
¹ esto, por ejemplo, asume que puedes establecer tanto el límite superior como el inferior, y que el contador cuenta hacia arriba - no hay razón para que todo eso sea cierto, puedes implementar PWM contando hacia abajo, o no teniendo un límite superior variable, pero eso son detalles.
0 votos
La pregunta obvia es ¿qué frecuencia PWM estás usando por defecto? Si podemos usar tu proyecto como ejemplo podemos poner la respuesta en un contexto útil.
0 votos
Estoy usando un PWM de 490Hz