PIC16C712/716
7.3.3 SET-UP FOR PWM OPERATION
The following steps should be taken when configuring
the CCP module for PWM operation:
1. Set the PWM period by writing to the PR2 regis-
ter.
2. Set the PWM duty cycle by writing to the
CCPR1L register and CCP1CON<5:4> bits.
3. Make the CCP1 pin an output by clearing the
TRISCCP<2> bit.
4. Set the TMR2 prescale value and enable Timer2
by writing to T2CON.
5. Configure the CCP1 module for PWM operation.
TABLE 7-3 EXAMPLE PWM FREQUENCIES AND RESOLUTIONS AT 20 MHz
PWM Frequency
1.22 kHz 4.88 kHz 19.53 kHz 78.12 kHz 156.3 kHz 208.3 kHz
Timer Prescaler (1, 4, 16)
PR2 Value
Maximum Resolution (bits)
16
0xFF
10
4
0xFF
10
1
0xFF
10
1
0x3F
8
1
0x1F
7
1
0x17
5.5
TABLE 7-4 REGISTERS ASSOCIATED WITH PWM AND TIMER2
Address Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on
POR,
BOR
Value on
all other
resets
07h
0Bh,8Bh
0Ch
11h
DATACCP
—
—
—
INTCON
GIE
PEIE
T0IE
PIR1
—
ADIF
—
TMR2
Timer2 module’s register
—
INTE
—
—
RBIE
—
DCCP
T0IF
CCP1IF
—
INTF
TMR2IF
DT1CK xxxx xxxx xxxx xuxu
RBIF 0000 000x 0000 000u
TMR1IF -0-- -000 -0-- -000
0000 0000 0000 0000
12h
T2CON
— TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000
15h
CCPR1L Capture/Compare/PWM register1 (LSB)
xxxx xxxx uuuu uuuu
16h
CCPR1H Capture/Compare/PWM register1 (MSB)
xxxx xxxx uuuu uuuu
17h
CCP1CON —
87h
TRISCCP
—
—
DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000
—
—
—
—
TCCP
—
TT1CK xxxx x1x1 xxxx x1x1
8Ch
PIE1
—
ADIE
—
—
92h
PR2
Timer2 module’s period register
— CCP1IE TMR2IE TMR1IE -0-- -000 -0-- -000
1111 1111 1111 1111
Legend: x = unknown, u = unchanged, - = unimplemented read as '0'. Shaded cells are not used by PWM and Timer2.
© 1999 Microchip Technology Inc.
Preliminary
DS41106A-page 43