You are on page 1of 12

Mdulos de captura, Comparacin y Modulacin de

Anchura de Pulsos
Los microcontroladores PIC16F87x disponen de dos mdulos CCP, llamados
CCP1 y CCP2, que son idnticos excepto en lo referente a la modalidad de
Disparo Especial, que luego se comentar. Dada esta similitud, la
descripcin se orienta hacia el mdulo CCP1. Estos mdulos pueden realizar
tres funciones principales:
El mdulo CCP1 utiliza un registro de trabajo de 16 bits que est formado por
la concatenacin de los registros CCPR1H-CCPR1L (direcciones 16h y 15h).
El registro de control del mdulo CCP1 es el CCP1CON, que ocupa la
direccin 17h. El mdulo CCP2 tiene como registros de trabajo a CCPR2H-
CCPR2L (direcciones 1Ch y 1Bh) y como registro de control a CCP2CON en
la direccin 1Dh. Las parejas de registros son las encargadas de capturar el
valor del TMR1, de comparar el valor que tienen con el del TMR1 o, en el
modo PWM, de modular la anchura del impulso.
Modo captura
En este modo, la pareja de registros CCPxH-L del mdulo CCPx captura el valor de
16 bits que contiene el TMR1 cuando sucede un evento en la patita RCy/CCPx de
la Puerta C, que previamente ha sido configurada como entrada poniendo a 1 el bit
correspondiente del registro TRISC.
Los eventos posibles que pueden ocurrir sobre la patita RCy/CCPx para producir la
captura del valor del TMR1 sobre la pareja de registros CCPxH-L son:
1 Un flanco ascendente.
2 Un flanco descendente.
3. Cada 4 flancos ascendentes.
4 Cada 16 flancos ascendentes.

Los cuatro bits CCP1M3-0 del registro CCP1CON seleccionan el evento adecuado
en el mdulo CCP1 y otro tanto sucede con el mdulo CCP2.
Al efectuar la captura, se activa el sealizador CCP1IF del registro PIR1. Adems,
si se pone a 1 el bit de permiso de interrupcin PIE1<CCP1IE>, se genera una
peticin de interrupcin cuando se carga en CCPR1H-L el valor del TMR1. En la
siguiente Figura se muestran los elementos ms significativos que intervienen en el
trabajo del modo Captura.
Cuando se emplea el mdulo CCP1 en modo captura, el TMR1 debe estar
configurado para trabajar como Temporizador o como contador sncrono. Nunca en
modo asincrono.
Si se van a cambiar las condiciones de funcionamiento en el modo captura,
conviene detener o desactivar al mdulo CCP para evitar que se produzcan
falsas interrupciones durante la operacin.
Si no se ha ledo el contenido de los registros CCPR1H-L y se produce una
nueva captura, dichos registros pasan a contener el nuevo valor.
Cuando se desactiva el mdulo CCP o deja de funcionar en modo captura se
borra la codificacin del predivisor de frecuencia que determinan los bits
CCP1M3-0.
Una aplicacin muy interesante del modo captura puede ser la medicin de los
intervalos de tiempo que existen entre los impulsos que llegan a la patita
RC2/CCP1 que se halla configurada como entrada. El TMR1 debe trabajar con
entrada de reloj externo sincronizada.
MODO COMPARACIN
En esta forma de trabajo, la pareja de registros CCPR1H-L compara su
contenido, de forma continua, con el valor del TMR1. Cuando coinciden ambos
valores, a la patita RC2/CCP1, que se halla configurada como salida, la
acontece uno de los siguientes eventos, de acuerdo con la programacin de los
bits CCPIM3-0:
Pasa a nivel alto.
Pasa a nivel bajo.
No cambia su estado pero se produce una
interrupcin.

Al coincidir los valores del TMR1 con los de la pareja de registros CCPR1H-L se
pone a 1 el sealizador CCP1 IF.
El TMR1 debe trabajar en modo temporizador o contador sncrono, nunca en
modo asncrono.
Si el bit de permiso de interrupcin est a 1, cuando coinciden los valores
mencionados se origina una peticin de interrupcin. En la siguiente Figura se
ofrece un esquema por bloques de la estructura general del mdulo CCP1 en
modo comparacin.
Si con los bits CCP1M3-0 se selecciona el modo de trabajo de disparo
especial, el mdulo CCP1 pone a 0 el TMR1 y el CCPR1 funciona como un
Registro de Perodo, capaz de provocar peridicamente interrrupciones. En
ese modo de disparo especial, el CCP2 pone a 0 el TMR1 y, adems, inicia
una conversin en el conversor A/D, con lo que tambin y, con carcter
peridico, puede realizar conversiones analgico/digitales sin el control del
programa de instrucciones.
Modo de Modulacin de Anchura de Pulsos (PWM)
Con este modo de trabajo, se consiguen impulsos
lgicos cuya anchura del nivel alto es de duracin
variable, que son de enorme aplicacin en el control
de dispositivos tan populares como los motores y los
triacs.
La patita RC2/CCP1 est configurada como salida y
bascula entre los niveles lgicos 0 y 1 a intervalos
variables de tiempo. Lo que se intenta es obtener un
impulso cuyo nivel alto tenga una anchura variable
(Duty Cycle) dentro del intervalo del perodo de
trabajo.

Para lograr el basculado de la patita de salida RC2/CCP1 se usa un comparador


que pone a 1 (Set) un flip-flop cuando el valor del registro PR2 coincide con la
parte alta del TMR2, momento en que el TMR2 toma el valor 00h. Luego el flip-
flop se resetea (se pone a 0) cuando otro comparador detecta la coincidencia del
valor existente en CCPR1H con el de la parte alta del TMR2. De esta manera,
variando los valores que se cargan en PR2 y en CCPR1L (que luego se
traspasa al CCPR1H) se vara el intervalo de tiempo en el que la patita de salida
est a 1 y a 0.
Cuando se trabaja con una precisin de 10 bits, los 2 bits CCP1CON<5:4> se
concatenan con los 8 de CCPR1L y, de la misma forma, los 8 bits de ms peso
del TMR2 se concatenan con los dos bits de menos peso del reloj interno,
haciendo que el TMR2 cuente cada Tosc en vez de cada 4*0sc
El tiempo que dura el perodo de la onda depende del valor cargado en PR2,
segn la frmula siguiente:

Cuando el valor del TMR2 coincide con el del PR2 suceden tres
acontecimientos:
1. Se borra el TMR2.
2. La patita RC2/CCP1 se pone a 1.
3. El valor de CCPR1L, que es el que determina la anchura del impulso, se
carga en CCPR1H.
El tiempo que la patita de salida est a nivel alto, que es la anchura del
impulso, depende del contenido cargado en CCPR1L y de los dos bits 5 y 4 del
CCP1CON, cuando se trabaja con una precisin de 10 bits.
El valor CCPR1L:CCP1CON<5:4> puede cargarse en cualquier momento, puesto
que el mismo no se traspasa a CCPRIH y se compara hasta que coincidan PR2 con
TMR2. En el modo PWM el registro CCPR1L slo puede ser ledo.
Los pasos a seguir para realizar la configuracin del modo PWM son los siguientes:
1. Asignar el perodo cargando el oportuno valor en PR2.
2. Asignar la anchura del pulso cargando el registro CCPR1L y los dos bits 5 y
4del CCP1CON.
3. Configurar la lnea RC2/CCP1 como salida.
4. Asignar el valor del predivisor y activar el TMR2 escribiendo en T2CON.
5. Configurar el Mdulo CCP1 en modo PWM.

You might also like