Módulo CCP
Módulo Captura/Comparación/PWM
El PIC16F81787 posee dos módulos CCP: Modulo CCP1 Modulo CCP2
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Los módulos CCP pueden operar como:
Registro de Captura de 16 bits
Registro de Comparación de 16 bits
Registro de ciclo de trabajo del módulo PWM
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Registro de ciclo de trabajo del módulo PWM
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Recursos utilizados por los módulos CCP:
Modo de operacióndel CCP Recurso Utilizado
Captura Timer 1
Comparación Timer 1
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWM Timer 2
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Registros utilizados por CCP1
• CCPR1H, CCPR1L
• CCP1CON
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Registros utilizados por CCP2
• CCPR2H, CCPR2L
• CCP2CON
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Módulos CCPx en modo Captura:
PreDivisor÷ 1,4,16
y
CCPRxH CCPRxL
CCPxIFCCPx
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Detector de Flanco
y
TMR1H TMR1L
CCPxCON<3:0>4
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
CCP1M3:CCP1M0: Selección de Modo de operación.
CCP1M3:CCP1M0 Modo Operación
0000 El modo Captura/Comparación/PWM esta deshabilitado
0100 Modo Captura, en cada flanco descendente
CCPxCON
UNEXPO – Pto. Ordaz. MICROPROCESADORES
0100 Modo Captura, en cada flanco descendente
0101 Modo Captura, en cada flanco ascendente
0110 Modo Captura, en cada 4 flanco ascendente
0111 Modo Captura, en cada 16 flanco ascendente
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Operación del módulos CCPx en modo Captura:
PreDivisor÷ 1,4,16
y
CCPRx
CCPxIFCCPx
0A 5E
UNEXPO – Pto. Ordaz. MICROPROCESADORES
Detector de Flanco
y
TMR1
CCPxCON<3:0>4
0100
0A 5E
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Módulos CCPx en modo Comparación:
CCPRxH CCPRxL
CCPxIF
CCPxComparadorLógica de
Salida
S
R
Q
Disparo deEvento
Especiales
UNEXPO – Pto. Ordaz. MICROPROCESADORES
TMR1H TMR1LCCPxCON<3:0>4
ComparadorLógica deSalidaR
TRISC<x>
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
CCP1M3:CCP1M0: Selección de Modo de operación.
CCP1M3:CCP1M0 Modo Operación
1000 Modo Comparación, Si es igual la salida es ‘1’ (CCP1IF=’1’)
1001 Modo Comparación, Si es igual la salida es ‘0’ (CCP1IF=’1’)
UNEXPO – Pto. Ordaz. MICROPROCESADORES
1001 Modo Comparación, Si es igual la salida es ‘0’ (CCP1IF=’1’)
1010 Modo Comparación, Genera INT (CCP1IF=’1’, CCP1 noCambia)
1011Modo Comparación, Disparo de eventos especiales(CCP1IF=’1’; pin CCP1 no Cambia; Reset TMR1 e Inicia laconversión A/D)
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Operación del módulos CCPx en modo Comparación:
CCPRxH CCPRxL
CCPxIF
CCPxComparadorLógica de
Salida
S
R
Q
Disparo deEvento
Especiales 0008↑
1
UNEXPO – Pto. Ordaz. MICROPROCESADORES
TMR1H TMR1LCCPxCON<3:0>4
TRISC<x>
1000 00 0000 0100 0200 0300 0400 0500 0600 0700 0800 0900 0A
CCPRxCCPxIF
0
↑
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Operación del módulos CCPx en modo Comparación:
CCPRxH CCPRxL
CCPxIF
CCPxComparadorLógica de
Salida
S
R
Q
Disparo deEvento
Espaciales 0008↑
UNEXPO – Pto. Ordaz. MICROPROCESADORES
TMR1H TMR1LCCPxCON<3:0>4
TRISC<x>
1011 00 0000 0100 0200 0300 0400 0500 0600 0700 0800 0000 01
CCPRxCCPxIF
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Módulos CCP1 en modo PWM:
CCPR1L
CCPR1H
CCP1X:CCP1Y
TMR2=PR2
CCPR1H=TMR2
TMR2=PR2
UNEXPO – Pto. Ordaz. MICROPROCESADORES
CCP1R
S
Q
TRISC<x>
Comparador
TMR2
Comparad
PR2
Prof. Antonio PatetiProf. Antonio Pateti
TIMER2
Módulo CCP
CCP1M3:CCP1M0: Selección de Modo de operación.
CCP1M3:CCP1M0 Modo Operación
11XX Modo PWM
UNEXPO – Pto. Ordaz. MICROPROCESADORES
CCP1X:CCP1Y: Utilizado solo para el modo PWM.
Modo PWM: Estos son los dos bits menos significativospara el Ciclo Útil en el modo PWM. Los 8 bitsmas significativos se encuentran en CCPR1L
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPOperación del módulo CCP1 en modo PWM:
TMR2=PR2CCPR1H=TMR2
TMR2=PR2
CCPR1L
CCPR1H
CCP1X:CCP1Y
00010203
TMR2
0405
02↑
CCP1
PR200010203
CCPR1H
UNEXPO – Pto. Ordaz. MICROPROCESADORES
CCP1R
S
Q
TRISC<x>
CCPR1H
Comparador
TMR2
Comparad
PR2 05↑
02030405PR2
CCPR1H
000102030405
CCPR1H
00PR2
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPPeriodo y Ciclo Útil del modulo PWM:
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
t
CU CU
V
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMPeriodo = [PR2+1]●4●Tosc●[PreDiv TMR2]
tT T
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Fosc = 4 MHz, PR2 = 255, PreDiv = 1
PWMPeriodo = [PR2+1]●4●Tosc●[PreDiv TMR2]
PWMPeriodo = [255+1]●1seg●[1]
PWMPeriodo = 256 seg
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 256 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 1
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [1]●0,25seg●[1]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 0,25seg
t
V
T = 256seg T
CU=0,25seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 256 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 512
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [512]●0,25seg●[1]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 128seg
t
V
T = 256seg T
CU=128seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 256 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 1022
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [1022]●0,25seg●[1]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 255,5seg
t
V
T = 256seg T
CU=255,5seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 256 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 1023
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [1023]●0,25seg●[1]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 255,75seg
t
V
T = 256seg T
CU=255,75seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Fosc = 4 MHz, PR2 = 125, PreDiv = 4
PWMPeriodo = [PR2+1]●4●Tosc●[PreDiv TMR2]
PWMPeriodo = [125+1]●1seg●[4]
PWMPeriodo =504 seg
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 504 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 1
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [1]●0,25seg●[4]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 1 seg
t
V
T = 504seg T
CU=1 seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 504 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 202
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [202]●0,25seg●[4]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 202seg
t
V
T = 504seg T
CU=202seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 504 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 502
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [502]●0,25seg●[4]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 502seg
t
V
T = 504seg T
CU=502seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 504 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 503
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [503]●0,25seg●[4]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 503seg
t
V
T = 504seg T
CU=503seg
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCPCálculo de Periodo y Ciclo Util:
Para PWMPeriodo = 504 seg, tenemos
[CCPR1L:CCP1CON<5,4>] = 504
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
PWMCU = [504]●0,25seg●[4]
UNEXPO – Pto. Ordaz. MICROPROCESADORES
PWMCU = 504seg
t
V
T = 504seg T
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Mínima resolución del CU para el módulo PWM
La mínima resolución (en tiempo) para el Ciclo Útil delmódulo PWM depende del Pre-Divisor del Timer 2
Pre-Div del TMR2 Resolución (tiempo)
1 Tosc4 C.I.
UNEXPO – Pto. Ordaz. MICROPROCESADORES
4 C.I.16 4●C.I.
Prof. Antonio PatetiProf. Antonio Pateti
Temporizadores/Contadores
CCP1SEL: Selección del pin de entrada/salida del módulo CCP1.0: CCP1 es RC21: CCP1 es RB0
APFCON1
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
CCP2SEL: Selección del pin de entrada/salida del módulo CCP2.0: CCP1 es RC11: CCP1 es RB3
Módulo CCP
Máxima resolución (en bits) del CU
PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2]
TPWM = [2b]●Tosc●[PD_T2]
2_2
TPDT
T
osc
PWMb
2_
log2logTPDT
T
osc
PWMb
UNEXPO – Pto. Ordaz. MICROPROCESADORES
2_
log2logTPDT
T
osc
PWMb
)2log(
2_log
TPDT
T
b osc
PWM
Prof. Antonio PatetiProf. Antonio Pateti
Módulo CCP
Ejemplo con PWM
PIC17F87X
RB0RB1RB2RB3RB4
RD0RD1RD2RD3RD4
10 B
itsD
el C
iclo
Util
8 BitsDel Periodo
UNEXPO – Pto. Ordaz. MICROPROCESADORES
RB4RB5RB6RB7
RD4RD5RD6RD7
RE0RE1
RA0RA1
RC2
10 B
itsD
el C
iclo
Util
8 BitsDel Periodo
2 BitsPara PreDivT2
CCP1
Prof. Antonio PatetiProf. Antonio Pateti
Temporizadores/Contadores
CCP1SEL: Selección del pin de entrada/salida del módulo CCP1.0: CCP1 es RC21: CCP1 es RB0
APFCON1
UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti
CCP2SEL: Selección del pin de entrada/salida del módulo CCP2.0: CCP1 es RC11: CCP1 es RB3