Ccpx

39
MICROCONTROLADORES

description

 

Transcript of Ccpx

Page 1: Ccpx

• MICROCONTROLADORES

Page 2: Ccpx

MODULOS CCP: Captura, Comparación y modulación de anchura de pulsos

• El PIC16F887 dispone de dos módulos CCP, llamados CCP1 y CCP2.

• Cada módulo tiene un registro de 16 bits, el cual puede operar como registro de captura, como registro de comparación o como registro “duty cycle” en PWM.

• Dada la similitud, la descripción se orienta al módulo CCP1.

• Estos módulos trabajan en tres modos:- Modo captura.- Modo comparación.- Modo modulación de anchura de pulsos (PWM)

• MICROCONTROLADORES

Page 3: Ccpx

REGISTRO CCPR1

La parte central del modulo CCP1 es un registro de 16 bits CCPR1H: CCPR1L, usado para capturar o comparar números binarios almacenados en TMR1H: TMR1L.

• MICROCONTROLADORES

Page 4: Ccpx

• El módulo CCP1 tiene un registro de trabajo de 16 bits que está formado por la concatenación de los registros CCPR1H:CCPR1L .

• Estos registros capturan el valor contenido en TMR1 siempre que ocurra un evento en la patita RC2 de la puerta C, que previamente ha sido configurada como entrada.

• Los eventos posibles que pueden ocurrir en la patita RC2 para producir la captura del valor de TMR1 en la pareja CCPR1H:CCPR1L son:

CCP1:MODO CAPTURA

Page 5: Ccpx

MODO CAPTURA: Eventos posibles en pin RC2

• 1.- Un flanco ascendente.• 2.- Un flanco descendente.• 3.- Cada 4 flancos ascendentes.• 4.- Cada 16 flancos ascendentes.

Page 6: Ccpx

RC2/CCP1 debe configurarse como entrada y TMR1 debe operar como temporizador o contador síncrono.

Bloques Principales del Modo Captura

Page 7: Ccpx

Bloques Principales del Modo Captura

Page 8: Ccpx

MODO CAPTURA• Al realizarse una captura se activa el señalizador CCP1IF

ubicado en el registro PIR1.• Además, si se pone a 1 el permiso de interrupción

(CCP1IE=1 ubicado en el registro PIE1), se genera una petición de interrupción cuando se carga en CCPR1H:CCPR1L el valor del TMR1.

• Con CCP1 en modo captura, el TMR1 debe estar configurado como temporizador o como contador síncrono.

• Para cambiar las condiciones de funcionamiento en modo captura, conviene desactivar CCP1 para evitar que se produzcan falsas interrupciones durante la operación.

Page 9: Ccpx

Cambiar modo de funcionamientoSe recomienda la secuencia siguiente:

ASM { BANKESEL CCP1CON CLRF CCP1CON ;REGISTRO DE CONTROL BORRADO

;MÓDULO CCP1 ESTÁ APAGADO MOVLW XX ;NUEVO MODO DEL PRE-ESCALADOR

;ESTÁ SELECCIONADO MOVWF CCP1CON ;EN EL REGISTRO DE CONTROL

;SE INTRODUCE UN NUEVO VALOR ;MÓDULO CCP1 SE ENCIENDE

;SIMULTÁNEAMENTE}

……..

Page 10: Ccpx

Registro de Control de CCP1

Page 11: Ccpx

CCP1M<3:0> determina el modo de operacion de CCP1

