¿Por qué cambiar la frecuencia PWM del microcontrolador?

4

¿Cuáles son exactamente los pros / contras de cambiar la frecuencia PWM?

No creo que deba cambiar ninguna frecuencia de PWM en este momento, pero como no conozco los beneficios de hacerlo, ¿cómo puedo saber realmente si es útil para mí?

Me gustaría una respuesta general (que yo y otras personas que lean este post pueden aplicar en diferentes situaciones), pero si alguien quiere que respondan algunos datos, aquí están los del proyecto en el que estoy trabajando en este momento:

  • Microcontrolador ATmega328 a 16Mhz (está solo, no está en una placa Arduino)
  • 4 pequeños motores cepillados independientes, cada uno con una hélice (diámetro de la hélice: alrededor de 6 cm), en los pines 3,5,6,11, controlados por un trasnsistor BUK9840-55 ( hoja de datos )
  • un receptor de RF simple se coloca cerca y necesita recibir un 433MHz señal (la comunicación de RF es bastante lenta (500 bits / segundo), y no lo hace necesita ser muy confiable).

EDITAR: ¿cómo influye la velocidad de PWM en la comunicación de RF?

    
pregunta noearchimede

6 respuestas

3

Las unidades PWM, por lo general, funcionan de la siguiente manera, o equivalente

Configurar:

  1. un valor de salida inicial, es decir. ya sea alto o bajo y
  2. el "valor de restablecimiento del contador", al que se restablece el contador después de alcanzar
  3. el "valor máximo del contador", así como
  4. el "valor de inversión del contador", donde se alterna el estado de salida

Después de eso, simplemente dejas que el contador se ejecute, por ejemplo, puedes configurar

  • estado inicial alto,
  • restablecer valor 0,
  • valor máximo 100,
  • umbral de inversión 25

Luego su contador comenzaría en 0 e incrementaría una vez cada ciclo de reloj, y en 25, la salida se establecería en baja, hasta que el contador alcance 100 y se restablezca a 0. De esa manera, la salida sería alta para 25 unidades de tiempo, y bajo para 75: un ciclo de trabajo de \ $ \ frac14 = 25 \% \ $.

Ahora, la frecuencia PWM se define normalmente como el tiempo entre el restablecimiento y el máximo.

Por lo tanto, esto es inherentemente uno de los aspectos de la elección de una frecuencia PWM: si hay 100 unidades de tiempo (que, por cierto, son típicamente tics de reloj de algo así como el reloj de la CPU dividido por algunos \ $ N \ $), su deber Ciclo "granularidad" no puede ser mejor que 1%.

Por otra parte, si supongamos que establece el valor máximo en 10 6 , es posible que obtenga una resolución estupenda en el ciclo de trabajo, pero eso no le ayuda, porque ahora el la salida puede ser baja y alta durante tanto tiempo que cualquier cosa que conduzca con el PWM simplemente verá "encendido" y "apagado", a menos que pase grandes distancias (construya un filtro de paso bajo mecánicamente grande) para "suavizar" las cosas, y entonces perdería toda la capacidad de ajustar rápidamente el ciclo de trabajo (porque el filtro también suavizará su ajuste).

Los

PWM 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, el uso de una alta frecuencia puede ser beneficioso, ya que su filtro de paso bajo, que necesita cortar la frecuencia PWM, es mucho más fácil de construir cuando esa frecuencia es alta. Por otro lado, en los circuitos en los que trabaja con voltajes analógicos sensibles, tener una señal PWM de conmutación rápida es peligroso, debido a que esa señal se puede acoplar.

Otros usos son, y eso es probablemente lo que su motor hace internamente, más digital: el PWM simplemente controla por cuánto tiempo se enciende o apaga algo, por ejemplo, la fuente de alimentación interna en los motores sin escobillas de CC (que son, de hecho, , Motores trifásicos de CA que tienen un suministro que genera tres señales sinusoidales a partir del voltaje de CC que toma). Para estas aplicaciones, como se dijo, la frecuencia PWM no debe ser demasiado baja, porque entonces su motor se detendrá, arrancará, se detendrá, ..., pero no deberá ser más alto que las frecuencias que usa la fuente interna para generar los voltajes de CA.

Otros usos son en realidad usos de generación de señales, por ejemplo, supongamos que tiene un microcontrolador con un reloj de CPU de 16 MHz y desea generar un conjunto de diferentes frecuencias (por ejemplo, tiene un módem que usa el cambio de frecuencia). como modulación, una frecuencia significa "0", la otra significa "1"). En esa aplicación, puede usar un ciclo de trabajo fijo, y lo que realmente le interesa es la frecuencia PWM.

También hay dispositivos que comunican los valores de medición por el ciclo de trabajo de PWM, o toman el ciclo de trabajo de PWM como entrada, por ejemplo, estos "neopíxeles" de los que podría haber oído hablar. Por supuesto, su controlador de interfaz tiene un rango de tiempo específico, por lo que tiene que configurar su frecuencia PWM para que las cosas funcionen.

¹ esto, por ejemplo, asume que puede establecer los límites superior e inferior, y que el contador cuenta arriba: no hay razón para que todo eso sea cierto, puede implementar PWM contando hacia abajo o sin tener un límite superior variable , pero eso es detalles.     
respondido por el Marcus Müller
2

El modo Arduino PWM se ejecuta a 490 (o 980) Hz dependiendo de la placa, y está diseñado para aplicaciones simples como atenuación de LED y DAC (conversión digital a analógica), y jugar con bajo costo (alta resistencia / inductancia) motores Mantener la frecuencia baja y fija hace que este tipo de circuitos sea consistente en todas las placas Arduino, lo que reduce la curva de aprendizaje, que es una idea de la plataforma.

