Anda di halaman 1dari 18

MECATRONICA

SISTEMAS MICROCONTROLADOS

SISTEMAS MICROCONTROLADOS
Captulo 10
Mdulo Compara Captura PWM (CCP)
En esta familia encontramos un mdulo CCP mejorado y un CCP (siendo CCP1 y CCP2 respectivamente) los dos mdulos son idnticos salvo el caso de trabajo en modo PWM, los mdulos contienen un registro de 16 bits que puede actuar en los siguientes modos: Modo de captura. Modo de comparacin. Modo PWM. Modo PWM extendido.

Cada uno de los registros CCP tiene asociados tres registros: CCPxCON: Registro de control del mdulo CCPx. CCPRxH: Byte alto del registro de 16 bits. CCPRxL: Byte bajo del registro de 16 bits. CCPx: pin.

10.1 Modulo ECCP.


El mdulo CCP mejorado es un perifrico trabajar en distintas funciones, En modo captura se puede capturar el tiempo de duracin de un evento, en modo compara se puede saber el nmero de veces que ha ocurrido un evento cuando han ocurrido un numero de ciclos predeterminados. En modo PWM se puede generar una seal con modulacin por ancho de pulso y tambin podemos variar la frecuencia y el ciclo til.

Los TIMERs asociados a cada modo de funcionamiento son los siguientes:

155

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

El registro de control CCP1CON consta de los siguientes bits:

bit 7:6 bit 5:4

Bits no implementados: Se leen como 0. DCxB1:DCxB0: bit1 y bit0 del Duty Cycle del PWM. Modo captura: No se usa Modo comparacin: No se usa. Modo PWM: Son los dos bits menos significativos de los 10 bits que se utilizan para el Duty Cycle del PWM. Los ocho bits superiores (DCx9:DCx2) del Duty Cycle se encuentran en CCPRxL

bit 3:0

CCP1M3:CCP1M0: Bits de seleccin del modo ECCP. 0000 = Captura/Comparacin/PWM apagado (reset del Mdulo ECCP). 0001=no usado 0010=Modo compara, la salida cambia cuando se produzca la igualacin. (CCP1F =1) 0011=no usado 0100 = Modo de captura, cada flanco de bajada. 0101 = Modo de captura, cada flanco de subida. 0110 = Modo de captura, cada 4 flancos de subida. 0111 = Modo de captura, cada 16 flancos de subida. 1000 = Modo de comparacin, inicializar el pin CCP en bajo, y forzarlo a alto cuando se produzca la igualacin (CCP1F =1). 1001 = Modo de comparacin, inicializar el pin CCP en alto, y forzarlo a bajo cuando se produzca la igualacin (CCP1F =1). 1010 = Modo de comparacin, se genera una interrupcin, el pin CCP no se ve afectado (CCP1F =1).. 1011 = Modo de comparacin, provoca acontecimientos especiales (CCP2IF=1, TMR1 se resetea y la conversin A/D inicia si el modulo est activo. CCP2 pin no es afectado).

156

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS


1100= Modo PWM, P1A, P1C activo-alto; P1B, P1D activo-alto 1101= Modo PWM, P1A, P1C activo-alto; P1B, P1D activo-bajo 1110= Modo PWM, P1A, P1C activo-bajo; P1B, P1D activo-alto 1111 = Modo PWM, P1A, P1C activo-bajo; P1B, P1D activo-bajo

10.2 Mdulo CCP.


Tienen las mismas opciones de trabajo que el mdulo mejorado y se configura con el registro CCP2CON:

bit 7:6 bit 5:4

Bits no implementados: Se leen como 0. DC2B1:DC2B0: bit1 y bit0 del Duty Cycle del PWM. Modo captura: No se usa Modo comparacin: No se usa. Modo PWM: Son los dos bits menos significativos de los 10 bits que se utilizan para el Duty Cycle del PWM. Los ocho bits superiores (DC29:DC22) del Duty Cycle se encuentran en CCPR2L

bit 3:0