• CCP1M<3:0>: ECCP Mode Select bits• 0000 = Capture/Compare/PWM off (resets ECCP module)• 0001 = Unused (reserved)• 0010 = Compare mode, toggle output on match (CCP1IF bit is set)• 0011 = Unused (reserved)• 0100 = Capture mode, every falling edge• 0101 = Capture mode, every rising edge• 0110 = Capture mode, every 4th rising edge• 0111 = Capture mode, every 16th rising edge• 1000 = Compare mode, set output on match (CCP1IF bit is set)• 1001 = Compare mode, clear output on match (CCP1IF bit is set)• 1010 = Compare mode, generate software interrupt on match (CCP1IF bit is set, CCP1 pin is• unaffected)• 1011 = Compare mode, trigger special event (CCP1IF bit is set; CCP1 resets TMR1 or TMR2• 1100 = PWM mode; P1A, P1C active-high; P1B, P1D active-high• 1101 = PWM mode; P1A, P1C active-high; P1B, P1D active-low• 1110 = PWM mode; P1A, P1C active-low; P1B, P1D active-high• 1111 = PWM mode; P1A, P1C active-low; P1B, P1D active-low

Page 12: Ccpx

DC1B1, DC1B0 usados en modo PWM

• Bit 5-4 en registro CCP1CON: DC1B1, DC1B0: Usados solamente en modo PWM.

• Son los dos bits menos significativos del ciclo de trabajo PWM de un número de 10 bits. Los 8 bits más significativos se encuentran en CCPR1L.

• No se usan en modo captura y comparacion.

Page 13: Ccpx

P1M1, P1M0: bits de configuración de la salida PWM

• bit 7-6 P1M<1:0>: PWM Output Configuration bits• If CCP1M<3:2> = 00, 01, 10:• xx = P1A assigned as Capture/Compare input; P1B, P1C, P1D assigned

as port pins• If CCP1M<3:2> = 11:• 00 = Single output; P1A modulated; P1B, P1C, P1D assigned as port

pins• 01 = Full-Bridge output forward; P1D modulated; P1A active; P1B, P1C

inactive• 10 = Half-Bridge output; P1A, P1B modulated with dead-band control;

P1C, P1D assigned as port pins• 11 = Full-Bridge output reverse; P1B modulated; P1C active; P1A, P1D

inactive

Page 14: Ccpx

MODO COMPARACIONPara operar en este modo, dos condiciones deben cumplirse: El pin RC2/CCP1 debe configurarse como salida, y TMR1 debe sincronizarse con el reloj interno, es decir operar como temporizador.

Page 15: Ccpx
Page 16: Ccpx

• En este modo de trabajo, la pareja de registros CCPR1H:CCPR1L se compara continuamente con el contenido de TMR1 que debe trabajar como temporizador o como contador síncrono.

• Cuando coinciden ambos valores, en la patita RC2 (que previamente se configura como salida), pueden ocurrir los eventos siguientes, de acuerdo con la programación de los bits CCP1M3-0 en el registro de control CCP1CON:- Conmuta la salida CCPX- Pasa la salida CCPX a nivel alto- Pasa la salida CCPX a nivel bajo- Se produce disparo especial (encera TMR1 e inicia conversión ADC).- Genera interrupción por software, no afecta la salida CCPX

MODO COMPARACION

Page 17: Ccpx

MODO PWMEjemplo típico: el control de una lámpara, la potencia eléctrica que consume la lámpara está directamente relacionada con el ancho del pulso. Cosa similar con el control de motores d.c.

Page 18: Ccpx

• Otra de las aplicaciones prácticas comunes es la generación de señales de formas arbitrarias como las ondas sinusoidales

MODO PWM

• Dispositivos que operan de esta manera son usados frecuentemente para el control de velocidad, aceleración y desaceleración de motores eléctricos mediante ajuste de frecuencia.

Page 19: Ccpx

MODO PWM

• En modo PWM se genera una señal modulada por anchura de pulso en el pin CCPx.

• El ciclo de trabajo (duty cycle),periodo y resolucion se determinan con los registros siguientes:• PR2

• T2CON • CCPRxL • CCPxCON• Produce una salida con una resolución de hasta 10 bits en

el pin CCPx. El pin CCPx debe configurarse como salida.• En la transparencia siguiente tenemos un diagrama de

bloques simplificado de la operación PWM.

Page 20: Ccpx

MODO PWM

• Diagrama de bloques del Modo PWM, mostrando un pulso de salida cuyo período y ancho de pulso deben ser configurados.

Page 21: Ccpx

• Cuando TMR2 es igual a PR2 ocurre los eventos siguientes:a) TMR2 se encera.b) Pin CCPx se enciende (Si el ciclo de trabajo = 0%, el pin no se enciende.)c) El ciclo de trabajo se transfiere automáticamente de CCPRxL a CCPRxH.

• En PWM el registro CCPRxH es de lectura solamente.

PERIODO PWM

Page 22: Ccpx

MODO PWM

Page 23: Ccpx

• El período del pulso de salida (T) se determina por medio del registro PR2 del TMR2. El período del PWM puede calcularse de la siguiente fórmula:

PERIODO

