Microchip Technology AC244045 Data Sheet

Page of 302
© 2009 Microchip Technology Inc.
DS41341E-page 143
PIC16F72X/PIC16LF72X
15.3.4
PWM RESOLUTION
The resolution determines the number of available duty
cycles for a given period. For example, a 10-bit resolution
will result in 1024 discrete duty cycles, whereas an 8-bit
resolution will result in 256 discrete duty cycles.
The maximum PWM resolution is 10 bits when PR2 is
255. The resolution is a function of the PR2 register
value as shown by Equation 15-4.
EQUATION 15-4:
PWM RESOLUTION
TABLE 15-5:
EXAMPLE PWM FREQUENCIES AND RESOLUTIONS (F
OSC
 = 20 MHz)
TABLE 15-6:
EXAMPLE PWM FREQUENCIES AND RESOLUTIONS (F
OSC
 = 8 MHz)
15.3.5
OPERATION IN SLEEP MODE
In Sleep mode, the TMR2 register will not increment
and the state of the module will not change. If the CCPx
pin is driving a value, it will continue to drive that value.
When the device wakes up, TMR2 will continue from its
previous state.
15.3.6
CHANGES IN SYSTEM CLOCK 
FREQUENCY
The PWM frequency is derived from the system clock
frequency (F
OSC
). Any changes in the system clock fre-
quency will result in changes to the PWM frequency.
Refer to Section 7.0 “Oscillator Module” for
additional details.
15.3.7
EFFECTS OF RESET
Any Reset will force all ports to Input mode and the
CCP registers to their Reset states.
15.3.8
SETUP FOR PWM OPERATION
The following steps should be taken when configuring
the CCP module for PWM operation:
1.
Disable the PWM pin (CCPx) output driver(s) by
setting the associated TRIS bit(s).
2.
Load the PR2 register with the PWM period value.
3.
Configure the CCP module for the PWM mode
by loading the CCPxCON register with the
appropriate values.
4.
Load the CCPRxL register and the DCxBx bits of
the CCPxCON register, with the PWM duty cycle
value.
5.
Configure and start Timer2:
• Clear the TMR2IF interrupt flag bit of the PIR1 
register. See Note below.
• Configure the T2CKPS bits of the T2CON 
register with the Timer2 prescale value.
• Enable Timer2 by setting the TMR2ON bit of 
the T2CON register.
6.
Enable PWM output pin:
• Wait until Timer2 overflows, TMR2IF bit of the 
PIR1 register is set. See Note below.
• Enable the PWM pin (CCPx) output driver(s) by 
clearing the associated TRIS bit(s).
Note:
If the pulse width value is greater than the
period the assigned PWM pin(s) will
remain unchanged.
Resolution
4 PR2
1
+
(
)
[
]
log
2
( )
log
------------------------------------------  bits
=
PWM Frequency
1.22 kHz
4.88 kHz
19.53 kHz
78.12 kHz
156.3 kHz
208.3 kHz
Timer Prescale (1, 4, 16)
16
4
1
1
1
1
PR2 Value
0xFF
0xFF
0xFF
0x3F
0x1F
0x17
Maximum Resolution (bits)
10
10
10
8
7
6.6
PWM Frequency
1.22 kHz
4.90 kHz
19.61 kHz
76.92 kHz
153.85 kHz
200.0 kHz
Timer Prescale (1, 4, 16)
16
4
1
1
1
1
PR2 Value
0x65
0x65
0x65
0x19
0x0C
0x09
Maximum Resolution (bits)
8
8
8
6
5
5
Note:
In order to send a complete duty cycle and
period on the first PWM output, the above
steps must be included in the setup
sequence. If it is not critical to start with a
complete PWM signal on the first output,
then step 6 may be ignored.