SlideShare a Scribd company logo
1 of 39
• MICROCONTROLADORES
MODULOS CCP: 
Captura, Comparación y modulación de anchura de pulsos 
• El PIC16F887 dispone de dos módulos CCP, llamados 
CCP1 y CCP2. 
• Cada módulo tiene un registro de 16 bits, el cual puede 
operar como registro de captura, como registro de 
comparación o como registro “duty cycle” en PWM. 
• Dada la similitud, la descripción se orienta al módulo 
CCP1. 
• Estos módulos trabajan en tres modos: 
- Modo captura. 
- Modo comparación. 
- Modo modulación de anchura de pulsos (PWM) 
• MICROCONTROLADORES
REGISTRO CCPR1 
La parte central del modulo CCP1 es un registro de 16 bits CCPR1H: CCPR1L, 
usado para capturar o comparar números binarios almacenados en TMR1H: 
TMR1L. 
• MICROCONTROLADORES
CCP1:MODO CAPTURA 
• El módulo CCP1 tiene un registro de trabajo de 16 
bits que está formado por la concatenación de los 
registros CCPR1H:CCPR1L . 
• Estos registros capturan el valor contenido en 
TMR1 siempre que ocurra un evento en la patita 
RC2 de la puerta C, que previamente ha sido 
configurada como entrada. 
• Los eventos posibles que pueden ocurrir en la 
patita RC2 para producir la captura del valor de 
TMR1 en la pareja CCPR1H:CCPR1L son:
MODO CAPTURA: Eventos posibles en 
pin RC2 
• 1.- Un flanco ascendente. 
• 2.- Un flanco descendente. 
• 3.- Cada 4 flancos ascendentes. 
• 4.- Cada 16 flancos ascendentes.
Bloques Principales del Modo Captura 
RC2/CCP1 debe configurarse como entrada y TMR1 debe operar como 
temporizador o contador síncrono.
Bloques Principales del Modo Captura
MODO CAPTURA 
• Al realizarse una captura se activa el señalizador CCP1IF 
ubicado en el registro PIR1. 
• Además, si se pone a 1 el permiso de interrupción 
(CCP1IE=1 ubicado en el registro PIE1), se genera una 
petición de interrupción cuando se carga en 
CCPR1H:CCPR1L el valor del TMR1. 
• Con CCP1 en modo captura, el TMR1 debe estar 
configurado como temporizador o como contador 
síncrono. 
• Para cambiar las condiciones de funcionamiento en 
modo captura, conviene desactivar CCP1 para evitar 
que se produzcan falsas interrupciones durante la 
operación.
Cambiar modo de funcionamiento 
Se recomienda la secuencia siguiente: 
ASM { BANKESEL CCP1CON 
CLRF CCP1CON ;REGISTRO DE CONTROL BORRADO 
;MÓDULO CCP1 ESTÁ APAGADO 
MOVLW XX ;NUEVO MODO DEL PRE-ESCALADOR 
;ESTÁ SELECCIONADO 
MOVWF CCP1CON ;EN EL REGISTRO DE CONTROL 
;SE INTRODUCE UN NUEVO VALOR 
;MÓDULO CCP1 SE ENCIENDE 
;SIMULTÁNEAMENTE 
} 
……..
Registro de Control de CCP1
CCP1M<3:0> determina el modo de 
operacion de CCP1 
• CCP1M<3:0>: ECCP Mode Select bits 
• 0000 = Capture/Compare/PWM off (resets ECCP module) 
• 0001 = Unused (reserved) 
• 0010 = Compare mode, toggle output on match (CCP1IF bit is set) 
• 0011 = Unused (reserved) 
• 0100 = Capture mode, every falling edge 
• 0101 = Capture mode, every rising edge 
• 0110 = Capture mode, every 4th rising edge 
• 0111 = Capture mode, every 16th rising edge 
• 1000 = Compare mode, set output on match (CCP1IF bit is set) 
• 1001 = Compare mode, clear output on match (CCP1IF bit is set) 
• 1010 = Compare mode, generate software interrupt on match (CCP1IF bit is set, CCP1 pin is 
• unaffected) 
• 1011 = Compare mode, trigger special event (CCP1IF bit is set; CCP1 resets TMR1 or TMR2 
• 1100 = PWM mode; P1A, P1C active-high; P1B, P1D active-high 
• 1101 = PWM mode; P1A, P1C active-high; P1B, P1D active-low 
• 1110 = PWM mode; P1A, P1C active-low; P1B, P1D active-high 
• 1111 = PWM mode; P1A, P1C active-low; P1B, P1D active-low
DC1B1, DC1B0 usados en modo PWM 
• Bit 5-4 en registro CCP1CON: DC1B1, DC1B0: 
Usados solamente en modo PWM. 
• Son los dos bits menos significativos del ciclo 
de trabajo PWM de un número de 10 bits. 
Los 8 bits más significativos se encuentran en 
CCPR1L. 
• No se usan en modo captura y comparacion.
P1M1, P1M0: bits de configuración de 
la salida PWM 
• bit 7-6 P1M<1:0>: PWM Output Configuration bits 
• If CCP1M<3:2> = 00, 01, 10: 
• xx = P1A assigned as Capture/Compare input; P1B, P1C, P1D 
assigned as port pins 
• If CCP1M<3:2> = 11: 
• 00 = Single output; P1A modulated; P1B, P1C, P1D assigned as port 
pins 
• 01 = Full-Bridge output forward; P1D modulated; P1A active; P1B, 
P1C inactive 
• 10 = Half-Bridge output; P1A, P1B modulated with dead-band 
control; P1C, P1D assigned as port pins 
• 11 = Full-Bridge output reverse; P1B modulated; P1C active; P1A, 
P1D inactive
MODO COMPARACION 
Para operar en este modo, dos condiciones deben cumplirse: El pin 
RC2/CCP1 debe configurarse como salida, y TMR1 debe sincronizarse con 
el reloj interno, es decir operar como temporizador.
MODO COMPARACION 
• En este modo de trabajo, la pareja de registros 
CCPR1H:CCPR1L se compara continuamente con el 
contenido de TMR1 que debe trabajar como 
temporizador o como contador síncrono. 
• Cuando coinciden ambos valores, en la patita RC2 (que 
previamente se configura como salida), pueden ocurrir 
los eventos siguientes, de acuerdo con la programación 
de los bits CCP1M3-0 en el registro de control CCP1CON: 
- Conmuta la salida CCPX 
- Pasa la salida CCPX a nivel alto 
- Pasa la salida CCPX a nivel bajo 
- Se produce disparo especial (encera TMR1 e inicia 
conversión ADC). 
- Genera interrupción por software, no afecta la salida 
CCPX
MODO PWM 
Ejemplo típico: el control de una lámpara, la potencia eléctrica que consume la 
lámpara está directamente relacionada con el ancho del pulso. Cosa similar con el 
control de motores d.c.
• Otra de las aplicaciones prácticas comunes es la generación 
de señales de formas arbitrarias como las ondas sinusoidales 
MODO PWM 
• Dispositivos que operan de esta manera son usados frecuentemente para el 
control de velocidad, aceleración y desaceleración de motores eléctricos 
mediante ajuste de frecuencia.
MODO PWM 
• En modo PWM se genera una señal modulada por 
anchura de pulso en el pin CCPx. 
• El ciclo de trabajo (duty cycle),periodo y resolucion se 
determinan con los registros siguientes: 
• PR2 
• T2CON 
• CCPRxL 
• CCPxCON 
• Produce una salida con una resolución de hasta 10 bits 
en el pin CCPx. El pin CCPx debe configurarse como 
salida. 
• En la transparencia siguiente tenemos un diagrama de 
bloques simplificado de la operación PWM.
MODO PWM 
• Diagrama de 
bloques del 
Modo PWM, 
mostrando un 
pulso de salida 
cuyo período y 
ancho de pulso 
deben ser 
configurados.
PERIODO PWM 
• Cuando TMR2 es igual a PR2 ocurre los eventos 
siguientes: 
a) TMR2 se encera. 
b) Pin CCPx se enciende (Si el ciclo de trabajo = 
0%, el pin no se enciende.) 
c) El ciclo de trabajo se transfiere 
automáticamente de CCPRxL a CCPRxH. 
• En PWM el registro CCPRxH es de lectura 
solamente.
MODO PWM
PERIODO 
• El período del pulso de salida (T) se determina por medio del registro PR2 
del TMR2. El período del PWM puede calcularse de la siguiente fórmula: 
ANCHO DE PULSO 
• El ciclo de trabajo del PWM se lo especifica mediante 10 bits: ocho del 
CCPR1L y los dos bits menos significativos de CCP1CON(DC1B1 y DC1B0). El 
resultado es un número de 10 bits contenido en la fórmula:
MODO PWM
RESOLUCION PWM 
La resolución determina el número de ciclos de trabajo 
disponibles. Por ejemplo, con 10 bits resultará 1024 ciclos de 
trabajo. La resolución máxima es 10 bits cuando PR2 = 255. 
Cuando el ancho del pulso es mayor que el período el pin de 
salida se congela encendido y no cambia.
RESOLUCION PWM
Registro de Control CCP1CON
• DC1B1, DC1B0 – Representan los dos bits menos significativos 
cuando se emplea la resolución del PWM a 10 bits. Los 8 bits mas 
significativos están almacenados en el registro CCPR1L.
P1M1, P1M0
CCP1M3-CCP1M2-CCP1M1-CCP1M0 
determinan el modo de operación de CCP1
CCP1M3-CCP1M2-CCP1M1-CCP1M0 
determinan el modo de operación de CCP1
Pasos para la Configuración del CCP1 
en Modo PWM 
• Los pasos para la configuración del modo PWM son los siguientes: 
1.- Deshabilite el CCP1. Pin CCP1 debe ser configurado como 
entrada 
2.- Ingrese en PR2 el período del PWM 
3.- Configure el módulo CCP para trabajar en el modo PWM 
configurando los bits del CCP1CON. 
4.- Configure el ciclo de trabajo cargando CCPR1L y usando los 
bits DC1B1 y DC1B0 del registro CCP1CON. 
5.- Configure y empiece el TMR2. 
6.- Habilite el pin de salida del PWM después de completar un 
ciclo de trabajo.
Funciones PWM de MikroCPro 
• PWM1_Init 
• PWM1_Set_Duty 
• PWM1_Start 
• PWM1_Stop
MODULO CCP2 
CCP2 es una buena copia de CCP1, la diferencia esta en la senal de reset de TMR1, si 
el ADC esta habilitado , en el momento en que TMR1=CCPR2 la senal de reset de 
TMR1 automaticamente genera el inicio de conversion en el ADC. Su registro de 
control es el CCP2CON.
MODULO CCP2 
DC2B1-DC2B0 bits menos significativos del ciclo de trabajo, los 
8 bits más significativos se encuentran CCPR2L para formar un 
número de 10 bits. 
CCP2M3…CCP2M0 bits seleccionan el modo de trabajo de CCP2. 
Ver siguiente transparencia
MODOS DE TRABAJO DE CCP2 
• bit 3-0 CCP2M<3:0>: CCP2 Mode Select bits 
0000 = Capture/Compare/PWM off (resets CCP2 module) 
0001 = Unused (reserved) 
0010 = Unused (reserved) 
0011 = Unused (reserved) 
0100 = Capture mode, every falling edge 
0101 = Capture mode, every rising edge 
0110 = Capture mode, every 4th rising edge 
0111 = Capture mode, every 16th rising edge 
1000 = Compare mode, set output on match (CCP2IF bit is set) 
1001 = Compare mode, clear output on match (CCP2IF bit is set) 
1010 = Compare mode, generate software interrupt on match (CCP2IF bit is 
set, CCP2 pin is unaffected) 
1011 = Compare mode, trigger special event (CCP2IF bit is set, TMR1 is reset 
and A/D conversion is started if the ADC module is enabled. CCP2 pin is 
unaffected.) 
11xx = PWM mode.
MODO ECCP1: PWM MEJORADO 
• En modo mejorado se puede generar hasta 4 senales 
PWM moduladas en cuatro patitas diferentes hasta con 
10 bits de resolucion. 
• Los 4 modos disponibles son: 
a) Single PWM 
b) Half-Bridge PWM 
c) Full-Bridge PWM, Forward mode 
d) Full-Bridge PWM, Reverse mode 
• Para seleccionar uno de los modos mejorados se usan 
los bits P1M del registro de control CCP1CON. 
• Este modo mejorado sólo esta disponible en el modulo 
CCP1.
MODO ECCP1: PWM MEJORADO
MODO ECCP1: PWM MEJORADO

