microcontroladores 10 pwm

18
MECATRONICA SISTEMAS MICROCONTROLADOS 155 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas SISTEMAS MICROCONTROLADOS Capítulo 10 Módulo Compara Captura PWM (CCP) En esta familia encontramos un módulo CCP mejorado y un CCP (siendo CCP1 y CCP2 respectivamente) los dos módulos son idénticos salvo el caso de trabajo en modo PWM, los módulos contienen un registro de 16 bits que puede actuar en los siguientes modos: Modo de captura. Modo de comparación. Modo PWM. Modo PWM extendido. Cada uno de los registros CCP tiene asociados tres registros: CCPxCON: Registro de control del módulo CCPx. CCPRxH: Byte alto del registro de 16 bits. CCPRxL: Byte bajo del registro de 16 bits. CCPx: pin. 10.1 Modulo ECCP. El módulo CCP mejorado es un periférico trabajar en distintas funciones, En modo captura se puede capturar el tiempo de duración de un evento, en modo compara se puede saber el número de veces que ha ocurrido un evento cuando han ocurrido un numero de ciclos predeterminados. En modo PWM se puede generar una señal con modulación por ancho de pulso y también podemos variar la frecuencia y el ciclo útil. Los TIMERs asociados a cada modo de funcionamiento son los siguientes:

Upload: pablo-rodas

Post on 04-Aug-2015

211 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

155 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

SISTEMAS MICROCONTROLADOS

Capítulo 10

Módulo Compara Captura PWM (CCP)

En esta familia encontramos un módulo CCP mejorado y un CCP (siendo CCP1 y CCP2 respectivamente) los dos módulos son idénticos salvo el caso de trabajo en modo PWM, los módulos contienen un registro de 16 bits que puede actuar en los siguientes modos:

Modo de captura.

Modo de comparación.

Modo PWM.

Modo PWM extendido.

Cada uno de los registros CCP tiene asociados tres registros:

CCPxCON: Registro de control del módulo CCPx.

CCPRxH: Byte alto del registro de 16 bits.

CCPRxL: Byte bajo del registro de 16 bits.

CCPx: pin.

10.1 Modulo ECCP.

El módulo CCP mejorado es un periférico trabajar en distintas funciones, En modo captura se puede capturar el tiempo de duración de un evento, en modo compara se puede saber el número de veces que ha ocurrido un evento cuando han ocurrido un numero de ciclos predeterminados. En modo PWM se puede generar una señal con modulación por ancho de pulso y también podemos variar la frecuencia y el ciclo útil.

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

Page 2: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

156 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

El registro de control CCP1CON consta de los siguientes bits:

bit 7:6 Bits no implementados: Se leen como ‘0’.

bit 5:4 DCxB1:DCxB0: bit1 y bit0 del Duty Cycle del PWM.

Modo captura:

No se usa

Modo comparación:

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 selección del modo ECCP.

0000 = Captura/Comparación/PWM apagado (reset del Módulo ECCP).

0001=no usado

0010=Modo compara, la salida cambia cuando se produzca la igualación.

