English
Language : 

PIC18F2585_07 Datasheet, PDF (171/482 Pages) Microchip Technology – Enhanced Flash Microcontrollers with ECAN Technology, 10-Bit A/D and nanoWatt Technology
PIC18F2585/2680/4585/4680
15.4 PWM Mode
In Pulse-Width Modulation (PWM) mode, the CCP1 pin
produces up to a 10-bit resolution PWM output. Since
the CCP1 pin is multiplexed with a PORTB or PORTC
data latch, the appropriate TRIS bit must be cleared to
make the CCP1 pin an output.
Note:
Clearing the CCP1CON register will force
the RC2 output latch (depending on
device configuration) to the default low
level. This is not the PORTC I/O data
latch.
Figure 15-3 shows a simplified block diagram of the
CCP1 module in PWM mode.
For a step-by-step procedure on how to set up the
CCP1 module for PWM operation, see Section 15.4.4
“Setup for PWM Operation”.
FIGURE 15-3:
SIMPLIFIED PWM BLOCK
DIAGRAM
Duty Cycle Registers
CCPR1L
CCP1CON<5:4>
CCPR1H (Slave)
Comparator
R
TMR2
(Note 1)
S
Comparator
PR2
Clear Timer,
CCP1 pin and
latch D.C.
Q
RC2/CCP1
PORTC<2>
TRISC<2>
Note 1: The 8-bit TMR2 value is concatenated with the 2-bit
internal Q clock, or 2 bits of the prescaler, to create the
10-bit time base.
A PWM output (Figure 15-4) has a time base (period)
and a time that the output stays high (duty cycle). The
frequency of the PWM is the inverse of the period
(1/period).
FIGURE 15-4:
PWM OUTPUT
Period
Duty Cycle
TMR2 = PR2
TMR2 = PR2
TMR2 = Duty Cycle
15.4.1 PWM PERIOD
The PWM period is specified by writing to the PR2
(PR4) register. The PWM period can be calculated
using the following formula.
EQUATION 15-1:
PWM Period = (PR2) + 1] • 4 • TOSC •
(TMR2 Prescale Value)
PWM frequency is defined as 1/[PWM period].
When TMR1 (TMR3) is equal to PR2 (PR2), the
following three events occur on the next increment
cycle:
• TMR2 is cleared
• The CCP1 pin is set (exception: if PWM duty
cycle = 0%, the CCP1 pin will not be set)
• The PWM duty cycle is latched from ECCPR1L
into ECCPR1H
Note:
The Timer2 postscalers (see Section 13.0
“Timer2 Module”) are not used in the
determination of the PWM frequency. The
postscaler could be used to have a servo
update rate at a different frequency than
the PWM output.
15.4.2 PWM DUTY CYCLE
The PWM duty cycle is specified by writing to the
ECCPR1L register and to the CCP1CON<5:4> bits. Up
to 10-bit resolution is available. The ECCPR1L
contains the eight MSbs and the CCP1CON<5:4> con-
tains the two LSbs. This 10-bit value is represented by
ECCPR1L:ECCP1CON<5:4>. The following equation
is used to calculate the PWM duty cycle in time.
EQUATION 15-2:
PWM Duty Cycle = (ECCPR1L:ECCP1CON<5:4>) •
TOSC • (TMR2 Prescale Value)
ECCPR1L and ECCP1CON<5:4> can be written to at
any time, but the duty cycle value is not latched into
ECCPR1H until after a match between PR2 and TMR2
occurs (i.e., the period is complete). In PWM mode,
ECCPR1H is a read-only register.
© 2007 Microchip Technology Inc.
Preliminary
DS39625C-page 169