More Related Content

What's hot

Compuertas logicas 2
Compuertas logicas 2Compuertas logicas 2
Compuertas logicas 2
Josse Sumari
 
104825866 3-sintonia-de-lazo-cerrado
104825866 3-sintonia-de-lazo-cerrado104825866 3-sintonia-de-lazo-cerrado
104825866 3-sintonia-de-lazo-cerrado
MACLAB
 
Amplificadores clase B clase 11ª
Amplificadores clase B clase 11ªAmplificadores clase B clase 11ª
Amplificadores clase B clase 11ª
ManuelGmoJaramillo
 

What's hot (20)

Clase 3 cdii
Clase 3 cdiiClase 3 cdii
Clase 3 cdii
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Sistemas de primer orden, segundo orden y orden superior
Sistemas de primer orden,  segundo orden y orden superiorSistemas de primer orden,  segundo orden y orden superior
Sistemas de primer orden, segundo orden y orden superior
 
Transistor Bipolar
Transistor BipolarTransistor Bipolar
Transistor Bipolar
 
Ejemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionEjemplos De Timer E Interrupcion
Ejemplos De Timer E Interrupcion
 
Compuertas logicas 2
Compuertas logicas 2Compuertas logicas 2
Compuertas logicas 2
 
Registro universal
Registro universalRegistro universal
Registro universal
 
