Todos los componentes de la familia PIC18Fxx20 incorporan cinco módulos CCP (captura/compa- ración/PWM). Las operaciones de todos ellos son idénticas, a excepción de un evento especial só- lo presente en CCP1 y CCP2.
Cada módulo CCP tiene asociado un registro de control (CCPxCON) y una pareja de registros de datos, compuesta por dos registros de 8 bits: CCPRxH:CCPRxL, donde ‘x’ se sustituye por el nú- mero del módulo. Todos los registros se pueden leer y escribir.
El registro CCPxCON con sus posibles valores se muestra en la Figura 16.32.
REGISTRO CCPxCON
— — DCxB1 DCxB0 CCPxM3 CCPxM2 CCPxM1 CCPxM0
7 0
Los módulos CCP utilizan los Temporizadores TMR1 o TMR3 para los modos de captura/com- paración, y TMR2 o TMR4 para el modo PWM. En la Figura 16.33 se muestran las configuracio- nes posibles.
Bits 7-6: No implementados. Se leen como ‘0’.
DCxB1-DCxB0: Bits más significativos (10-9) para PWM.
CCPxM3-CCPxM0: Bits de selección de modo del módulo CCPx.
0000 = Captura/Comparación/PWM deshabilitado (borra el módulo CCPx).
0001 = Reservado.
0010 = Modo comparación, activar.
0011 = Reservado.
0100 = Modo captura, cada flanco descendente.
0101 = Modo captura, cada flanco ascendente.
0110 = Modo captura, cada 4 flancos ascendentes.
0111 = Modo captura, cada 16 flancos ascendentes.
1000 = Modo comparación, pone a 1 el pin CCPx.
1001 = Modo comparación, pone a 0 el pin CCPx.
1010 = Modo comparación, genera interrupción por software.
1011 = Modo comparación, evento disparo especial. Se resetea TMR1 y TMR3 en CCP1 y CCP2.
11xx = Modo PWM.
Figura 16.32.Designación y misión de cada uno de los bits del registro CCPxCON.
Cuando se selecciona el modo de disparo por eventos especiales, se resetea el par de registros del temporizador, lo que hace que los módulos CCP sirvan como registros periódicos programables pa- ra los temporizadores. El módulo CCP2 puede además activar una conversión, para lo cual el con- versor ha debido ser habilitado previamente.
16.3.1. Modo captura
En el modo captura, CCPRxH:CCPRxL capturan el valor de 16 bits del registro TMR1 o del TMR3 cuando ocurre un evento en la patita asociada al módulo. Los eventos pueden ser alguno de los si- guientes:
Figura 16.33.Interconexión de los módulos CCP y los temporizadores.
●
● Cada flanco de subida.
●
● Cada flanco de bajada.
●
● Cada cuatro flancos de subida.
●
● Cada dieciséis flancos de subida.
El evento es seleccionado por los bits de control CCPxM3:CCPxM0 (CCPxCON<3:0>). Cuan- do la captura estỏ hecha, el seủalizador asociado CCPxIF se activa. Si ocurre otra captura antes de que sea leído el valor en los registros CCPRxH:CCPRxL, el antiguo valor capturado se sobrescribe por la nueva captura. Los temporizadores deben estar configurados en modo síncrono y la patita co- rrespondiente como entrada. En la Figura 16.34 se muestra el diagrama de bloques que explica la operación en modo captura.
16.3.2. Modo comparación
En modo comparación, el valor de los registros CCPRxH:CCPRxL es constantemente comparado con el valor del TMR1 o TMR3. Cuando coinciden, la patita correspondiente del módulo:
Figura 16.34.Diagrama de bloques simplificado de la operación del módulo en modo captura.
●
● Se pone a nivel alto.
●
● Se pone a nivel bajo.
●
● Cambia su nivel por el contrario al que tiene.
●
● Se mantiene sin cambio.
Los temporizadores deben estar configurados en modo síncrono y la patita correspondiente co- mo salida.
En la Figura 16.35 se muestra el diagrama de bloques que explica la operación en modo com- paración.
Figura 16.35.Diagrama de bloques simplificado de la operación del módulo en modo comparación.
16.3.3. Modo modulación de anchura de pulsos (PWM)
En el modo PWM, la patita correspondiente al módulo produce una salida PWM (Modulación de Anchura de Pulsos) de hasta una resolución de 10 bit. Como dicha patita es multiplexada con los da- tos de PORTC, se debe configurar como salida.
En la Figura 16.36 se muestra el diagrama de bloques que explica la operación en modo PWM.
Figura 16.36.Diagrama de bloques simplificado de la operación del módulo en modo PWM.
La Figura 16.37 presenta la totalidad de registros que intervienen en el funcionamiento de los módulos CCP.
Figura 16.37.Resumen de los bits de los registros que se utilizan en el manejo y programación de los módulos CCP (continúa).
NOMBRE BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 VALOR EN POR, BOR INTCON GIE/GIEH PEIE/GIEL INT0IE INT0IE RBIE TMR0IF INT0IF RBIF 0000 0000
RCON IPEN — — IP TO PD POR BOR 0--1 11qq
IPR3 — — RC2IP TX2IP TMR4IP CCP5IP CCP4IP CCP3IP --11 1111
PIR3 — — RC2IF TX2IF TMR4IF CCP5IF CCP4IF CCP3IF --00 0000
PIE3 — — RC2IE TX2IE TMR4IE CCP5IE CCP4IE CCP3IE --00 0000
IPR2 — CMIP — EEIP BCLIP LVDIP TMR3IP CCP2IP -1-1 1111
PIR2 — CMIF — EEIF BCLIF LVDIF TMR3IF CCP2IF -0-0 0000
PIE2 — CMIE — EEIE BCLIE LVDIE TMR3IE CCP2IE -0-0 0000