CCPxM3:CCPxM0: Bits de seleccin del modo ECCP. 0000 = Captura/Comparacin/PWM apagado (reset del Mdulo ECCP). 0001=no usado 0010=no usado 0011=no usado 0100 = Modo de captura, cada flanco de bajada. 0101 = Modo de captura, cada flanco de subida. 0110 = Modo de captura, cada 4 flancos de subida. 0111 = Modo de captura, cada 16 flancos de subida. 1000 = Modo de comparacin, inicializar el pin CCP en bajo, y forzarlo a alto cuando se produzca la igualacin (CCP1F =1).

157

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

1001 = Modo de comparacin, inicializar el pin CCP en alto, y forzarlo a bajo cuando se produzca la igualacin (CCP1F =1). 1010 = Modo de comparacin, se genera una interrupcin, el pin CCP no se ve afectado (CCP1F =1).. 1011 = Modo de comparacin, provoca acontecimientos especiales (CCP2IF=1, TMR1 se resetea y la conversin A/D inicia si el modulo est activo. CCP2 pin no es afectado). 11xx = Modo PWM.

10.3 Modo de captura.


En el modo de captura CCPRxH:CCPRxL capturan los 16 bits del registro TMR1 cuando ocurre un evento en el pin CCPx. Los posibles eventos son: Flanco de bajada. Flanco de subida. 4 flancos de subida. 16 flancos de subida. Estos eventos se seleccionan con los bits CCPxM3:CCPxM0 (CCPxCON<3:0>). Debido a que se trabaja con el TMR1, es necesario que ste funcione como temporizador o como contador en modo sncrono. En modo asncrono no funcionara. En el momento de la captura en bit CCPxIF (PIR) se activa, produciendo una interrupcin en el caso de que CCPxIE (PIE), GIE y PEIE estn activados tambin. La Bandera ha de ser borrado por software. Si sucede otra captura antes de haber ledo el registro CCPRx, el valor de la captura previa se habr perdido. En la figura 10.1 se puede ver el diagrama de bloques del mdulo CCPx en modo Captura.

158

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Figura 10.1 Diagrama de bloques en el modo captura.

En este caso el pin CCPx tiene que estar configurado a travs del TRISC como entrada. Si estuviese como salida una escritura en el puerto producira una condicin de captura. El predivisor se puede utilizar para obtener una resolucin media ms exacta sobre frecuencias de entrada constantes. Por ejemplo con un predivisor de 1:16 la resolucin efectiva es de ciclo mquina/16, mientras que sin predivisor es de ciclo de mquina. Cuando el mdulo CCP se apaga o el CCP no est en modo captura, el contador del predivisor se borra. Para cambiar el valor del predivisor habr que apagar antes el mdulo y luego modificarlo, ya que si no se puede producir una interrupcin. El modo de captura se puede usar para realizar clculos de tiempos entre varios eventos. Cuando el dispositivo se encuentra en modo de reposo y aparece en evento externo, el mdulo produce la interrupcin que despierta al dispositivo, pero el registro de captura no se actualiza, ya que el TMR1 no funciona, y el valor cargado carecera de significado.

10.4 Modo de comparacin.


En este modo los 16 bits del registro CCPRx son comparados constantemente con el temporizador TMR1. Cuando ambos valores son iguales en el pin CCPx pueden pasar las siguientes cosas: Se pone a valor alto. Se pone a valor bajo. No cambia. La accin de pin se controla con los pines de control CCPxM3:CCPxM0 (CCPxCON<3:0>). Adems en cualquier caso se activa la bandera CCPxIF, que producir la interrupcin en caso de que sta est habilitada. Para el funcionamiento en

159

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

este modo el pin CCPx se ha de configurar como salida mediante el TRIS correspondiente. En la figura 10.2 muestra el diagrama de bloques del mdulo CCP en modo de comparacin.

Figura 10.2 Diagrama de bloque en el modo de comparacin.

Existe un modo especial que produce un trigger especial, el cual resetea el registro TMR1 (los 16 bits), el cual puede ser utilizado como un mdulo temporizador. Adems en algunos modelos este trigger dispara la conversin A/D.