Practica0,1,2,3,4
Practica0,1,2,3,4Practica0,1,2,3,4
Practica0,1,2,3,4
 
Temp555
Temp555Temp555
Temp555
 
Proyecto 7 Flip Flop
Proyecto 7 Flip FlopProyecto 7 Flip Flop
Proyecto 7 Flip Flop
 
Multiplicador y divisor
Multiplicador y divisorMultiplicador y divisor
Multiplicador y divisor
 
Nivel de lógica digital
Nivel de lógica digitalNivel de lógica digital
Nivel de lógica digital
 
Timer0 PIC16F84A
Timer0 PIC16F84ATimer0 PIC16F84A
Timer0 PIC16F84A
 
104825866 3-sintonia-de-lazo-cerrado
104825866 3-sintonia-de-lazo-cerrado104825866 3-sintonia-de-lazo-cerrado
104825866 3-sintonia-de-lazo-cerrado
 
Amplificadores clase B clase 11ª
Amplificadores clase B clase 11ªAmplificadores clase B clase 11ª
Amplificadores clase B clase 11ª
 
Control de motor dc con 555
Control de motor dc con 555Control de motor dc con 555
Control de motor dc con 555
 
problemas amplificador multietapa
problemas amplificador multietapaproblemas amplificador multietapa
problemas amplificador multietapa
 
