pic18f2420 pwm frecuencia

1

Estoy generando PWM usando el temporizador 2 de PIC18f2420. Tengo reloj de cristal externo de 4MHz. La frecuencia máxima que puedo obtener del PWM es 3.9KHZ con 1: 1prescaler y postcaler. Necesito obtener 100KHZ, alguna idea? ¿Cambiará el oscilador externo a 20MHZ?

Saludos

    
pregunta Samad Muhammad

2 respuestas

3

Estás viendo una compensación de frecuencia frente a resolución.

La forma en que funciona este PWM es tomar el reloj de entrada y enviarlo a un contador de 8 bits.
El reloj que se alimenta al contador es como máximo (para esta serie de PIC) el reloj de su sistema dividido por 4.
Así que en tu caso, el contador ve 1MHz.
Un contador de 8 bits tiene 256 pasos, y si desea utilizar la resolución completa para su ciclo de trabajo PWM, entonces ese reloj de 1MHz se dividirá por 256 para producir la frecuencia PWM final, lo que le brinda su 3.9kHz .

Estos PIC también le permiten obtener 2 bits adicionales de resolución al etiquetar los 2 bits del divisor del reloj del sistema para proporcionarle 10 bits efectivos o 1024 pasos de resolución de ciclo de trabajo PWM.

La única forma de obtener una frecuencia PWM más alta con el mismo reloj del sistema es reducir la resolución que le brinda el contador al establecer su registro de período en un valor más bajo.
Entonces, por ejemplo, si establece el período de registro en 100, entonces puede lograr un PWM de 10 kHz y si establece el período de registro en 10, obtendrá un PWM de 100 kHz. Pero debes darte cuenta de que en lugar de la resolución de 1024 pasos que tenías, ahora tienes muchos menos pasos para ajustar tu ciclo de trabajo de PWM.

Sin duda, ayudará a aumentar el reloj de su sistema a 20MHz. Tendrás que configurar el registro del período del temporizador en 50 para alcanzar una frecuencia PWM de 100 kHz y tendrás 200 pasos de resolución de ciclo de trabajo para jugar.

    
respondido por el brhans
1

La fórmula del período PWM viene dada por la ecuación 15-1 en la página 114 de la hoja de datos:

  

Período PWM = [(PR2) + 1] * 4 * Tosc * (valor de preescala TMR2).

Entonces, si el valor anterior es 1 y PR2 es 0, obtenemos el período mínimo (por lo tanto, la frecuencia máxima):

PWM Period = [0 + 1] * 4 * Tosc = 4*Tosc

Por lo tanto, la frecuencia máxima de PWM puede ser de hasta Fosc/4 . En su caso hasta 1MHz (pero, cuanto más alta es la frecuencia, más baja es la resolución PWM). Así que los números que estás mostrando no son correctos. Debería poder obtener la frecuencia requerida de 100 kHz sin problemas.

    
respondido por el Eugene Sh.

Lea otras preguntas en las etiquetas