35
MÓDULO CCP (CAPTURA/COMPARACIÓN/PWM) IUT Cumaná Prof. Luis Zurita MICROCONTROLADORES II ¿PARA QUÉ PUEDEN SERVIR?

MÓDULO CCP CAPTURACOMPARACIÓNPWM

Embed Size (px)

DESCRIPTION

pic16f877

Citation preview

Page 1: MÓDULO CCP CAPTURACOMPARACIÓNPWM

MÓDULO CCP(CAPTURA/COMPARACIÓN/PWM)

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

¿PARA QUÉ PUEDEN SERVIR?

Page 2: MÓDULO CCP CAPTURACOMPARACIÓNPWM

(PIC16F84) CAUSAS DE INTERRUPCIÓN

1. Activación del pin RB0/INT2. Desbordamiento del TMR03. Cambio de estado de una de los 4 pines de más peso

(RB7:RB4) del puerto B4. Finalización de la escritura en la EEPROM de datos

REGISTRO INTCON

IUT Cumaná

Prof. Luis ZuritaMICROCONTROLADORES II

Page 3: MÓDULO CCP CAPTURACOMPARACIÓNPWM

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

INTERRUCCIONES PIC16F87X

CLÁSICAS PIC16F84 NUEVAS

GIE PEIE TOIE INTE RBIE TOIF INTF RBIF

PSPIE

ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE

PIE1

PIE2

--- 0 --- EEIE BCLIE -- -- CCP2IE

PIR1

PIR2

Page 4: MÓDULO CCP CAPTURACOMPARACIÓNPWM

TIMER 1

Características básicas:1. Es de 16 bits.2. Puede actuar como temporizador o como

contador bit (TMR1CS).3. Se puede leer y escribir en los registros TMR1H,

TMR1L.4. Puede pararse o habilitarse mediante el bit

TMR1ON.5. Tiene un pre-divisor programable por software.6. El oscilador de bajo consumo está situado entre

los pines T1OSI (entrada) y T1OSO (salida).

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 5: MÓDULO CCP CAPTURACOMPARACIÓNPWM

TIMER 17. Al desbordase (FFFFh -> 0000h) produce la

interrupción TMR1:• El bit de interrupción del timer1 es TMR1IF

[Registro PIR1(0)].• Puede deshabilitarse mediante TMR1IE

[Registro PIE1(0)].8. La frecuencia de oscilación máx. es 200kHz. No se

apaga durante SLEEP.9. Monitorea tiempo entre transiciones de una señal

en pin de entrada.10. Controla con precisión el tiempo de transición de

pin de salida.11. Sirve para contar eventos externos y generar

interrupciones cuando ha ocurrido un número deseado.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 6: MÓDULO CCP CAPTURACOMPARACIÓNPWM

DIAGRAMA DE BLOQUE TIMER 1

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 7: MÓDULO CCP CAPTURACOMPARACIÓNPWM

REGISTROS ASOCIADOS AL TIMER 1

• TMR1H = Parte alta del TIMER 1 (L/E)• TMR1L = Parte baja del TIMER 1 (L/E)• T1CON = Registro de control del TIMER 1• INTCON = Control de Interrupciones• PIE1 = Control de Interrupciones de

Periféricos• PIR1 = Señalizadores de Interrupciones• TRISC = Registro de configuración PortC• PORTC= Registro de 8 bits.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 8: MÓDULO CCP CAPTURACOMPARACIÓNPWM

T1CON• Bit 7-6: No implementados: Se lee como “0”• Bit 5-4: TlCKPS1:T1CKPS0: bit de selección del preescaler de la señal de reloj

delTIMER1:11 = valor del preescaler 1:810 = valor del preescaler 1:401 = valor del preescaler 1:200 = valor del preescaler 1: 1

• Bit 3: T1OSCEN: bit de habilitación del oscilador del TIMER1. Cuando se emplea un oscilador externo, hay que poner este bit a 1. El TMR1 puede trabajar a una frecuencia totalmente independiente de la del sistema.

1 = Habilita el oscilador0 = Deshabilita el oscilador

Nota: El oscilador y la resistencia se desconectan para reducir el consumo• Bit 2: #TlSYNC: bit de control de sincronización de la señal de entrada.

Con TMR1CS = 11= No sincroniza la entrada de reloj externa0 = Sincroniza la entrada de reloj externaCon TMR1CS = 0En esta condición se ignora. El TIMER1 utiliza el reloj interno cuando TMRICS=0