• El ciclo de trabajo del PWM se lo especifica mediante 10 bits: ocho del CCPR1L y los dos bits menos significativos de CCP1CON(DC1B1 y DC1B0). El resultado es un número de 10 bits contenido en la fórmula:

ANCHO DE PULSO

Page 24: Ccpx

MODO PWM

Page 25: Ccpx

RESOLUCION PWM

La resolución determina el número de ciclos de trabajo disponibles. Por ejemplo, con 10 bits resultará 1024 ciclos de trabajo. La resolución máxima es 10 bits cuando PR2 = 255.Cuando el ancho del pulso es mayor que el período el pin de salida se congela encendido y no cambia.

Page 26: Ccpx

RESOLUCION PWM

Page 27: Ccpx

Registro de Control CCP1CON

Page 28: Ccpx

• DC1B1, DC1B0 – Representan los dos bits menos significativos cuando se emplea la resolución del PWM a 10 bits. Los 8 bits mas significativos están almacenados en el registro CCPR1L.

Page 29: Ccpx

P1M1, P1M0

Page 30: Ccpx

CCP1M3-CCP1M2-CCP1M1-CCP1M0determinan el modo de operación de CCP1

Page 31: Ccpx

CCP1M3-CCP1M2-CCP1M1-CCP1M0determinan el modo de operación de CCP1

Page 32: Ccpx

Pasos para la Configuración del CCP1 en Modo PWM

• Los pasos para la configuración del modo PWM son los siguientes:1.- Deshabilite el CCP1. Pin CCP1 debe ser configurado como entrada 2.- Ingrese en PR2 el período del PWM3.- Configure el módulo CCP para trabajar en el modo PWM configurando los bits del CCP1CON.4.- Configure el ciclo de trabajo cargando CCPR1L y usando los bits DC1B1 y DC1B0 del registro CCP1CON.5.- Configure y empiece el TMR2.6.- Habilite el pin de salida del PWM después de completar un ciclo de trabajo.

Page 33: Ccpx

Funciones PWM de MikroCPro

• PWM1_Init • PWM1_Set_Duty • PWM1_Start • PWM1_Stop

Page 34: Ccpx

MODULO CCP2CCP2 es una buena copia de CCP1, la diferencia esta en la senal de reset de TMR1, si el ADC esta habilitado , en el momento en que TMR1=CCPR2 la senal de reset de TMR1 automaticamente genera el inicio de conversion en el ADC. Su registro de control es el CCP2CON.

Page 35: Ccpx

MODULO CCP2

DC2B1-DC2B0 bits menos significativos del ciclo de trabajo, los 8 bits más significativos se encuentran CCPR2L para formar un número de 10 bits.CCP2M3…CCP2M0 bits seleccionan el modo de trabajo de CCP2. Ver siguiente transparencia

Page 36: Ccpx

MODOS DE TRABAJO DE CCP2• bit 3-0 CCP2M<3:0>: CCP2 Mode Select bits

0000 = Capture/Compare/PWM off (resets CCP2 module)0001 = Unused (reserved)0010 = Unused (reserved)0011 = Unused (reserved)0100 = Capture mode, every falling edge0101 = Capture mode, every rising edge0110 = Capture mode, every 4th rising edge0111 = Capture mode, every 16th rising edge1000 = Compare mode, set output on match (CCP2IF bit is set)1001 = Compare mode, clear output on match (CCP2IF bit is set)1010 = Compare mode, generate software interrupt on match (CCP2IF bit is set, CCP2 pin is unaffected)1011 = Compare mode, trigger special event (CCP2IF bit is set, TMR1 is reset and A/D conversion is started if the ADC module is enabled. CCP2 pin is unaffected.)11xx = PWM mode.

Page 37: Ccpx

• En modo mejorado se puede generar hasta 4 senales PWM moduladas en cuatro patitas diferentes hasta con 10 bits de resolucion.

• Los 4 modos disponibles son:a) Single PWMb) Half-Bridge PWMc) Full-Bridge PWM, Forward moded) Full-Bridge PWM, Reverse mode

• Para seleccionar uno de los modos mejorados se usan los bits P1M del registro de control CCP1CON.

• Este modo mejorado sólo esta disponible en el modulo CCP1.

MODO ECCP1: PWM MEJORADO

Page 38: Ccpx

MODO ECCP1: PWM MEJORADO

Page 39: Ccpx

MODO ECCP1: PWM MEJORADO