Microchip Technology MA160014 Data Sheet

Page of 560
PIC18(L)F2X/4XK22
DS41412F-page 186
 2010-2012 Microchip Technology Inc.
14.3
PWM Overview
Pulse-Width Modulation (PWM) is a scheme that
provides power to a load by switching quickly between
fully on and fully off states. The PWM signal resembles
a square wave where the high portion of the signal is
considered the on state and the low portion of the signal
is considered the off state. The high portion, also known
as the pulse width, can vary in time and is defined in
steps. A larger number of steps applied, which
lengthens the pulse width, also supplies more power to
the load. Lowering the number of steps applied, which
shortens the pulse width, supplies less power. The
PWM period is defined as the duration of one complete
cycle or the total amount of on and off time combined.
PWM resolution defines the maximum number of steps
that can be present in a single PWM period. A higher
resolution allows for more precise control of the pulse
width time and in turn the power that is applied to the
load.
The term duty cycle describes the proportion of the on
time to the off time and is expressed in percentages,
where 0% is fully off and 100% is fully on. A lower duty
cycle corresponds to less power applied and a higher
duty cycle corresponds to more power applied.
 shows a typical waveform of the PWM
signal.
14.3.1
STANDARD PWM OPERATION
The standard PWM function described in this section is
available and identical for CCP and ECCP modules. 
The standard PWM mode generates a Pulse-Width
modulation (PWM) signal on the CCPx pin with up to 10
bits of resolution. The period, duty cycle, and resolution
are controlled by the following registers:
• PRx  registers
• TxCON  registers
• CCPRxL registers
• CCPxCON registers
 shows a simplified block diagram of PWM
operation.
FIGURE 14-3:
CCP PWM OUTPUT SIGNAL
FIGURE 14-4:
SIMPLIFIED PWM BLOCK 
DIAGRAM     
14.3.2
SETUP FOR PWM OPERATION
The following steps should be taken when configuring
the CCP module for standard PWM operation:
1.
Disable the CCPx pin output driver by setting the
associated TRIS bit.
2.
Select the 8-bit TimerX resource, (Timer2,
Timer4 or Timer6) to be used for PWM genera-
tion by setting the CxTSEL<1:0> bits in the
CCPTMRSx register.
(1)
3.
Load the PRx register for the selected TimerX
with the PWM period value.
4.
Configure the CCP module for the PWM mode
by loading the CCPxCON register with the
appropriate values.
5.
Load the CCPRxL register and the DCxB<1:0>
bits of the CCPxCON register, with the PWM
duty cycle value.
Note 1: The corresponding TRIS bit must be
cleared to enable the PWM output on the
CCPx pin.
2: Clearing the CCPxCON register will
relinquish control of the CCPx pin.
Period
Pulse Width
TMRx = 0
TMRx = CCPRxH:CCPxCON<5:4>
TMRx = PRx
CCPRxL
CCPRxH
(2)
 (Slave)
Comparator
TMRx
PRx
(1)
R
Q
S
Duty Cycle Registers
CCPxCON<5:4>
Clear Timer,
toggle CCPx pin and 
latch duty cycle
Note
1:
The 8-bit timer TMRx register is concatenated 
with the 2-bit internal system clock (F
OSC
), or 
2 bits of the prescaler, to create the 10-bit time 
base.
2:
In PWM mode, CCPRxH is a read-only register.
TRIS
CCPx
Comparator