• Bit 1 TMR1CS: bit de selección de la fuente de reloj del TIMER11 = Reloj externo por el pin RC0/T1OSO/T1CK1 (flanco ascendente)0 = Reloj interno (FOSC/4)

• Bit 0: TMR1ON: TIMER1 activo. Hace entrar o no en funcionamiento el TIMER1.1 = Habilita el TIMER10 = Deshabilita el TIMER1

IUT Cumaná

Prof. Luis Zurita

Page 9: MÓDULO CCP CAPTURACOMPARACIÓNPWM

EJEMPLOS TIMER 1

• Configure al TIMER 1 para:a) Trabaje con la fuente de reloj interna,

con un prescaler de 4.

b) Trabaje como contador, con un oscilador de 100 KHz

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 10: MÓDULO CCP CAPTURACOMPARACIÓNPWM

CÁLCULOS PARA EL TIMER 1

Temporización= 4 * TOSC * (Valor Real TMR1)* Rango del predivisor.

Valor Real TMR1= (65536 – (TMR1H:TMR1L))

(TMR1H:TMR1L) = Valor a cargar en el TIMER1

Ejercicio: ¿Cuál es el máximo valor de temporización

que se puede alcanzar con el TIMER 1?

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 11: MÓDULO CCP CAPTURACOMPARACIÓNPWM

• Realice un programa para que se genere una interrupción cada 0,5 segundos, utilizando un XT.

RSI

Deshabilitar GIE

Limpiar señalizador

Habilitar GIE

RETFIE

INICIO

Configurar TIMER 1

Cargar TIMER 1

Habilitar TIMER 1

SLEEP

FIN

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 12: MÓDULO CCP CAPTURACOMPARACIÓNPWM

RECOMENDACIONES TIMER 1

• Cuando se realizan medidas en tiempo real del TIMER 1, se recomienda comprobar que el byte alto, no haya cambiado:

movf TMR1H,Wmovwf RESPHmovf TMR1L,Wmovwf RESPLmovwf TMR1H,Wsubwf RESPH,Wbtfsc STATUS,Zgoto CONTINUAgoto OTRA_LECTURA

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 13: MÓDULO CCP CAPTURACOMPARACIÓNPWM

TIMER 2

Características básicas:1. Es de 8 bits.2. Se puede leer y escribir en los registros TMR2.3. Puede pararse o habilitarse mediante el bit

TMR2ON.4. Tiene un pre-divisor y un post-divisor programable

por software5. Sólo tiene modo temporizador.6. Posee un registro (PR2) que ajusta el momento de

desborde.7. PR2(Registro de 8 bits) que puede leerse y

escribirse PR2 con el cual compara su valor:– Si los valores de TMR2 y PR2 se igualan, TMR2 pasa a cero.

8. Maneja el período de una señal PWM

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 14: MÓDULO CCP CAPTURACOMPARACIÓNPWM

TIMER 2

9. Al igualarse TMR2 y PR2 se produce la interrupción TMR2:1. El bit de interrupción del timer2 es TMR2IF

(Registro PIR1(1)).2. Hay un post-divisor a la salida del comparador.

10. Los registros de pre-divisor y post-divisor se limpian al:1. Escribir en TMR2.2. Escribir en el registro T2CON.3. Cualquier tipo de RESET.

11. TMR2 no se limpia al escribir en T2CON.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 15: MÓDULO CCP CAPTURACOMPARACIÓNPWM

REGISTROS ASOCIADOS AL TIMER2

• TMR2 = Registro de 8 bits. (L/E)• T2CON = Registro de control del TIMER 2• PR2 = Registro de ajuste del desborde• INTCON = Control de Interrupciones• PIE1 = Control de Interrupciones de

Periféricos• PIR1 = Señalizadores de Interrupciones

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 16: MÓDULO CCP CAPTURACOMPARACIÓNPWM

DIAGRAMA DE BLOQUE DEL TIMER 2

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 17: MÓDULO CCP CAPTURACOMPARACIÓNPWM

T2CON• Bit 7: No implementado: Se lee como 0• Bit 6-3:TOUTPS3:TOUTPS0: bit de selección del rango del divisor del

– Postescaler para el TIMER2:0 0 0 0 Divisor del postescaler 1:10 0 0 1 Divisor del postescaler 1:20 0 1 0 Divisor del postescaler 1:30 0 1 1 Divisor del postescaler 1:40 1 0 0 Divisor del postescaler 1:50 1 0 1 Divisor del postescaler 1:60 1 1 0 Divisor del postescaler 1:70 1 1 1 Divisor del postescaler 1:81 0 0 0 Divisor del postescaler 1:91 0 0 1 Divisor del postescaler 1:101 0 1 0 Divisor del postescaler 1:111 0 1 1 Divisor del postescaler 1:121 1 0 0 Divisor del postescaler 1:131 1 0 1 Divisor del postescaler 1:141 1 1 0 Divisor del postescaler 1:151 1 1 1 Divisor del postescaler 1:16