(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 comparación, inicializar el pin CCP en bajo, y forzarlo a alto

cuando se produzca la igualación (CCP1F =1).

1001 = Modo de comparación, inicializar el pin CCP en alto, y forzarlo a bajo

cuando se produzca la igualación (CCP1F =1).

1010 = Modo de comparación, se genera una interrupción, el pin CCP no se ve

afectado (CCP1F =1)..

1011 = Modo de comparación, provoca acontecimientos especiales (CCP2IF=1,

TMR1 se resetea y la conversión A/D inicia si el modulo está activo. CCP2 pin

no es afectado).

Page 3: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

157 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

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 Módulo CCP.

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

bit 7:6 Bits no implementados: Se leen como ‘0’.

bit 5:4 DC2B1:DC2B0: bit1 y bit0 del Duty Cycle del PWM.

Modo captura:

No se usa

Modo comparación:

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 selección del modo ECCP.

0000 = Captura/Comparación/PWM apagado (reset del Módulo 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 comparación, inicializar el pin CCP en bajo, y forzarlo a alto

cuando se produzca la igualación (CCP1F =1).

Page 4: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

158 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

1001 = Modo de comparación, inicializar el pin CCP en alto, y forzarlo a bajo

cuando se produzca la igualación (CCP1F =1).

1010 = Modo de comparación, se genera una interrupción, el pin CCP no se ve

afectado (CCP1F =1)..

1011 = Modo de comparación, provoca acontecimientos especiales (CCP2IF=1,

TMR1 se resetea y la conversión 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 síncrono. En modo asíncrono no funcionaría.

En el momento de la captura en bit CCPxIF (PIR) se activa, produciendo una interrupción en el caso de que CCPxIE (PIE), GIE y PEIE estén activados también. La Bandera ha de ser borrado por software. Si sucede otra captura antes de haber leído 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 módulo CCPx en modo Captura.

Page 5: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

159 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 10.1 Diagrama de bloques en el modo captura.

En este caso el pin CCPx tiene que estar configurado a través del TRISC como entrada. Si estuviese como salida una escritura en el puerto produciría una condición de captura.

El predivisor se puede utilizar para obtener una resolución media más exacta sobre frecuencias de entrada constantes. Por ejemplo con un predivisor de 1:16 la resolución efectiva es de ciclo máquina/16, mientras que sin predivisor es de ciclo de máquina. Cuando el módulo 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 módulo y luego modificarlo, ya que si no se puede producir una interrupción. El modo de captura se puede usar para realizar cálculos de tiempos entre varios eventos.

Cuando el dispositivo se encuentra en modo de reposo y aparece en evento externo, el módulo produce la interrupción que despierta al dispositivo, pero el registro de captura no se actualiza, ya que el TMR1 no funciona, y el valor cargado carecería de significado.

10.4 Modo de comparación.

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 acción de pin se controla con los pines de control CCPxM3:CCPxM0 (CCPxCON<3:0>). Además en cualquier caso se activa la bandera CCPxIF, que producirá la interrupción en caso de que ésta esté habilitada. Para el funcionamiento en

Page 6: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

160 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

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 módulo CCP en modo de comparación.

Figura 10.2 Diagrama de bloque en el modo de comparación.

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 módulo temporizador. Además en algunos modelos este trigger dispara la conversión A/D.

10.5 Modo PWM.

El modo de modulación por anchura de pulso (Pulse Width Modiulation) se utiliza para atacar elementos continuos con señales discretas.

En la figura 10.4 se puede ver el diagrama de bloques simplificado del módulo PWM, y en la figura 10.3 la señal de salida de éste módulo.

Con este módulo se puede obtener una resolución de salida de hasta 10 bits. Para que este módulo funcione correctamente el pin tiene que estar configurado como salida, mediante el TRIS correspondiente.

Page 7: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

161 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 410.3Señal PWM.

Figura 10.4 Diagrama de bloques simplificado del módulo PWM.

La generación de la secuencia PWM se obtiene de la siguiente forma:

En PR2 se escribe el valor del periodo de la señal, el cual se puede calcular con la siguiente expresión.

PWMT = (PR2 + 1) · 4 · TOSC · (Valor del Predivisor del TMR2 (10.1)

Cuando TMR2 = PR2:

TMR2 se borra.

Page 8: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

162 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

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 resolución de 10 bits, representados por DCxB9:DCxB0. Para realizar el cálculo del Duty Cycle se utiliza la siguiente ecuación:

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 están permitidas para una frecuencia determinada de PWM. La resolución máxima en bits viene dada por la expresión:

logResolución

log (2)

OSC

PWM

FF

bits

La resolución mínima dependerá del predivisor asociado al TMR2, tal y como se muestra en la tabla 4.1.

Valor del Predivisor T2CKPS1:T2CHPS0 Mínima resolución en tiempo 1 00 TOSC 4 01 TCY 16 1X 4 TCY

TABLA 10.1 Mínimo tiempo del duty cycle en función del valor del predivisor.

Como ejemplo se realiza el cálculo del periodo de una señal PWM, el Duty Cycle, y su resolución.

El periodo, la resolución y el ciclo útil se configuran en los siguientes registros:

PR2

T2CON

CCPRxL

CCPxCON

Page 9: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

163 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

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 operación 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 módulo CCP para la operación en modo PWM.

Ejemplos de resolución para 20MHz

Ejemplos de resolución para 8MHz

Page 10: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

164 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

10.6 Modo PWM extendido.

El módulo CCP1 es el único que se puede poner en modo mejorado. Este modo básicamente no difiere del modo normal del CCP1 y la mejora se refiere a la transmisión de la señal PWM a los pines de salida. ¿Por qué es eso tan importante? Por el uso cada vez más frecuente de los microcontroladores en los sistemas de control de motores eléctricos. 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 periféricos. Decimos que se utilizaban porque todos estos elementos ahora están 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 sólo en el caso de que se pongan a cero los bits P1M1 y P1M0 en el registro CCP1CON. En tal caso, una señal PWM puede estar disponible simultáneamente en como máximo cuatro diferentes pines de salida. Además, la secuencia de señales PWM puede aparecer en forma de onda básica o invertida. La distribución de señales 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.

Page 11: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

165 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

MODO DE MEDIO-PUENTE

En cuanto al modo de medio-puente, la señal PWM es una salida en el pin P1A, mientras que a la vez la señal 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 simultáneamente

(el cortocircuito producido en aquel momento sería 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 configuración Puente completo:

Page 12: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

166 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 10.7 Configuración de medio puente y puente completo.

MODO PUENTE-COMPLETO

Todos los cuatro pines se utilizan como salidas en el modo Puente completo. En la

práctica, este modo es utiliza con frecuencia para activar los motores, lo que

proporciona un control simple y completo de velocidad y dirección de rotación. Hay dos

configuraciones de este modo: Full Bridge-Forward (puente completo con salida

directa) y Full Bridge-Reverse (puente completo con salida inversa).

Page 13: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

167 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 10.8 Ejemplo de una aplicación a puente completo.

CONFIGURACIÓN PUENTE COMPLETO - DIRECTO

En modo Directo ocurre lo siguiente:

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

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

completo:

Page 14: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

168 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Figura 10.8 Formas de onda trabajando con inversión de giro.

CONFIGURACIÓN PUENTE COMPLETO - INVERSO

Lo similar ocurre en modo Inverso, a menos que estos pines dispongan de funciones

diferentes:

Un uno lógico (1) aparece en el pin P1C (pin está activo a nivel alto); Secuencia de pulsos aparece en el pin P1B; y Un cero lógico (0) aparece en los pines P1A y P1D (pines están activos a nivel

bajo).

Page 15: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

169 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

Registro PWM1CON

bit 7 PRSEN: PWM Restart Enable bit (Bit de habilitación del reinicio automático del PWM).

1= Después de un apagado automático, el módulo PWM se reinicia

automáticamente, y el bit ECCPASE del registro ECCPAS se pone a cero.

0 = Para iniciar el módulo PWM después de un apagado automático, el bit

ECCPASE debe ponerse a cero por software.

bit 6-0 PDC6 - PDC0: PWM Delay Count bits (Bits de configuración del tiempo

muerto en el modo PWM)

PDCn=El número binario de 7 dígitos determina el número de ciclos de

instrucciones de Fosc/4 (4*Tosc) añadidos como tiempo muerto al activar los

pines de entrada PWM.

Registro PSTRCON

bit 7-5 Bits no implementados: Se leen como ‘0’.

bit 4 STRSYNC : Steering Sync bit (bit de sincronización de dirección) determina el

momento de la dirección de los pulsos de PWM.

1 =La dirección ocurre después de que el registro PSTRCION haya sido

cambiado, sólo si se ha completado la forma de onda del PWM.

0 = La dirección ocurre después de que el registro PSTRCION haya sido

cambiado. La señal 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 transmisión de una señal PWM del pin.

bit 3 STRD : Steering Enable bit D (bit D de habilitación de dirección) determina la

función del pin P1D.

Page 16: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

170 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

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 habilitación de dirección) determina la

función 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 habilitación de dirección) determina la

función 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 habilitación de dirección) determina la

función 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

bit 7

ECCPASE: ECCP Auto-Shutdown Event Status bit (bit de estado del apagado

automático) indica si ha ocurrido el apagado automático del módulo CCP

(estado de Apagado):

1 = Módulo CCP está en estado de Apagado.

0 = Módulo CCP funciona normalmente.

bit 6-4

ECCPAS2 - ECCPAS0: ECCP Auto-Shutdown Source Select bits (Bits de

selección de la fuente de apagado automático) selecciona la fuente de apagado

automático.

0 0 0 = Estado del apagado deshabilitado

Page 17: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

171 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

0 0 1 = Cambio de salida del comparador C1

0 1 0 = Cambio de salida del comparador C2

0 1 1 = Cambio de salidas de los comparadores C1 y C2

1 0 0 = Cero lógico (0) en el pin INT

1 0 1 = Cero lógico (0) en el pin INT o cambio de salida del comparador C1

1 1 0 = Cero lógico (0) en el pin INT o cambio de salida del comparador C2

1 1 1 = Cero lógico (0) en el pin INT o cambio de salidas de los comparadores C1 y C2

bit 3-2

PSSAC1, PSSAC0: Pins P1A, P1C Shutdown State Control bits (Bits de

configuración de los pines P1A y P1C en modo de apagado) define el estado

lógico de los pines P1A y P1C cuando el módulo CCP está en el estado de

apagado

0 0 P1A, P1C = 0

0 1 P1A, P1C = 1

1 X P1A, P1C = Alta impedancia (Tri-estado)

bit 1-0

PSSBD1, PSSBD0: Pins P1B, P1D Shutdown State Control bits (Bits de

configuración de los pines P1B y P1D en modo de apagado) define el estado

lógico de los pines P1B y P1D cuando el módulo CCP está en el estado de

apagado.

0 0 P1B y P1D= 0

0 1 P1B y P1D = 1

1 X P1B y P1D = Alta impedancia (Tri-estado)

Page 18: MICROCONTROLADORES 10 pwm

MECATRONICASISTEMASMICROCONTROLADOS

172 Unidad Educativa Técnico Salesiano Ing. Pablo Rodas

REGISTROS ASOCIADOS A COMPARA, CAPTURA y TIMER 1

REGISTROS ASOCIADOS AL PWM y TIMER 2