Scr, triac y diac
Scr, triac y diacScr, triac y diac
Scr, triac y diac
 
Clase Timer 1
Clase Timer 1Clase Timer 1
Clase Timer 1
 
Informe Practico (proyecto)
Informe  Practico (proyecto)Informe  Practico (proyecto)
Informe Practico (proyecto)
 

Similar to Ccpx

MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
Luis Zurita
 

Similar to Ccpx (20)

Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887
 
Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
Pwm
PwmPwm
Pwm
 
Ejercicio 07 Timers
Ejercicio 07 TimersEjercicio 07 Timers
Ejercicio 07 Timers
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Compilador CCS.ppt
Compilador CCS.pptCompilador CCS.ppt
Compilador CCS.ppt
 
Pwm
PwmPwm
Pwm
 
Timers
TimersTimers
Timers
 
18 Timers
18 Timers18 Timers
18 Timers
 
Usart PIC config LANDA
Usart PIC config LANDAUsart PIC config LANDA
Usart PIC config LANDA
 
Grabacion de microcontroladores_pic
Grabacion de microcontroladores_picGrabacion de microcontroladores_pic
Grabacion de microcontroladores_pic
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
pwm fast en un microcontrolador 328p.pptx
pwm  fast en un microcontrolador 328p.pptxpwm  fast en un microcontrolador 328p.pptx
pwm fast en un microcontrolador 328p.pptx
 
