El mdulo CCP (Captura/Comparacin/PWM) es un perifrico que le permite medir y
controlar diferentes eventos. El modo de captura proporciona el acceso al estado actual de un registro que cambia su valor constantemente. En este caso, es el registro del temporizador Timer1. El modo de comparacin compara constantemente valores de dos registros. Uno de ellos es el registro del temporizador Timer1. Este circuito tambin le permite al usuario activar un evento externo despus de que haya expirado una cantidad de tiempo predeterminada. PWM (Pulse Width Modulation modulacin por ancho de pulsos) puede generar seales de frecuencia y de ciclo de trabajo variados por uno o ms pines de salida. El microcontrolador PIC16F887 dispone de dos mdulos CCP CCP1 y CCP2. Ambos son idnticos en modo normal de funcionamiento, mientras que las caractersticas del PWM mejorado estn disponibles slo en el modo CCP1. sta es la razn por la que en este captulo se describe detalladamente el funcionamiento del mdulo CCP1. Con respecto al CCP2, se presentarn slo las caractersticas que lo distinguen del CCP1. MDULO CCP1 Una parte central de este circuito es un registro CCPR1 de 16 bits que consiste en registros CCPR1L y CCOR1H. Se utiliza para capturar y comparar sus valores con los nmeros almacenados en el registro del temporizador Timer1 (TMR1H y TMR1L). Si est habilitado por software, puede ocurrir el reinicio del temporizador Timer1 al igualarse los valores en modo de Comparacin. Adems, el mdulo CCP1 puede generar seales PWM de frecuencia y de ciclo de trabajo variados.Los bits del registro CCP1CON estn en control del mdulo CCP1. CCP1 EN MODO DE CAPTURA En este modo, el registro del temporizador Timer1 (que consiste en los TMR1H y TMR1L) se copia al registro CCP1 (que consiste en los CCPR1H y CCPR1L) en las siguientes situaciones: Cada flanco ascendente (1 -> 0) en el pin RC2/CCP; Cada flanco descendente (0 -> 1) en el pin RC2/CCP1; Cada cuarto flanco ascendente (0 -> 1) en el pin RC2/CCP1; y Cada decimosexto flanco descendente (0 -> 1) en el pin RC2/CCP1. Una combinacin de cuatro bits (CCP1M3 CCP1M0) del registro de control determina cul de estos eventos causar transmisin de dato de 16 bits. Adems, se deben cumplir los siguientes requisitos:: El pin RC2/CCP1 debe estar configurado como entrada; y El Timer1 debe funcionar como temporizador o contador sncrono. El bit de bandera CCP1IF se pone a uno despus de acabar la captura. Si se pone a 1 el bit CCP1IE del registro PIE1, se producir una interrupcin. En caso de que el mdulo CCP1 est en modo de captura, puede producirse una interrupcin no deseada. Para evitarlo, antes de que ocurra un cambio en el registro de control se deben poner a 0 tanto el bit que habilita la interrupcin CCP1IE, como el bit de bandera CCP1IF. Las interrupciones no deseadas pueden producirse al cambiar el valor del pre-escalador. Para evitarlo, el mdulo CCP1 debe estar apagado temporalmente antes de cambiar el valor del pre-escalador. CCP1 EN MODO DE COMPARACIN En este modo, el valor almacenado en el registro CCP1 se compara constantemente al Pgina 1 Sin ttulo valor almacenado en el registro del temporizador Timer1. Al igualarse los valores, el estado lgico en el pin de salida puede ser cambiado, lo que depende del estado de bits en el registro de control (CCP1M3 CCP1M0). El bit de bandera CCP1IF se pone a uno simultneamente. Para poner el mdulo CCP1 en este modo de funcionamiento, se deben cumplir dos condiciones: El pin RC2/CCP1 debe estar configurado como salida; y El temporizador Timer1 debe estar sincronizado con el reloj interno. CCP1 EN MODO PWM Las seales de frecuencia y de ciclo de trabajo variados tienen una amplia gama de aplicaciones en automatizacin. Un ejemplo tpico es un circuito de control de potencia. Refirase a la siguiente figura. Si un cero lgico (0) indica un interruptor abierto y un uno lgico (1) indica un interruptor cerrado, la potencia elctrica que se transmite a los consumidores ser directamente proporcional a la duracin del pulso. Esta relacin se le denomina Ciclo de Trabajo. PERODO DE PWM El perodo de pulso de salida (T) se determina por el registro PR2 del temporizador Timer2. El perodo de PWM se puede calcular por la siguiente ecuacin: Perodo PWM = (PR2 +1) * 4Tosc * Valor de pre-escala del Timer2 SEl ciclo de trabajo de PWM se especifica al utilizar en total 10 bits: los ocho bits ms significativos del registro CCPR1L y los dos bits menos significativos adicionales del registro CCP1CON (DC1B1 y DC1B0). El resultado es un nmero de 10 bits dado por la siguiente frmula: Ancho de pulsos = (CCPR1L,DC1B1,DC1B0) * Tosc * Valor de pre-escala del Timer2 La RESOLUCIN DE PWM Una seal PWM no es nada ms que una secuencia de pulsos que varan su ciclo de trabajo. Para una frecuencia especfica (nmero de pulsos por segundo), hay un nmero limitado de combinaciones de ciclos de trabajo. Este nmero representa una resolucin medida en bits. Por ejemplo, si una resolucin es de 10 bits estarn disponibles 1024 ciclos de trabajo discretos; si una resolucin es de 8 bits estarn disponibles 256 ciclos de trabajo disretos etc. En este microcontrolador la resolucin es determinada por el registro PR2. El mximo valor se obtiene al usar el nmero FFh.guiente tabla muestra cmo generar las seales PWM de diferentes frecuencias cuando el microcontrolador utiliza un cristal de cuarzo de 20 MHz (Tosc=50nS).i el perodo de PWM (T) es conocido, es fcil determinar la frecuencia de seal F, porque estos dos valores estn relacionados por la ecuacin F=1/T. Registro CCP1CON P1M1, P1M0 PWM Output Configuration bits (bits de configuracin del modo PWM) El pin P1A es la entrada del mdulo de Captura/Comparacin en todos los modos, menos en modo PWM. Los pines P1B, P1C y P1D actan como los pines de E/S del puerto D. DC1B1, DC1B0 PWM Duty Cycle Least Significant bits (bits menos significativos del ciclo de trabajo de PWM) Se utilizan slo en el modo PWM y representan dos bits menos significativos de un nmero de 10 bits. Este nmero determina el ciclo de trabajo de la seal PWM. Los dems 8 bits se almacenan en el registro CCPR1L. CCP1M3 CCP1M0 (bits de seleccin de modo del mdulo CCP1) determina el modo del mdulo CCP1.