2. TIMER 2 - CARACTERISTICAS
TMR2 es un temporizador ascendente de 8 bits.
Dispone de un registro de período de 8 bits (PR2).
Se puede leer y escribir.
Contiene un Predivisor y postdivisor de frecuencia
programables.
Interrupción opcional al coincidir TMR2 y PR2.
Posibilidad de generar impulsos al módulo SSP (puerta
serie síncrona).
Se puede usar como base de tiempos para el módulo
PWM y el módulo CCP (Captura y Comparación).
3.
4.
5.
6. TIMER 2 - PWM
Pulse Width Modulation – Modulación de Ancho de Pulso
Señal periódica en la que se puede modificar su ciclo de
trabajo. (Duty Cycle).
Duty Cycle:Tiempo en el cual la señal está a nivel alto.
10. TIMER 2 - EJERCICIO
Enunciado: Configurar el módulo CCP1 y CCP2 en modo PWM y generar una señal
PWM de 10Khz con ciclo de servicio de 75% y 25%. Según el estado de RA0 se
obtienen 2 salidas simétricas pero complementarias.
11. TIMER 2 - EJERCICIO
Enunciado: Configurar el módulo CCP1 y CCP2 en modo PWM y generar una señal
PWM de 10Khz con ciclo de servicio de 75% y 25%. Según el estado de RA0 se
obtienen 2 salidas simétricas pero complementarias.
ESPECIFICACIONES:
Fosc 4Mhz Ciclo instrucción 1uS
Frec. PWM 10Khz Período PWM 100uS (0.1mS)
Duty Cycle 75% y 25%
Pin de salida PWM1 RC2/CCP1
Pin de salida PWM2 RC1/CCP2
Diagrama de tren de pulsos señal con
DC = 75%
Diagrama de tren de pulsos señal con DC = 25%
12. TIMER 2 - EJERCICIO
FUNCIONAMIENTO
El sistema generará una señal PWM utilizando el módulo CCP1 y CCP2 por medio del
pin RC2/CCP1 y RC1/CCP2. De acuerdo al estado del pin RA0, se generarán 2 salidas
PWM de igual frecuencia, pero complementarias, conforme a la siguiente tabla.
RA0 SEÑAL Fpwm DC Th Tl Pin salida
----------------------------------------------------------------------------------------
0 PWM1 10KHz 75% 75uS 25uS RC2
PWM2 10KHz 25% 25uS 75uS RC1
-----------------------------------------------------------------------------------------
1 PWM2 10KHz 25% 25uS 75uS RC2
PWM1 10KHz 75% 75uS 25uS RC1
13. TIMER 2 - EJERCICIO
CALCULO DE VARIABLES PARA PWM
Fosc = 4MHz = 0.25uS
Ppwm = 10KHz = 100uS
Con Prescaler = 4
Tpwm = (PR2 + 1) x 4Tosc x (valor prescaler TMR2) ; período del PWM
1/10KHz = (PR2 + 1) x 4 x 0.25uS x 4
100uS = (PR2 + 1) x 1uS x 4
PR2 = 24
Npwm = Log(Fosc/Fpwm)/Log2 ; resolución del ciclo de trabajo.
Npwm = Log (4MHz/10KHz)/0.3
Npwm = 8.66 bits, de donde la resolución máxima es RPWM = 28.66 = 404.5
14. TIMER 2 - EJERCICIO
VERIFICACIÓN
Para DC = 75%, se tiene ; DC = Ancho de pulso (Duty Cycle)
(CCPRxL+CCPxCON<5:4>) = Rpwm x DC / Prescaler Timer 2
= 404.5 x 0.75 / 4
= 75.8 75 00010010 + 11
76 00010011 + 00
Para DC = 25%, se tiene
(CCPRxL+CCPxCON<5:4>) = Rpwm x DC / Prescaler Timer 2
= 404.5 x 0.25 / 4
= 25.28 25 00000110 + 01
26 00000110 + 10
15. TIMER 2 - RETO
Enunciado: Configurar el módulo CCP1 y CCP2 en modo
PWM y generar una señal PWM de 10Khz. El ciclo de trabajo
será incrementado con cada pulso provenientes de las
interrupciones INT0 e INT1. (Cuando llegue al máximo
retornará al mínimo)