10.5 Modo PWM.


El modo de modulacin por anchura de pulso (Pulse Width Modiulation) se utiliza para atacar elementos continuos con seales discretas. En la figura 10.4 se puede ver el diagrama de bloques simplificado del mdulo PWM, y en la figura 10.3 la seal de salida de ste mdulo. Con este mdulo se puede obtener una resolucin de salida de hasta 10 bits. Para que este mdulo funcione correctamente el pin tiene que estar configurado como salida, mediante el TRIS correspondiente.

160

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Figura 410.3Seal PWM.

Figura 10.4 Diagrama de bloques simplificado del mdulo PWM.

La generacin de la secuencia PWM se obtiene de la siguiente forma: En PR2 se escribe el valor del periodo de la seal, el cual se puede calcular con la siguiente expresin. PWMT = (PR2 + 1) 4 TOSC (Valor del Predivisor del TMR2 Cuando TMR2 = PR2: TMR2 se borra. (10.1)

161

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

El pin CCPx se pone a 1 (Excepto si el Duty Cycle es 0). El valor de CCPRxL junto a CCPxCON<5:4>, se carga sobre CCPRxH, de forma que se carga el valor del Duty Cycle. Como se puede ver, esto nos da una resolucin de 10 bits, representados por DCxB9:DCxB0. Para realizar el clculo del Duty Cycle se utiliza la siguiente ecuacin:

PWMDC. = (DCxB9:DCxB0) TOSC (Predivisor del TMR2)

(10.2)

Cuando CCPRxH + 2bits = TMR2 + 2bits Qclock (o dos bits del predivisor), la salida CCPx se pone a 0, terminando con el Duty Cycle. No todas las resoluciones estn permitidas para una frecuencia determinada de PWM. La resolucin mxima en bits viene dada por la expresin:

FOSC log FPWM bits Resolucin log (2)


La resolucin mnima depender del predivisor asociado al TMR2, tal y como se muestra en la tabla 4.1. Valor del Predivisor 1 4 16 T2CKPS1:T2CHPS0 00 01 1X Mnima resolucin en tiempo TOSC TCY 4 TCY

TABLA 10.1 Mnimo tiempo del duty cycle en funcin del valor del predivisor. Como ejemplo se realiza el clculo del periodo de una seal PWM, el Duty Cycle, y su resolucin. El periodo, la resolucin y el ciclo til se configuran en los siguientes registros: PR2 T2CON CCPRxL CCPxCON

162

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Se desea un PWM con una frecuencia de 78.125 KHz, siendo FOSC= 20 MHz y el predivisor del TMR2=1.

Para cualquier valor mayor de 255 se producir un Duty Cycle del 100%. Para terminar con este modo de operacin se describen los pasos a seguir para configurar un PWM. Estos son: Establecer el periodo PWM escribiendo el registro PR2. Establecer el Duty Cycle escribiendo los bits DCxB9:DCxB0. Configurar CCPx como salida. Establecer el predivisor del TMR2 y habilitarlo escribiendo en T2CON. Configurar el mdulo CCP para la operacin en modo PWM. Ejemplos de resolucin para 20MHz

Ejemplos de resolucin para 8MHz

163

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

10.6 Modo PWM extendido.


El mdulo CCP1 es el nico que se puede poner en modo mejorado. Este modo bsicamente no difiere del modo normal del CCP1 y la mejora se refiere a la transmisin de la seal PWM a los pines de salida. Por qu es eso tan importante? Por el uso cada vez ms frecuente de los microcontroladores en los sistemas de control de motores elctricos. Aqu no vamos a describir estos dispositivos, sin embrago si tiene la oportunidad de trabajar en el desarrollo de los dispositivos similares, reconocer los elementos que se utilizaban hasta hace poco como los perifricos. Decimos que se utilizaban porque todos estos elementos ahora estn integrados en el microcontrolador y pueden funcionar en varios modos diferentes.

Figura 10.5 Salidas del EPWM.

MODO PWM CON UNA SALIDA El modo PWM con una salida est habilitado slo en el caso de que se pongan a cero los bits P1M1 y P1M0 en el registro CCP1CON. En tal caso, una seal PWM puede estar disponible simultneamente en como mximo cuatro diferentes pines de salida. Adems, la secuencia de seales PWM puede aparecer en forma de onda bsica o invertida. La distribucin de seales depende de los bits del registro PSTRCON, mientras que su polaridad depende de los bits CCP1M1 y CCP1M0 del registro CCP1CON. Si se utiliza una salida invertida, los pines activos a nivel bajo y los pulsos que tienen la misma forma de onda se generan siempre en parejas: en los pines P1A y P1C as como en los pines P1B y P1D, respectivamente.

164

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

MODO DE MEDIO-PUENTE En cuanto al modo de medio-puente, la seal PWM es una salida en el pin P1A, mientras que a la vez la seal complementaria PWM es una salida en el pin P1B. Estos pulsos activan a los controladores MOSFET en modo de Medio-Puente que habilitan/deshabilitan el flujo de corriente por el dispositivo. En este modo es muy peligroso encender los controladores MOSFET simultneamente (el cortocircuito producido en aquel momento sera fatal). Para evitarlo, es necesario proporcionar un tiempo muerto entre encender y apagar los controladores. Este tiempo muerto est marcado con 'td' (time delay) en la siguiente figura. El problema se resuelve al utilizar los bits PDC0-PDC6 del registro PWM1CON.

Figura 10.6 Formas de onda del td.

Como se muestra en la siguiente figura, el modo de medio-puente se puede utilizar para activar los controladores MOSFET en la configuracin Puente completo:

165

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Figura 10.7 Configuracin de medio puente y puente completo.

MODO PUENTE-COMPLETO Todos los cuatro pines se utilizan como salidas en el modo Puente completo. En la prctica, este modo es utiliza con frecuencia para activar los motores, lo que proporciona un control simple y completo de velocidad y direccin de rotacin. Hay dos configuraciones de este modo: Full Bridge-Forward (puente completo con salida directa) y Full Bridge-Reverse (puente completo con salida inversa).

166

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Figura 10.8 Ejemplo de una aplicacin a puente completo.

CONFIGURACIN PUENTE COMPLETO - DIRECTO En modo Directo ocurre lo siguiente:


Un uno lgico (1) aparece en el pin P1A (pin est activo a nivel alto); Secuencia de pulsos aparece en el pin P1D; y Un cero lgico (0) en los pines P1B y P1C (pines estn activos a nivel bajo).

La siguiente figura muestra el estado de los pines P1A-P1D durante un ciclo PWM completo:

167

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Figura 10.8 Formas de onda trabajando con inversin de giro.

CONFIGURACIN PUENTE COMPLETO - INVERSO Lo similar ocurre en modo Inverso, a menos que estos pines dispongan de funciones diferentes:

Un uno lgico (1) aparece en el pin P1C (pin est activo a nivel alto); Secuencia de pulsos aparece en el pin P1B; y Un cero lgico (0) aparece en los pines P1A y P1D (pines estn activos a nivel bajo).

168

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Registro PWM1CON

bit 7

PRSEN: PWM Restart Enable bit (Bit de habilitacin del reinicio automtico del PWM). 1= Despus de un apagado automtico, el mdulo PWM se reinicia automticamente, y el bit ECCPASE del registro ECCPAS se pone a cero. 0 = Para iniciar el mdulo PWM despus de un apagado automtico, el bit ECCPASE debe ponerse a cero por software.

bit 6-0

PDC6 - PDC0: PWM Delay Count bits (Bits de configuracin del tiempo muerto en el modo PWM) PDCn=El nmero binario de 7 dgitos determina el nmero de ciclos de instrucciones de Fosc/4 (4*Tosc) aadidos como tiempo muerto al activar los pines de entrada PWM.

Registro PSTRCON

bit 7-5 bit 4

Bits no implementados: Se leen como 0. STRSYNC : Steering Sync bit (bit de sincronizacin de direccin) determina el momento de la direccin de los pulsos de PWM. 1 =La direccin ocurre despus de que el registro PSTRCION haya sido cambiado, slo si se ha completado la forma de onda del PWM. 0 = La direccin ocurre despus de que el registro PSTRCION haya sido cambiado. La seal PWM en la salida del pin ser cambiada inmediatamente sin reparar en si el ciclo anterior ha sido completado. Este procedimiento es til cuando es necesario detener la transmisin de una seal PWM del pin.

bit 3

STRD : Steering Enable bit D (bit D de habilitacin de direccin) determina la funcin del pin P1D. Unidad Educativa Tcnico Salesiano Ing. Pablo Rodas

169

MECATRONICA SISTEMAS MICROCONTROLADOS

1 = El pin P1D tiene la forma de onda del PWM con polaridad determinada por los bits CCP1M0 y CCP1M1. 0 =Pin est configurado como entrada/salida general del puerto PORTD. bit 2 STRC: Steering Enable bit C (bit C de habilitacin de direccin) determina la funcin del pin P1C. 1 = El pin P1C tiene la forma de onda del PWM con polaridad determinada por los bits CCP1M0 y CCP1M1 0 = Pin est configurado como entrada/salida general del puerto PORTD. bit 1 STRB: Steering Enable bit B (bit B de habilitacin de direccin) determina la funcin del pin P1B. 1 =El pin P1B tiene la forma de onda del PWM con polaridad determinada por los bits CCP1M0 y CCP1M1. 0 = Pin est configurado como entrada/salida general del puerto PORTD. bit 0 STRA: Steering Enable bit A (bit A de habilitacin de direccin) determina la funcin del pin P1A. 1 =El pin P1A tiene la forma de onda del PWM con polaridad determinada por los bits CCP1M0 y CCP1M1. 0 = Pin est configurado como entrada/salida general del puerto PORTC. Registro ECCPAS

ECCPASE: ECCP Auto-Shutdown Event Status bit (bit de estado del apagado bit 7 automtico) indica si ha ocurrido el apagado automtico del mdulo CCP (estado de Apagado): 1 = Mdulo CCP est en estado de Apagado. 0 = Mdulo CCP funciona normalmente. ECCPAS2 - ECCPAS0: ECCP Auto-Shutdown Source Select bits (Bits de bit 6-4 seleccin de la fuente de apagado automtico) selecciona la fuente de apagado automtico. 0 0 0 = Estado del apagado deshabilitado Ing. Pablo Rodas

170

Unidad Educativa Tcnico Salesiano

MECATRONICA SISTEMAS MICROCONTROLADOS


0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 = Cambio de salida del comparador C1 = Cambio de salida del comparador C2 = Cambio de salidas de los comparadores C1 y C2 = Cero lgico (0) en el pin INT = Cero lgico (0) en el pin INT o cambio de salida del comparador C1 = Cero lgico (0) en el pin INT o cambio de salida del comparador C2

= Cero lgico (0) en el pin INT o cambio de salidas de los comparadores C1 y C2

PSSAC1, PSSAC0: Pins P1A, P1C Shutdown State Control bits (Bits de bit 3-2 configuracin de los pines P1A y P1C en modo de apagado) define el estado lgico de los pines P1A y P1C cuando el mdulo CCP est en el estado de apagado 0 0 1 0 1 X P1A, P1C = 0 P1A, P1C = 1 P1A, P1C = Alta impedancia (Tri-estado) Pins P1B, P1D Shutdown State Control bits (Bits de

PSSBD1, PSSBD0: bit 1-0

configuracin de los pines P1B y P1D en modo de apagado) define el estado lgico de los pines P1B y P1D cuando el mdulo CCP est en el estado de apagado. 0 0 1 0 1 X P1B y P1D= 0 P1B y P1D = 1 P1B y P1D = Alta impedancia (Tri-estado)

171

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

REGISTROS ASOCIADOS A COMPARA, CAPTURA y TIMER 1

REGISTROS ASOCIADOS AL PWM y TIMER 2

172

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

Anda mungkin juga menyukai