• Bit 2: TMR2ON: bit de activación del TIMER21 = habilita el funcionamiento del TIMER20 = Inhibe el funcionamiento del TIMER2

• Bit 1-0:T2CKPS1:T2CKPS0 Selección del rango de divisor del Preescaler del TIMER 2

0 0 Divisor del Preescaler 1:10 1 Divisor del Preescaler 1:41 X Divisor del Preescaler 1:16

IUT Cumaná

Prof. Luis Zurita

Prof. Luis Zurita

MICROCONTROLADORES II

Page 18: MÓDULO CCP CAPTURACOMPARACIÓNPWM

EJEMPLOS TIMER 2

• Configure al TIMER 2 para:a) Trabaje con un prescaler de 16 y un postcaler

de 12

b) Trabaje con un prescaler de 8 y un postcaler de 1

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 19: MÓDULO CCP CAPTURACOMPARACIÓNPWM

CÁLCULOS TIMER2

Temporización= 4 * TOSC * Valor PR2 * Rango del prescaler

Timer2 * Rango del postcaler Timer2

Ejercicio

Determine, cuanto tarda en desbordarse el TMR2, si se utiliza un XT, con un prescaler = 4 y un postcaler = 10, considerando que PR2 = D’200’. Cargue el TMR2 con 00H

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 20: MÓDULO CCP CAPTURACOMPARACIÓNPWM

MODO CAPTURA

• En este modo CCP1 y CCP2 funcionan de forma idéntica. (En los nombres de registros a continuación x=1,2)

• En este modo la pareja de registros CCPRxH:CCPRxL captura el valor de 16 bits que contiene TMR1 cuando sucede un evento en la pata RCy/CCPx del PORTC (estos pines deben configurarse como entradas con un 1 en TRISC).

• Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON, para el modo Captura.

• Al realizar la captura se activa el bit de interrupción CCPxIF y si la interrupción está habilitada mediante CCPxIE, se genera una interrupción al cargar el CCPRxH:CCPRxL con TMR1.

• TMR1 en este modo debe estar configurado como temporizador o contador síncrono, nunca en modo asíncrono.

• Al cambiar la condiciones de funcionamiento dentro del modo captura conviene desactivar el módulo primero.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 21: MÓDULO CCP CAPTURACOMPARACIÓNPWM

FLUJOGRAMA CCP1 CAPTURA

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 22: MÓDULO CCP CAPTURACOMPARACIÓNPWM

MODO COMPARACIÓN

• Los registros CCPRxH:CCPRxL comparan su valor de forma continua con el valor de TMR1. Cuando coinciden el pin RCy/CCPx del PORTC (configurado como salida) sufre un evento.

• Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON para el modo Comparación.

• Al coincidir CCPRxH:CCPRxL y TMR1 se activa el bit de interrupción CCPxIF y si la interrupción está habilitada mediante CCPxIE, se genera un interrupción.

• TMR1 en este modo debe estar configurado como temporizador o contador síncrono, nunca en modo asíncrono.

• Si se ha seleccionado el modo disparo especial, el módulo CCP1 y CCP2 realizan tareas distintas. El CCP1 pone a 0 el TMR1 y el CCPR1 funciona como un Registro de Período capaz de generar periódicamente interrupciones. El CCP2 pone a 0 el TMR1 y además inicia una conversión del A/D, con lo que se pueden realizar conversiones periódicas. Aunque TMR1=0 no se genera interrupción del timer1.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 23: MÓDULO CCP CAPTURACOMPARACIÓNPWM

FLUJOGRAMA CCP1 COMPARACIÓN

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 24: MÓDULO CCP CAPTURACOMPARACIÓNPWM

MODO PWM• Con este modo se consiguen impulsos, cuya anchura de nivel alto

es de duración variable y sirven para control de motores y generación de señales.

• Se utiliza un módulo CCP, el timer2 y un pin RCy/CCPx de salida.• El comparador entre el valor PR2 y TMR2 cuando detecta la

igualdad:1. Activa ‘1’ el flip-flop de salida.2. Resetea TMR2.3. El valor de CCPRxL se carga en CCPRxH.

• El periodo de la señal se calcula como:Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2)