Conversor ADC
Conversor ADCConversor ADC
Conversor ADC
 
Timers
TimersTimers
Timers
 

More from Jair BG

Parcial 2 tdic10_2010
Parcial 2 tdic10_2010Parcial 2 tdic10_2010
Parcial 2 tdic10_2010
Jair BG
 
Parcial t1 2011 sol
Parcial t1 2011 solParcial t1 2011 sol
Parcial t1 2011 sol
Jair BG
 
Parcial t1 2010 sol
Parcial t1 2010 solParcial t1 2010 sol
Parcial t1 2010 sol
Jair BG
 
Parcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 solParcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 sol
Jair BG
 
Micp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucionMicp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucion
Jair BG
 
Micp mej feb18_2011_solucion
Micp mej feb18_2011_solucionMicp mej feb18_2011_solucion
Micp mej feb18_2011_solucion
Jair BG
 
Micc mejoramiento-sept2011-solucion
Micc mejoramiento-sept2011-solucionMicc mejoramiento-sept2011-solucion
Micc mejoramiento-sept2011-solucion
Jair BG
 
Micc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_solMicc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_sol
Jair BG
 
Micc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_solMicc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_sol
Jair BG
 
Micc parcial dic9_2010 - copia (1)_sol
Micc parcial dic9_2010 - copia (1)_solMicc parcial dic9_2010 - copia (1)_sol
Micc parcial dic9_2010 - copia (1)_sol
Jair BG
 
Micc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_solucMicc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_soluc
Jair BG
 
Micc mej sept16_2010_solucion
Micc mej sept16_2010_solucionMicc mej sept16_2010_solucion
Micc mej sept16_2010_solucion
Jair BG
 
Micc mej sept16_2010
Micc mej sept16_2010Micc mej sept16_2010
Micc mej sept16_2010
Jair BG
 
Micc mej feb18_2010_solucion
Micc mej feb18_2010_solucionMicc mej feb18_2010_solucion
Micc mej feb18_2010_solucion
Jair BG
 
Micc mej feb18_2010
Micc mej feb18_2010Micc mej feb18_2010
Micc mej feb18_2010
Jair BG
 
Micc leccion04 nov26_2009
Micc leccion04 nov26_2009Micc leccion04 nov26_2009
Micc leccion04 nov26_2009
Jair BG
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009
Jair BG
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucion
Jair BG
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
Jair BG
 

More from Jair BG (20)

Parcial 2 tdic10_2010
Parcial 2 tdic10_2010Parcial 2 tdic10_2010
Parcial 2 tdic10_2010
 
Parcial t1 2011 sol
Parcial t1 2011 solParcial t1 2011 sol
Parcial t1 2011 sol
 
Parcial t1 2010 sol
Parcial t1 2010 solParcial t1 2010 sol
Parcial t1 2010 sol
 
Parcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 solParcial dic 13 t2 2008 sol
Parcial dic 13 t2 2008 sol
 
Micp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucionMicp mejoramiento-sept2011solucion
Micp mejoramiento-sept2011solucion
 
Micp mej feb18_2011_solucion
Micp mej feb18_2011_solucionMicp mej feb18_2011_solucion
Micp mej feb18_2011_solucion
 
Micc temas examen
Micc temas examenMicc temas examen
Micc temas examen
 
Micc mejoramiento-sept2011-solucion
Micc mejoramiento-sept2011-solucionMicc mejoramiento-sept2011-solucion
Micc mejoramiento-sept2011-solucion
 
Micc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_solMicc parcial dic9_2010 - copia (3)_sol
Micc parcial dic9_2010 - copia (3)_sol
 
Micc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_solMicc parcial dic9_2010 - copia (2)_sol
Micc parcial dic9_2010 - copia (2)_sol
 
Micc parcial dic9_2010 - copia (1)_sol
Micc parcial dic9_2010 - copia (1)_solMicc parcial dic9_2010 - copia (1)_sol
Micc parcial dic9_2010 - copia (1)_sol
 
Micc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_solucMicc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_soluc
 
Micc mej sept16_2010_solucion
Micc mej sept16_2010_solucionMicc mej sept16_2010_solucion
Micc mej sept16_2010_solucion
 
