6 votos

Por qué no la fuerza bruta PWM?

Así que he estado jugando con un ATtiny45, y a mí se me ocurre que probablemente podría fuerza bruta PWM por prescaling un temporizador para sysclock/64, a continuación, ejecutar ISR código manualmente los interruptores de las salidas o desactivar en función de las variables globales que figuran en otras partes del código o a través de IO. En max sysclock velocidad de 20MHz me oughta obtener resolución decente, y voy a utilizar todas mis pines como PWMs en lugar de los dos, el chip, así que la gran pregunta es...¿por qué no? Otros que utilizando una gran cantidad de sysclock ciclos, yo no veo desventajas...podría alguien darme un poco?

25voto

Passerby Puntos 28913

Los tres desventajas son el Consumo de Energía, la vinculación de un Temporizador, y la interrupción de otro código. Si no se preocupan acerca de los modos de bajo consumo, y no tienen necesidad de que el temporizador, y no tienen ningún código crítico que no puede soportar un par de ciclos de reloj para el servicio de la interrupción, no hay ninguna desventaja. Algunos proyectos son bastante simples, y no requieren de una décima parte de la potencia del microcontrolador, así que no dejes que nadie te diga que estás haciendo mal al tomar ventaja de los temporizadores como eso. Software de PWM está bien si se ajusta a sus necesidades.

20voto

Gabi Davar Puntos 718

Recientemente he estado jugando con un montón de PWM fuente de alimentación conmutada de cosas, y tienes razón, hay razones perfectamente válidas para "bit bang" de ancho de pulso modulado señales. Pero una de las principales deficiencias de este método es cuando usted necesita la asistencia de control de retroalimentación de la que genera el ciclo de trabajo.

Incluso con un canal de 20 MHz de reloj interna, el tiempo de ciclo es de 50 nanosegundos. Computacionalmente, tendría que adquirir la señal que está siendo monitoreado, resta del nivel de referencia y, a continuación, reanudar la generación del ciclo de trabajo. Esto creará "jitter", donde el ciclo de trabajo es inconsistente. Utilizando a bordo un DAC no está fuera de la cuestión, pero se lo come ciclos. Para recortar hacia abajo en este, se podría añadir un DAC externo, pero luego se han comprometido, quizás, 8 o 12 pines del microcontrolador para el DAC externo para una lectura rápida (dependiendo de cuánto resolución que desee). Entonces usted tiene que preocuparse acerca de adicional de la señal de retardo de propagación a través de componentes de conmutación.

Si lo que quieres es rápido control de retroalimentación, es difícil vencer a un deber independiente de ciclo de IC. El retraso de la junta de amplificador de error es tan pequeño que se preocupa más la ganancia cambio en las frecuencias altas. La propagación de la señal a través del cambio es todavía el mismo riesgo, por supuesto, y tiene que ser diseñado alrededor.

También vale la pena señalar que una gran cantidad de PWM IC paquetes han apagado las características y tiempo muerto de control de entradas que pueden hacer realmente cosas interesantes cuando se combina con un microcontrolador, todo en un 8 o 16 pines paquete.

Es casi hasta usted para decidir si el bit bang método puede apoyar a sus necesidades. En realidad se puede obtener la frecuencia bastante alta si se utiliza una menor prescaler. El ciclo de trabajo se obtiene mostrar la cuantización de error, sino que incluso pueden no ser un problema dependiendo de lo que estás haciendo y lo alto que tomar la resolución; pero, de nuevo, a mayor resolución viene al costo de una menor frecuencia. Si no requieran control de retroalimentación, y su aplicación puede controlar algunos de jitter, luego, poco golpeando puede ser el camino a seguir.

15voto

Bart Silverstrim Puntos 28092

Usted puede hacer fácilmente lo que usted diga - lo he hecho un par de veces. Es más útil si desea cambiar el PWM en momentos predecibles; usted puede hacer esto mediante el recuento del número de PWM ciclos, y necesitaría un temporizador para hacer eso de todos modos.

Sin embargo, existe un equilibrio entre la resolución de la PWM / # de salidas vs la cantidad de tiempo de procesador. Se llega a un punto donde no se dispone de suficiente espacio de la CPU para hacer que funcione.

Recomiendo atrapar a un ámbito superior a un pin y, a continuación, configuración de pin de alto al principio de la ISR y la baja en la final. Esto le permitirá ver la proporción del tiempo de la rutina está utilizando.

3voto

SomeEE Puntos 923

El punto de tener los dispositivos de hardware del chip es para liberar el procesador para otras tareas. Si usted PWM por hardware, a continuación, al mismo tiempo puede hacer otras microcontrolador tareas.

Ahora creo que he recogido en este poco porque usted está preguntando acerca del uso del ISR, en lugar de ejecutar un for/while fuerza bruta contador, pero de nuevo no es la misma respuesta. Si no cambiamos el ancho del pulso ¿por qué queremos interrumpir nuestras otras tareas innecesariamente?

0voto

Magus Puntos 861

Software de PWM no muy intensivo de la CPU si se hace de una manera correcta, como el uso de Código Binario de Modulación. Con esta bonita y sencilla técnica que usted puede tener un montón de SoftPWM canales sin una gran sobrecarga de la CPU.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X