Modo PWM
Modo PWM
Modo PWM
Consista en poner a 1 un cierto pin mientras estbamos haciendo una cierta tarea.
Luego, nos bastaba con medir el voltaje medio (con un voltmetro) en dicho pin. Dicho
voltaje (dividido por los 5V de alimentacin) nos daba el % del tiempo que el pin estaba
alto.
La modulacin PWM consiste precisamente en eso. El mdulo PWM del micro genera
una onda cuadrada con una frecuencia dada (tpicamente bastante alta, por ejemplo 10
KHz).
PERODO DE PWM
El perodo de pulso de salida (T) se determina por el registro PR2 del temporizador
Timer2. El perodo de PWM se puede calcular por la siguiente ecuacin:
El ciclo de trabajo de PWM se especifica al utilizar en total 10 bits: los ocho bits ms
significativos del registro CCPR1L y los dos bits menos significativos adicionales del
registro CCP1CON (DC1B1 y DC1B0). El resultado es un nmero de 10 bits dado por
la siguiente frmula:
La siguiente tabla muestra cmo generar las seales PWM de diferentes frecuencias
cuando el microcontrolador utiliza un cristal de cuarzo de 20 MHz (Tosc=50nS).
FRECUENCIA 4.8 19.5
1.22 78.12 156.3 208.3
[KHZ] 8 3
Pre-escalador del
16 4 1 1 1 1
TMR2
Registro PR2 FFh FFh FFh 3Fh 1Fh 17h
Notas adicionales:
RESOLUCIN DE PWM
Una seal PWM no es nada ms que una secuencia de pulsos que varan su ciclo de
trabajo. Para una frecuencia especfica (nmero de pulsos por segundo), hay un nmero
limitado de combinaciones de ciclos de trabajo.
Este nmero representa una resolucin medida en bits. Por ejemplo, si una resolucin es
de 10 bits estarn disponibles 1024 ciclos de trabajo discretos; si una resolucin es de 8
bits estarn disponibles 256 ciclos de trabajo disretos etc. En este microcontrolador la
resolucin es determinada por el registro PR2. El mximo valor se obtiene al usar el
nmero FFh.
FRECUE
1.22K 4.88K 19.53K 78.12K 156.3K 208.3K
NCIA DE
HZ HZ HZ HZ HZ HZ
PWM
Pre-escala
del
16 4 1 1 1 1
temporizad
or
Valor del
FFh FFh FFh 3Fh 1Fh 17h
PR2
Resolucin
10 10 10 8 7 6
mxima
Pre-escala
del
16 4 1 1 1 1
temporizado
r
Valor del
65h 65h 65h 19h 0Ch 09h
PR2
Resolucin
8 8 8 6 5 5
mxima
Resolucin=(log(Fosc/(FPWM*prescalerTMR2)/log2) bits
Donde Fosc es la frecuencia del oscilador o cristal utilizado, F PWM es la frecuencia de la
seal PWM que se quiera obtener, la que viene a ser la inversa de periodo T PWM de la
seal PWM.
Mediante la resolucin se obtiene con cuantos bits se representa en forma binaria el
valor del ancho de pulso para una determinad F PWM elegida, siendo el mximo valor
1023 que es 210 ya que la resolucin es de 10 bits como mximo
La Figura anterior muestra el diagrama de bloques del mdulo CCP1 puesto en el modo
PWM. Para generar un pulso de forma arbitraria en el pin de salida, es necesario ajustar
el perodo de pulsos (frecuencia) y la duracin de pulsos.