Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAna Isabel Blanco Segura Modificado hace 8 años
1
Sesión 11: - Comparador, Captura y PWM
2
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Modo PWM Modo Comparador Modo Captura Introducción Módulo CCP
3
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Repaso Cuando se requiere de una base de tiempo para realizar una o más tareas periódicas: Reloj Sistema 1ms 100ms 250ms 1s 0.5s 5ms TIMER Generador de Bases de Tiempo Bases de tiempo configurable… CPU Procesando… CPU Procesando… Mínima intervención de la CPU
4
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Repaso Temporizadores. Medida del tiempo de eventos externos. Generación de Señales Cuadradas. TIMER Evento o INT 5 43210 TIMER Evento I.C. TIMER Evento I.C. Evento t1t2t3t4 TIMER Evento O.C. TIMER Evento O.C.
5
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CCP Los módulos CCP permiten realizar tres funciones básicas basadas en el manejo de los temporizadores (Timer): Captura: obtiene el valor del temporizador en un momento dado, fijado por la acción de un terminal del PlC. Comparador: compara el valor del temporizador con el valor de un registro y provoca una acción en el PIC. PWM: genera una señal modulada en amplitud de pulso.
6
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Pines Módulo CCP Conexión del módulo CCP
7
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CCP Cada uno de los módulos CCP posee un registro que permite obtener información del módulos según la configuración realizada. El registro: CCP_x Donde la x se reemplaza por el módulo correspondiente.
8
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CCP Los PIC de la gama media pueden tener hasta 2 módulos CCP. Cada módulo CCP posee un registro de 16 bits que puede utilizarse de las tres siguientes formas: Modo Captura: Registro de 16 bits para capturar el valor del temporizador al producirse un evento Modo Comparador: Registro de 16 bits para comparar su valor con el valor del temporizador TMR1. Modo PWM: Registro de 10 bits para el ciclo de trabajo de una señal PWM.
9
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Manipulación Módulo A/D Para trabajar con este módulo, se recomienda seguir los siguientes pasos: 1.Configurar el TIMERx: Configurar frecuencia de la interrupción Seleccionar el la fuente de reloj, el Preescalador, Postescalador, … 2.Configurar el módulo CCPx Seleccionar el modo de operación Inicializar registros 3.Habilitar interrupciones Activar la interrupción CCPx
10
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CCP Para trabajar con las interrupciones del CCP, se la siguiente directiva: #INT_CCPx Esta indica que la función que esté a continuación será la subrutina de atención de interrupción del módulo CCPx. Para habilitar la interrupción se emplea: enable_interrups (INT_CCPx);
11
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Modo PWM Modo Comparador Modo Captura Introducción Módulo CCP Modo Captura
12
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás t TIMER Tiempo de evento: X seg. Medición de Tiempo Mínima intervención de la CPU Modo Captura Medida de tiempos Cuando un canal se configura con modo Captura, el TIMER capturará el valor del contador al producirse un evento externo. Este modo trabaja con el TIMER1
13
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás $0012 $01E0 $20F Contador 16 Bits 16-Bit LATCH CCPRxH:CCPRxL Señal Externa Flancos de Subida PORT Logic CCPy $0012$01E0$020F Modo Captura
14
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Modo Captura ¿Para qué sirve esto? Piense para que sirve tener el valor del TIMER en dos instantes de tiempo diferentes t1 y t2. ¿Cuál es el periodo de la señal de entrada? CCPR1 10350 CCPR1 13500
15
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Modo Captura ¿Para qué sirve esto? El contador interno se incrementa en cada periodo del TIMER. Dicho periodo es conocido, 1/F TIMER Para ir de 10350 a 13500, ¿Cuánto tiempo? F TIMER = F BUS / Preescalador Periodo = 1/F TIMER
16
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Modo Captura Ahora si, el periodo de la señal es: P = (13500 – 10350) / Frec_CNT CCPR1 10350 CCPR1 13500 F TIMER
17
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Modo Captura Ahora, ¿es posible que se presente la siguiente situación? Para este caso (CARGA= 60000): P = (8000 – 37500) / Frec_CNT ??? P = (CARGA+ 8000 – 37500) / Frec_CNT ¿Lo anterior es general? CCPR1 37500 CCPR1 8000 Se alcanza el módulo
18
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás (+) F2F1 TMER0= 37500TIMER0= 18000 (-) (=) PERIODO = (65535*3 + 18000 – 37500)/Frec_TIM O.V. (65535) O.V. (65535) O.V. (65535) O.V. (65535) O.V. (65535) O.V. (65535) P = (No. OV. * CARGA+ F2 – F1) / Frec_CNT Modo Captura
19
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CPP en C El compilador C suministra una serie de funciones para el manejo del módulo CCP Configuración del módulo CCPx: Configuración del módulo cpp setup_ccpx (modo); Modo:Selecciona el modo de operación. ValorDescripción CCP_OFF Deshabilitación CPP_CAPTURE_FE Captura por flanco de bajada CPP_CAPTURE_RE Captura por flanco de subida CPP_CAPTURE_DIV_4 Captura tras 4 pulsos CPP_CPATURE_DIV_16 Captura tras 16 pulsos CPP_COMPARE_SET_ON_MATCH Salida a 1 en comparación CPP_COMPARE_CLR_ON_MATCH Salida a 0 en comparación CPP_COMPARE_INT Interrupción en comparación CPP_COMPARE_RESET_TIMER Reset TMR en comparación CPP_PWM Habilitación PWM
20
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Ejemplo Medir el ancho de un pulso mediante el módulo CCP. Configurar una señal pulsada de 500us Configurar el Timer1 para generar una interrupción cada 1us.
21
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Modo PWM Modo Comparador Modo Captura Introducción Módulo CCP Modo Comparador
22
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Modo Comparador Cuando un canal se configura con Modo Comparador, el TIMER podrá generar a través de ese canal un pulso periódico con polaridad, duración y frecuencia programable. Este modo trabaja con el TIMER1 Frecuencia: Contador = CARGA. Comparador: Contador = REG. CANAL. Polaridad: Canal a ‘0’ en Comparador. Canal a ‘1’ en Comparador. Señal A Contador = REG. CANAL. Pin a ‘0’. Contador = REG. CANAL. Pin a ‘0’. Contador = CARGA. Toogle en el Pin. Contador = CARGA. Toogle en el Pin. Señal B Contador = REG. CANAL. Pin a ‘1’. Contador = REG. CANAL. Pin a ‘1’. Contador = CARGA. Toogle en el Pin. Contador = CARGA. Toogle en el Pin. La frecuencia la define el Módulo del TIMER. El ancho de dureza está definido por CANAL: 0 <= CANAL <= MOD_TIMER Si MOD = 2500, se tienen entonces 2500 valores posibles de ancho de dureza, es decir, el menor cambio en porcentaje estará dado por: 1/2500 * 100%. De manera general: X = Porc * MOD / 100%.
23
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás CONT. XXXX F BUS PREESCAL. SEL. PS. TIMER MOD XXXX COMP P TOF REG. CHy XXXX COMP PIN CCPx CARGA 1000 CONT. 0 … 1000 REG. CHy 650 O.V. O.C. O.V.O.C. COMP O.V.O.C. O.V.O.C. REG. CHy 250 Toggle On Pin Set/Clear O.C. Modo Comparador
24
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CPP en C El compilador C suministra una serie de funciones para el manejo del módulo CCP Configuración del módulo CCPx: Configuración del módulo cpp setup_ccpx (modo); Modo:Selecciona el modo de operación. ValorDescripción CCP_OFF Deshabilitación CPP_CAPTURE_FE Captura por flanco de bajada CPP_CAPTURE_RE Captura por flanco de subida CPP_CAPTURE_DIV_4 Captura tras 4 pulsos CPP_CPATURE_DIV_16 Captura tras 16 pulsos CPP_COMPARE_SET_ON_MATCH Salida a 1 en comparación CPP_COMPARE_CLR_ON_MATCH Salida a 0 en comparación CPP_COMPARE_INT Interrupción en comparación CPP_COMPARE_RESET_TIMER Reset TMR en comparación CPP_PWM Habilitación PWM
25
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás A continuación… Modo PWM Modo Comparador Modo Captura Introducción Módulo CCP Modo PWM
26
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás PWM (Pulse Width Modulation) El modo PWM permite: Obtener en los pines CCPx una señal periódica en la que se puede modificar su ciclo de trabajo (Duty Cicle). Variar el tiempo en el cual la señal está a nivel alto (T ON ) frente al tiempo que está a nivel bajo (T OFF ). Variar el voltaje promedio aplicado a la carga. Proporcional al T ON, controlando la velocidad de motores, luminosidad de lámparas, etc.
27
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Velocidad % PWM Modo PWM Variación de Velocidad PWM MOTOR DC RPM t MOTOR Cambio SISTEMA EMBEBIDO SISTEMA EMBEBIDO
28
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás PWM (Pulse Width Modulation) La resolución de salida es de hasta 10 bits. El periodo de la señal PWM se obtiene: Configurar el TIMER2 Configurar el contenido del registro PR2 setup_timer_2 (preescaler, PR2, postscaler); Para calcular el periodo de la señal PWM se utiliza la siguiente ecuación: PreescalerDescripción T2_DISABLEDHabilitar TIMER2 T1_DIV_BY_1Preescalador 1 T1_DIV_BY_4Preescalador 4 T1_DIV_BY_16Preescalador 16
29
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo CPP en C El compilador C suministra una serie de funciones para el manejo del módulo CCP Configuración del módulo CCPx: Configuración del módulo cpp setup_ccpx (modo); Modo:Selecciona el modo de operación. ValorDescripción CCP_OFF Deshabilitación CPP_CAPTURE_FE Captura por flanco de bajada CPP_CAPTURE_RE Captura por flanco de subida CPP_CAPTURE_DIV_4 Captura tras 4 pulsos CPP_CPATURE_DIV_16 Captura tras 16 pulsos CPP_COMPARE_SET_ON_MATCH Salida a 1 en comparación CPP_COMPARE_CLR_ON_MATCH Salida a 0 en comparación CPP_COMPARE_INT Interrupción en comparación CPP_COMPARE_RESET_TIMER Reset TMR en comparación CPP_PWM Habilitación PWM
30
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás PWM (Pulse Width Modulation) Para poner en marcha el modo PWM se deben dar los siguientes pasos: Configurar el modulo CCP en el modo CCP_PWM Configurar el periodo PWM mediante la configuración del Timer2. Configurar el Duty Cycle escribiendo en el registros set_pwmx_duty(Duty_cycle);
31
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Módulo A/D e n C Definición ciclo de trabajo para el PWM set_pwmx_duty (valor); Valor: dato de 8 o 16 bits que determina el ciclo de trabajo. Este valor, junto con el valor del preescaler del TMR2, determina el valor del ciclo de trabajo. En la configuración del TIMER2, el postscaler debe valer 1.
32
2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad Santo Tomás Ejemplo Controlar la velocidad de un motor DC mediante el módulo CCP y un valor ADC. Con el valor ADC obtenido se realizará una conversión DA utilizando el PWM.
33
Fin de la sesión 11
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.