Considere el ejemplo DAC. Si permite que el usuario modifique fácilmente la frecuencia, deberá volver a calcular los valores R y C para filtrar de manera efectiva la nueva frecuencia PWM.

El ejemplo de atenuación de LED podría beneficiarse de poder ejecutar el PWM más lento, pero puede obtener el mismo efecto mediante el uso de la función de retardo de bits (ejecútelo 5 segundos encendido, 5 segundos apagado; luego 500 ms encendido, 500 ms apagado; luego 50ms encendido, 50ms apagado).

Cuando quieres hacer cosas 'útiles' con PWM, necesitas tener control de frecuencia. Control del motor, por ejemplo. La frecuencia óptima de PWM dependerá del motor en sí (inductancia y resistencia) y, a menudo, es mejor probar empíricamente en lugar de buscar un valor en una hoja de datos. Las pérdidas en el conductor también jugarán un papel.

Cambiar las fuentes de alimentación son otro ejemplo. La frecuencia de conmutación de un convertidor controlado por PWM afectará tanto a la corriente máxima como a las pérdidas de conmutación en los elementos de accionamiento.

Para su ejemplo específico, consideraría pasar por alto las cosas habituales de Arduino PWM y hablar con el hardware, y experimentar con qué frecuencia hace que sus motores y controlador FET estén contentos. Observe el área de operación segura del FET y asegúrese de que no se caliente demasiado.

    
respondido por el Adam Lawrence
2

Has añadido la pregunta:

  

EDITAR: ¿cómo influye la velocidad de PWM en la comunicación de RF?

Bueno, supongamos que solo estamos tratando con un ciclo de trabajo del 50% PWM - ondas cuadradas. Es fácil mostrar que esto se aplica a otros ciclos de trabajo con pequeñas modificaciones al resultado.

Una onda cuadrada está compuesta de senos:

ysisumasestossenosponderados,teacercasalaondacuadrada:

Exactamente hablando, $$ f_ \ text {cuadrado} (x) = \ sum \ limits_ {n = 0} ^ {\ infty} \ frac1 {2n + 1} \ sin \ left (2 \ pi (2n + 1) x \ right) $$

Por lo tanto, una onda cuadrada perfecta contiene armónicos en la frecuencia de onda cuadrada, y cada múltiplo impar de ella, por lo que si desea comunicarse a 30 MHz, sería una muy mala idea tener un PWM con una frecuencia de 10 MHz.

    
respondido por el Marcus Müller
1

Considere ejecutar un motor de CC muy pequeño con una frecuencia PWM de 1Hz. No podrá controlar la velocidad muy bien en absoluto, ya que solo se sentará allí contrayéndose. Un pequeño motor puede girar hacia arriba y hacia abajo fácilmente en 1 segundo.

Esto se debe a la baja inercia de rotación del motor: su PWM de 1Hz no es mejor que simplemente presionar y soltar un botón con el dedo.

Considere el mismo sistema utilizando 1000Hz en su lugar. Puede ajustar muchos pulsos PWM en el tiempo que tarda el motor en girar hacia arriba o hacia abajo. En este punto, el motor se convierte efectivamente en un filtro de paso bajo y encuentra el giro en equilibrio a una velocidad que es proporcional a (relación PWM) * (tensión de alimentación).

Para motores en particular, es una buena idea elegir una frecuencia que permita un control suave de la velocidad, pero no tan alta que los devanados del motor comiencen a actuar en su contra y usted pierda eficiencia para respaldar los efectos EMF y los efectos inductivos.

Esa es una respuesta general pertinente a los motores (como mencionó al usarlos). Otras aplicaciones (cargas resistivas o capacitivas) tendrán diferentes razones para elegir frecuencias sensibles.

    
respondido por el Wossname
0

PWM es una abreviatura de Modulación de ancho de pulso.

El cambio de la frecuencia PWM aumenta la precisión del voltaje del pin.
El aumento de la frecuencia de PWM disminuye el tiempo por ciclo.

Pros

  • Mayor precisión.

Contras

  • Hay limitaciones para aumentar la frecuencia de PWM; no se puede aumentar con la frecuencia del chip.
  • El uso de la biblioteca externa usa la memoria.
respondido por el Sang Wan Jeon
0

La industria ha demostrado que "los armónicos no existen", porque las funciones básicas de FFT son los pecados y cosenos en los múltiplos 1 ... N y la FFT solo puede modelar las señales como sumas de lo que está permitido usar. Por lo tanto, el 433,000 armónicos de 1KHz no dice mucho sobre el impacto en el éxito del enlace de RF, porque ... vea el siguiente párrafo ...

.... lo que es más importante, debe evitar BLOQUEAR (sobrecargar) el extremo delantero de 433 MHz con basura; Si alteró totalmente el punto de operación de la interfaz de RF durante sus transitorios de PWM / motor, su receptor fallará, a menos que sus duraciones de bit sean LARGAS. Sus tiempos de bit de 500Hz pueden ser capaces de superar picos de motor.

Para que el receptor tenga éxito, use una red de FILTRO DE ALTO PASO PI entre la antena y FrontEnd. Coloque su esquina de HighPass aproximadamente a 200MHz, de modo que obtenga una pequeña penalización en 433, pero los picos de 1,000Hz y 1uS se atenúan seriamente. Pruebe un HPF bipolar o tripolar o bipolar si es necesario. Además, proteja el receptor; use el filtrado Cap-FerriteBead-Cap-Fb-Cap para su potencia. También coloque resistencias de 10KOhm en el protocolo de enlace / base de datos a / desde el receptor.

    
respondido por el analogsystemsrf

Lea otras preguntas en las etiquetas