• Se comparan los valores de 10 bits ([CCPRxH:CCP1CON(5:4)]) y TMR2 concatenados con los dos bits de menor peso del reloj interno) cuando son iguales:1. Desactiva ‘0’ el flip-flop de salida.2. No resetea TMR2

• El ciclo activo es:Ancho pulso=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2)

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 25: MÓDULO CCP CAPTURACOMPARACIÓNPWM

FLUJOGRAMA PWM

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 26: MÓDULO CCP CAPTURACOMPARACIÓNPWM

SEÑAL PWM

Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2)

Duty Cycle=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2)

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 27: MÓDULO CCP CAPTURACOMPARACIÓNPWM

SEÑAL PWM

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 28: MÓDULO CCP CAPTURACOMPARACIÓNPWM

Modo PWM

Pasos para configurar el PWM:1. Asignar PR2.2. Asignar CCPRxL y CCPxCON(5:4).3. Configurar RCy/CCPx de salida.4. Asignar Pre-divisor en T2CON.5. Activar TMR2 en T2CON.6. Configurar CCPx en modo PWM.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 29: MÓDULO CCP CAPTURACOMPARACIÓNPWM

Bit 7-6: No implementados: Se lee como "0"Bit 5-4: CCP1X: CCP1Y: bit menos significativos de PWMModo Captura sin usarModo Comparación sin usarModo PWM: Estos dos bit son los menos significativos del

ciclo de PWM. Los ocho bits más significativos se encuentran en

CCPR1L.Bit 3-0: CCP1M3-.CCP1M0; bit de selección del modo de

trabajo del módulo comparador CCP1.

CCP1CON

U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

--- CCP1X CCP1Y CCP1M3

CCP1M2

CCP1M1

CCP1M0

Bit 7 Bit 0

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 30: MÓDULO CCP CAPTURACOMPARACIÓNPWM

CCP1CON

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 31: MÓDULO CCP CAPTURACOMPARACIÓNPWM

TABLAS MÓDULO CCPModo CCP Recurso de Timer

Captura Timer1

Comparación

Timer1

PWM Timer2

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 32: MÓDULO CCP CAPTURACOMPARACIÓNPWM

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

EJERCICIOS CCPZ

ona d

e C

onfig

ura

ción Se configuran los bancos

Se configura el módulo CCP

Se configuran las Interrupciones (opcional)

Se regresa al Banco 0

Resto del programa(Tratamiento de la información)

Captura:Medir período,

Ton, Toff

Captura:Comparaciones

Y acciones

Comparación:Setpoint 16 bits

PWM:Genera señal

Comparación:Acción sobre RCx

PWM:En base a acción

Generar Señal

Page 33: MÓDULO CCP CAPTURACOMPARACIÓNPWM

EJERCICIO CCP1 COMPARACIÓN

• Configure el Módulo CCP en modo Comparación, donde:

• El TMR1 está configurado para contar pulsos externos, con un prescaler 1:1, flanco ascendente.

• Se debe cargar CCPR1L con la constante Ncompar, y producir una interrupción cada vez que se alcanza el valor fijado.

• Al ocurrir esto, RB0 cambia de estado.• RC2, no debe modificar su valor.

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 34: MÓDULO CCP CAPTURACOMPARACIÓNPWM

EJERCICIO CCP1 CAPTURA

• Realice la medición de la duración de un pulso.• Emplear el módulo CCP1 y capturar el valor del TMR1

cada vez que llegue un flanco ascendente y otro descendente por la línea RC2/CCP1. Conocida la velocidad a la que evoluciona el TMR1, se puede determinar la duración del tiempo transcurrido entre ambos flancos, lo que nos dará la anchura del pulso.

• Configure al Timer1 con reloj interno y prescaler 1:1, para obtener medida máxima de período= 65,536 ms.

• Cambie la orden de captura de ascendente a descendente al ocurrir la primera captura. (Dentro de la RSI).

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II

Page 35: MÓDULO CCP CAPTURACOMPARACIÓNPWM

EJERCICIO PWM

• Generar una señal de onda cuadrada por la línea RC2/CCP1 cuyo periodo puede ser modificado así como la anchura del pulso (Duty Cycle).

• Utilice las siguientes fórmulas– (Período) T=(PR2+1)*4*Tosc*TMR2 preescaler. – (Duty Cycle)=– (DC)=(CCPR1L:CCPCON1<5:4>)*Tosc*TMR2 preescaler.

• La señal de salida tiene un periodo determinado por la constante "Periodo" y una anchura "Duty Cycle” determinada por la constante "Duty"

IUT Cumaná

Prof. Luis Zurita

MICROCONTROLADORES II