Micc mej sept16_2010
Micc mej sept16_2010Micc mej sept16_2010
Micc mej sept16_2010
 
Micc mej feb18_2010_solucion
Micc mej feb18_2010_solucionMicc mej feb18_2010_solucion
Micc mej feb18_2010_solucion
 
Micc mej feb18_2010
Micc mej feb18_2010Micc mej feb18_2010
Micc mej feb18_2010
 
Micc leccion04 nov26_2009
Micc leccion04 nov26_2009Micc leccion04 nov26_2009
Micc leccion04 nov26_2009
 
Micc final sept05_2009
Micc final sept05_2009Micc final sept05_2009
Micc final sept05_2009
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucion
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 

Ccpx

  • 2. MODULOS CCP: Captura, Comparación y modulación de anchura de pulsos • El PIC16F887 dispone de dos módulos CCP, llamados CCP1 y CCP2. • Cada módulo tiene un registro de 16 bits, el cual puede operar como registro de captura, como registro de comparación o como registro “duty cycle” en PWM. • Dada la similitud, la descripción se orienta al módulo CCP1. • Estos módulos trabajan en tres modos: - Modo captura. - Modo comparación. - Modo modulación de anchura de pulsos (PWM) • MICROCONTROLADORES
  • 3. REGISTRO CCPR1 La parte central del modulo CCP1 es un registro de 16 bits CCPR1H: CCPR1L, usado para capturar o comparar números binarios almacenados en TMR1H: TMR1L. • MICROCONTROLADORES
  • 4. CCP1:MODO CAPTURA • El módulo CCP1 tiene un registro de trabajo de 16 bits que está formado por la concatenación de los registros CCPR1H:CCPR1L . • Estos registros capturan el valor contenido en TMR1 siempre que ocurra un evento en la patita RC2 de la puerta C, que previamente ha sido configurada como entrada. • Los eventos posibles que pueden ocurrir en la patita RC2 para producir la captura del valor de TMR1 en la pareja CCPR1H:CCPR1L son:
  • 5. MODO CAPTURA: Eventos posibles en pin RC2 • 1.- Un flanco ascendente. • 2.- Un flanco descendente. • 3.- Cada 4 flancos ascendentes. • 4.- Cada 16 flancos ascendentes.
  • 6. Bloques Principales del Modo Captura RC2/CCP1 debe configurarse como entrada y TMR1 debe operar como temporizador o contador síncrono.
  • 7. Bloques Principales del Modo Captura
  • 8. MODO CAPTURA • Al realizarse una captura se activa el señalizador CCP1IF ubicado en el registro PIR1. • Además, si se pone a 1 el permiso de interrupción (CCP1IE=1 ubicado en el registro PIE1), se genera una petición de interrupción cuando se carga en CCPR1H:CCPR1L el valor del TMR1. • Con CCP1 en modo captura, el TMR1 debe estar configurado como temporizador o como contador síncrono. • Para cambiar las condiciones de funcionamiento en modo captura, conviene desactivar CCP1 para evitar que se produzcan falsas interrupciones durante la operación.
  • 9. Cambiar modo de funcionamiento Se recomienda la secuencia siguiente: ASM { BANKESEL CCP1CON CLRF CCP1CON ;REGISTRO DE CONTROL BORRADO ;MÓDULO CCP1 ESTÁ APAGADO MOVLW XX ;NUEVO MODO DEL PRE-ESCALADOR ;ESTÁ SELECCIONADO MOVWF CCP1CON ;EN EL REGISTRO DE CONTROL ;SE INTRODUCE UN NUEVO VALOR ;MÓDULO CCP1 SE ENCIENDE ;SIMULTÁNEAMENTE } ……..
  • 11. CCP1M<3:0> determina el modo de operacion de CCP1 • CCP1M<3:0>: ECCP Mode Select bits • 0000 = Capture/Compare/PWM off (resets ECCP module) • 0001 = Unused (reserved) • 0010 = Compare mode, toggle output on match (CCP1IF bit is set) • 0011 = Unused (reserved) • 0100 = Capture mode, every falling edge • 0101 = Capture mode, every rising edge • 0110 = Capture mode, every 4th rising edge • 0111 = Capture mode, every 16th rising edge • 1000 = Compare mode, set output on match (CCP1IF bit is set) • 1001 = Compare mode, clear output on match (CCP1IF bit is set) • 1010 = Compare mode, generate software interrupt on match (CCP1IF bit is set, CCP1 pin is • unaffected) • 1011 = Compare mode, trigger special event (CCP1IF bit is set; CCP1 resets TMR1 or TMR2 • 1100 = PWM mode; P1A, P1C active-high; P1B, P1D active-high • 1101 = PWM mode; P1A, P1C active-high; P1B, P1D active-low • 1110 = PWM mode; P1A, P1C active-low; P1B, P1D active-high • 1111 = PWM mode; P1A, P1C active-low; P1B, P1D active-low
  • 12. DC1B1, DC1B0 usados en modo PWM • Bit 5-4 en registro CCP1CON: DC1B1, DC1B0: Usados solamente en modo PWM. • Son los dos bits menos significativos del ciclo de trabajo PWM de un número de 10 bits. Los 8 bits más significativos se encuentran en CCPR1L. • No se usan en modo captura y comparacion.
  • 13. P1M1, P1M0: bits de configuración de la salida PWM • bit 7-6 P1M<1:0>: PWM Output Configuration bits • If CCP1M<3:2> = 00, 01, 10: • xx = P1A assigned as Capture/Compare input; P1B, P1C, P1D assigned as port pins • If CCP1M<3:2> = 11: • 00 = Single output; P1A modulated; P1B, P1C, P1D assigned as port pins • 01 = Full-Bridge output forward; P1D modulated; P1A active; P1B, P1C inactive • 10 = Half-Bridge output; P1A, P1B modulated with dead-band control; P1C, P1D assigned as port pins • 11 = Full-Bridge output reverse; P1B modulated; P1C active; P1A, P1D inactive
  • 14. MODO COMPARACION Para operar en este modo, dos condiciones deben cumplirse: El pin RC2/CCP1 debe configurarse como salida, y TMR1 debe sincronizarse con el reloj interno, es decir operar como temporizador.
  • 15.
  • 16. MODO COMPARACION • En este modo de trabajo, la pareja de registros CCPR1H:CCPR1L se compara continuamente con el contenido de TMR1 que debe trabajar como temporizador o como contador síncrono. • Cuando coinciden ambos valores, en la patita RC2 (que previamente se configura como salida), pueden ocurrir los eventos siguientes, de acuerdo con la programación de los bits CCP1M3-0 en el registro de control CCP1CON: - Conmuta la salida CCPX - Pasa la salida CCPX a nivel alto - Pasa la salida CCPX a nivel bajo - Se produce disparo especial (encera TMR1 e inicia conversión ADC). - Genera interrupción por software, no afecta la salida CCPX
  • 17. MODO PWM Ejemplo típico: el control de una lámpara, la potencia eléctrica que consume la lámpara está directamente relacionada con el ancho del pulso. Cosa similar con el control de motores d.c.
  • 18. • Otra de las aplicaciones prácticas comunes es la generación de señales de formas arbitrarias como las ondas sinusoidales MODO PWM • Dispositivos que operan de esta manera son usados frecuentemente para el control de velocidad, aceleración y desaceleración de motores eléctricos mediante ajuste de frecuencia.
  • 19. MODO PWM • En modo PWM se genera una señal modulada por anchura de pulso en el pin CCPx. • El ciclo de trabajo (duty cycle),periodo y resolucion se determinan con los registros siguientes: • PR2 • T2CON • CCPRxL • CCPxCON • Produce una salida con una resolución de hasta 10 bits en el pin CCPx. El pin CCPx debe configurarse como salida. • En la transparencia siguiente tenemos un diagrama de bloques simplificado de la operación PWM.
  • 20. MODO PWM • Diagrama de bloques del Modo PWM, mostrando un pulso de salida cuyo período y ancho de pulso deben ser configurados.
  • 21. PERIODO PWM • Cuando TMR2 es igual a PR2 ocurre los eventos siguientes: a) TMR2 se encera. b) Pin CCPx se enciende (Si el ciclo de trabajo = 0%, el pin no se enciende.) c) El ciclo de trabajo se transfiere automáticamente de CCPRxL a CCPRxH. • En PWM el registro CCPRxH es de lectura solamente.
  • 23. PERIODO • El período del pulso de salida (T) se determina por medio del registro PR2 del TMR2. El período del PWM puede calcularse de la siguiente fórmula: ANCHO DE PULSO • El ciclo de trabajo del PWM se lo especifica mediante 10 bits: ocho del CCPR1L y los dos bits menos significativos de CCP1CON(DC1B1 y DC1B0). El resultado es un número de 10 bits contenido en la fórmula:
  • 25. RESOLUCION PWM La resolución determina el número de ciclos de trabajo disponibles. Por ejemplo, con 10 bits resultará 1024 ciclos de trabajo. La resolución máxima es 10 bits cuando PR2 = 255. Cuando el ancho del pulso es mayor que el período el pin de salida se congela encendido y no cambia.
  • 28. • DC1B1, DC1B0 – Representan los dos bits menos significativos cuando se emplea la resolución del PWM a 10 bits. Los 8 bits mas significativos están almacenados en el registro CCPR1L.
  • 30. CCP1M3-CCP1M2-CCP1M1-CCP1M0 determinan el modo de operación de CCP1
  • 31. CCP1M3-CCP1M2-CCP1M1-CCP1M0 determinan el modo de operación de CCP1
  • 32. Pasos para la Configuración del CCP1 en Modo PWM • Los pasos para la configuración del modo PWM son los siguientes: 1.- Deshabilite el CCP1. Pin CCP1 debe ser configurado como entrada 2.- Ingrese en PR2 el período del PWM 3.- Configure el módulo CCP para trabajar en el modo PWM configurando los bits del CCP1CON. 4.- Configure el ciclo de trabajo cargando CCPR1L y usando los bits DC1B1 y DC1B0 del registro CCP1CON. 5.- Configure y empiece el TMR2. 6.- Habilite el pin de salida del PWM después de completar un ciclo de trabajo.
  • 33. Funciones PWM de MikroCPro • PWM1_Init • PWM1_Set_Duty • PWM1_Start • PWM1_Stop
  • 34. MODULO CCP2 CCP2 es una buena copia de CCP1, la diferencia esta en la senal de reset de TMR1, si el ADC esta habilitado , en el momento en que TMR1=CCPR2 la senal de reset de TMR1 automaticamente genera el inicio de conversion en el ADC. Su registro de control es el CCP2CON.
  • 35. MODULO CCP2 DC2B1-DC2B0 bits menos significativos del ciclo de trabajo, los 8 bits más significativos se encuentran CCPR2L para formar un número de 10 bits. CCP2M3…CCP2M0 bits seleccionan el modo de trabajo de CCP2. Ver siguiente transparencia
  • 36. MODOS DE TRABAJO DE CCP2 • bit 3-0 CCP2M<3:0>: CCP2 Mode Select bits 0000 = Capture/Compare/PWM off (resets CCP2 module) 0001 = Unused (reserved) 0010 = Unused (reserved) 0011 = Unused (reserved) 0100 = Capture mode, every falling edge 0101 = Capture mode, every rising edge 0110 = Capture mode, every 4th rising edge 0111 = Capture mode, every 16th rising edge 1000 = Compare mode, set output on match (CCP2IF bit is set) 1001 = Compare mode, clear output on match (CCP2IF bit is set) 1010 = Compare mode, generate software interrupt on match (CCP2IF bit is set, CCP2 pin is unaffected) 1011 = Compare mode, trigger special event (CCP2IF bit is set, TMR1 is reset and A/D conversion is started if the ADC module is enabled. CCP2 pin is unaffected.) 11xx = PWM mode.
  • 37. MODO ECCP1: PWM MEJORADO • En modo mejorado se puede generar hasta 4 senales PWM moduladas en cuatro patitas diferentes hasta con 10 bits de resolucion. • Los 4 modos disponibles son: a) Single PWM b) Half-Bridge PWM c) Full-Bridge PWM, Forward mode d) Full-Bridge PWM, Reverse mode • Para seleccionar uno de los modos mejorados se usan los bits P1M del registro de control CCP1CON. • Este modo mejorado sólo esta disponible en el modulo CCP1.
  • 38. MODO ECCP1: PWM MEJORADO
  • 39. MODO ECCP1: PWM MEJORADO