Módulo CCP Módulo Captura/Comparación/PWM
El PIC16 PIC16F81 F81787 787 pos posee ee dos dos módu módulos los CCP: CCP:
Modulo CCP1
Modulo CCP2
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
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.
Prof. Antonio Pateti
MICROPROCESADORES
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.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Recursos utilizados por los módulos CCP:
UNEXPO – Pto. Ordaz.
Modo de operación del CCP
Recurso Utilizado
Captura
Timer 1
Comparación
Timer 1
PWM
Timer 2
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Registros utilizados por CCP1 • CCPR1H, CCPR1L • CCP1CON
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Registros utilizados por CCP2 • CCPR2H, CCPR2L • CCP2CON
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Módulos CCPx en modo Captura: CCPx
PreDivisor ÷ 1,4,16
CCPxIF
CCPRxH CCPRxL
y Detector de Flanco
4
TMR1H TMR1L
CCPxCON<3:0>
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP CCPxCON
CCP1M3:CCP1M0 :
Selección de Modo de operación.
CCP1M3:CCP1M0 0000
Modo Operación El modo Captura/Comparación/PWM esta deshabilitado ,
0101
Modo Captura, en cada flanco ascendente
0110
Modo Captura, en cada 4 flanco ascendente
0111
Modo Captura, en cada 16 flanco ascendente
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Operación del módulos CCPx en modo Captura: CCPxIF
PreDivisor ÷ 1,4,16
CCPx
0A
5E
CCPRx
0A
5E
TMR1
y Detector de Flanco
4
CCPxCON<3:0> 0100
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Módulos CCPx en modo Comparación: Disparo de Evento Especiales
CCPx
Q
S R
CCPxIF
Lógica de Salida
4
TRISC
UNEXPO – Pto. Ordaz.
CCPRxH CCPRxL
CCPxCON<3:0>
Prof. Antonio Pateti
TMR1H TMR1L
MICROPROCESADORES
Módulo CCP
CCP1M3:CCP1M0 :
Selección de Modo de operación.
CCP1M3:CCP1M0 1000
Modo Operación Modo Comparación, Si es igual la salida es ‘1’ (CCP1IF=’1’) ,
‘ ’
’ ’
1010
Modo Comparación, Genera INT (CCP1IF=’1’, CCP1 no Cambia)
1011
Modo Comparación, Disparo de eventos especiales (CCP1IF=’1’; pin CCP1 no Cambia; Reset TMR1 e Inicia la conversión A/D)
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Operación del módulos CCPx en modo Comparación: Disparo de Evento Especiales
CCPxIF
CCPRxH CCPRxL
0008
↑
1 CCPx
Q
S R
0
↑
Lógica de Salida
Comparador
4
TRISC
TMR1H TMR1L
CCPxCON<3:0> 1000
CCPRx
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
00 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A
CCPxIF
MICROPROCESADORES
Módulo CCP Operación del módulos CCPx en modo Comparación: Disparo de Evento Espaciales
CCPx
Q
S R
CCPxIF
CCPRxH CCPRxL
Lógica de Salida
Comparador
4
TRISC
TMR1H TMR1L
CCPxCON<3:0> 1011
CCPRx
UNEXPO – Pto. Ordaz.
0008
↑
Prof. Antonio Pateti
00 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 00 00 01
CCPxIF
MICROPROCESADORES
Módulo CCP Módulos CCP1 en modo PWM: CCPR1L
CCP1X:CCP1Y
TMR2=PR2
CCPR1H Comparador
TMR2=PR2
CCPR1H=TMR2
R
Q
CCP1
S
TMR2 Comparad
TRISC
PR2 TIMER2 UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP
CCP1M3:CCP1M0 :
Selección de Modo de operación.
CCP1M3:CCP1M0 11XX
CCP1X:CCP1Y :
Modo Operación Modo PWM
Utilizado solo para el modo PWM.
Modo PWM: Estos son los dos bits menos significativos para el Ciclo Útil en el modo PWM. Los 8 bits mas significativos se encuentran en CCPR1L
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Operación del módulo CCP1 en modo PWM: CCP1 02 ↑
TMR2=PR2
CCPR1L
TMR2=PR2 CCPR1H=TMR2
CCP1X:CCP1Y
PR2 CCPR1H
Comparador
R
PR2
Q
CCP1
S
TMR2 TRISC
Comparad PR2
↑
CCPR1H PR2
TMR2 00 01 02 03 04 05 00 01 02 03 04 05 00 01 02 03 04 05 00
05
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Periodo y Ciclo Útil del modulo PWM: PWMCU = [CCPR1L:CCP1CON<5,4>]●Tosc●[PreDiv TMR2] V CU
CU t T
T
PWMPeriodo = [PR2+1]●4●Tosc●[PreDiv TMR2]
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[1] PWMCU = 0,25µseg V CU=0,25µseg
t T = 256seg
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
T
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[1] PWMCU = 128µseg V CU=128µseg
t T = 256seg
UNEXPO – Pto. Ordaz.
T Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[1] PWMCU = 255,5µseg V CU=255,5µseg
t T = 256seg
UNEXPO – Pto. Ordaz.
T
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[1] PWMCU = 255,75µseg V CU=255,75µseg
t T = 256seg
UNEXPO – Pto. Ordaz.
T
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[4] PWMCU = 1 µseg V CU=1 µseg
t T = 504seg
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
T
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[4] PWMCU = 202µseg V CU=202µseg
t T = 504seg
UNEXPO – Pto. Ordaz.
T Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[4] PWMCU = 502µseg V CU=502µseg
t T = 504seg
UNEXPO – Pto. Ordaz.
T
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[4] PWMCU = 503µseg V CU=503µseg
t T = 504seg
UNEXPO – Pto. Ordaz.
T
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Cá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,25µseg●[4] PWMCU = 504µseg V
t T = 504seg
UNEXPO – Pto. Ordaz.
T
Prof. Antonio Pateti
MICROPROCESADORES
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 del módulo PWM depende del Pre-Divisor del Timer 2
Pre-Div del TMR2
Resolución (tiempo)
1
Tosc ..
16
UNEXPO – Pto. Ordaz.
4●C.I.
Prof. Antonio Pateti
MICROPROCESADORES
Temporizadores/Contadores APFCON1
CCP1SEL:
Selección del pin de entrada/salida del módulo CCP1. 0: CCP1 es RC2 1: CCP1 es RB0
CCP2SEL:
Selección del pin de entrada/salida del módulo CCP2. 0: CCP1 es RC1 1: CCP1 es RB3
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
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
T PWM
b
T osc
PD _ T 2
log 2b log
T PWM
T osc PD _ T 2
T PWM log T osc PD _ T 2 b log(2)
UNEXPO – Pto. Ordaz.
Prof. Antonio Pateti
MICROPROCESADORES
Módulo CCP Ejemplo con PWM PIC17F87X
l i t U s t o i l B i c 0 C 1 l e D
RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7
RB5 RB6 RB7
RE0 RE1
RA0 RA1
RB0 RB1 RB2 RB3
RC2
UNEXPO – Pto. Ordaz.
8 Bits
2 Bits Para PreDivT2 CCP1
Prof. Antonio Pateti
MICROPROCESADORES