Datasheet

Table Of Contents
PIC16(L)F1526/7
DS41458C-page 192 2011-2013 Microchip Technology Inc.
20.3.5 PWM DUTY CYCLE
The PWM duty cycle is specified by writing a 10-bit
value to multiple registers: CCPRxL register and
DCxB<1:0> bits of the CCPxCON register. The
CCPRxL contains the eight MSbs and the DCxB<1:0>
bits of the CCPxCON register contain the two LSbs.
CCPRxL and DCxB<1:0> bits of the CCPxCON
register can be written to at any time. The duty cycle
value is not latched into CCPRxH until after the period
completes (i.e., a match between PRx and TMRx
registers occurs). While using the PWM, the CCPRxH
register is read-only.
Equation 20-2 is used to calculate the PWM pulse
width.
Equation 20-3 is used to calculate the PWM duty cycle
ratio.
EQUATION 20-2: PULSE WIDTH
EQUATION 20-3: DUTY CYCLE RATIO
The CCPRxH register and a 2-bit internal latch are
used to double buffer the PWM duty cycle. This double
buffering is essential for glitchless PWM operation.
The 8-bit timer TMRx register is concatenated with either
the 2-bit internal system clock (F
OSC), or 2 bits of the
prescaler, to create the 10-bit time base. The system
clock is used if the Timer2/4/6/8/10 prescaler is set to
1:1.
When the 10-bit time base matches the CCPRxH and
2-bit latch, then the CCPx pin is cleared (see
Figure 20-4).
20.3.6 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 PRx is
255. The resolution is a function of the PRx register
value as shown by Equation 20-4.
EQUATION 20-4: PWM RESOLUTION
TABLE 20-7: EXAMPLE PWM FREQUENCIES AND RESOLUTIONS (F
OSC = 20 MHz)
TABLE 20-8: EXAMPLE PWM FREQUENCIES AND RESOLUTIONS (F
OSC = 8 MHz)
Pulse Width CCPRxL:CCPxCON<5:4>
=
TOSC
(TMRx Prescale Value)
Duty Cycle Ratio
CCPRxL:CCPxCON<5:4>
4 PRx 1+
-----------------------------------------------------------------------=
Note: If the pulse width value is greater than the
period the assigned PWM pin(s) will
remain unchanged.
Resolution
4PRx 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
PRx 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
PRx Value 0x65 0x65 0x65 0x19 0x0C 0x09
Maximum Resolution (bits) 8 8 8 6 5 5