ARTICULO TECNICO Microchip Tips & Tricks... Por el Departamento de Ingeniería de EduDevices. TIPs & Tricks para utilizar correctamente los módulos CCP y ECCP. Continuación... Los modulos de "Capture", "Compare" y PWM (CCP) que se encuntran en muchos de los microcontroladores de Microchip son utilizados principalmente para medir y controlar señales de pulsos basados en tiempo. El "Enhanced CPP"(ECCP), disponible en algunos dispositivos de Microchip, se diferencia del CPP regular porque provee una funcionalidad mejorada del PWM como soporte para "full-bridge" y "half-bridge", "dead-band delay" programable y PWM "auto-shutwdown" mejorado. Los módulos ECCP y CCP son capaces de hacer una amplia variedad de tareas. Esta serie de TIPs & Tricks describe algunas de las guias básicas de cómo llevar adelante estos módulos en cada modo y tambien dar sugerencias para aplicaciones prácticas. TIP Nº 33 Midiendo el ancho del Pulso. 1. Configure los bits de control CCPxM3:CCPxM0 (CCPxCON<3:0>) para capturar cada flanco ascendente de la señal. 2. Configure el prescaler del Timer1 para que corra WMAX sin "overflow". 3. Habilite la interrupción del CCP (CCPxIE bit). 4. Cuando el CCP interrumpa, guarde el valor capturado del timer (t1) y reconfigure los bits de control para capturar los flancos descendentes. 5. Cuando interrumpa el CCP nuevamente, reste el valor capturado (t2) menos el valor guardado (t1) el resultado es el ancho del pulso (W). 6. Reconfigure los bits de control para capturar el siguiente flanco ascendente y empiece el proceso denuevo. (repitiendo los pasos de 3 a 6).
Medición del ancho del pulso TIP Nº 34 Medición del Ciclo de Servicio o Duty Cycle de la señal. El "duty cycle" de una señal es la relación entre el ancho de pulso (W) y el período (T). Los acelerómetros, por ejemplo, varían el "duty cycle" de su salida basados en la aceleración actuando sobre el sistema, también algunos sistemas de control, utilizan señales del tipo PWM (Modulación por ancho de Pulso) para controlar la energía de motores o sistemas de iluminación entre otras aplicaciones. El módulo CPP, confgurado en modo "Capture", puede ser usado para medir el "duty cycle" de este tipo de sensores o salidas del tipo PWM. Aquí se muestra como: 1. Configure los bits de control CCPxM3:CCPxM0 (CCPxCON<3:0>) para capturar cada flanco ascendente de la señal. 2. Configure el prescaler del Timer1 para que corra TMAX sin "overflow". 3. Habilite la interrupción del CCP (CCPxIE bit). 4. Cuando el CCP interrumpa, guarde el valor capturado del timer (t1) y reconfigure los bits de control para capturar los flancos descendentes. 5. Cuando el CCP interrumpe nuevamente, reste el valor capturado (t2) menos el valor salvado previamente. Este resultado es el ancho del pulso (W). 6. Reconfigure los bits de control para detectar el próximo flanco ascendente. 7. Cuando ocurra la próxima interrupción, reste el valor capturado (t3) menos el valor guardado (t1). Este es el período (T) de la señal. 8. Divida T por W este resultado es el "Duty Cycle". 9. Repita los pasos desde el 4 al 8.
Nota 1: TMAX es el máximo período del pulso que puede ocurrir. Medición del Ciclo de Servicio (Duty Cycle) de una señal. TIP Nº 35 Midiendo RPM utilizando un encoder. "Revolutions Per Minute"(RPM), o cuan rápido gira algo, puede ser sensado de varias maneras. Dos de los sensores más comunes usados para determinar RPM son los encoders ópticos y los sensores "Hall effect". Los encoders ópticos detectan la presencia de luz a través de una rueda ranurada montada sobre un eje giratorio (ver Figura 35-1). A medida que gira el eje, las ranuras de la rueda pasan por el ojo del encoder óptico. Comunmente, una fuente infrarroja situada del otro lado de la rueda emite luz que es recibida por el encoder óptico a través de las ranuras. Los sensores de "Hall effect" trabajan sensando la posición de los imánes de un motor eléctrico, o sensando un imán permanente montado en un objeto giratorio. (Ver figura 35-2). Estos sensores entregan uno o más pulsos por revolución (dependiendo del sensor). Figura 35 1 Encoder Optico.
Figura 35 2 Sensor de Efecto Hall. En las Figuras 35-3 y 35-4, la señal está en alto cuando la luz está pasando por medio de la ranura de la rueda del encoder y llegando al sensor óptico. En el caso del sensor "Hall effect", el estado alto corresponde al tiempo que el imán esté frente al sensor. Las figuras muestran la diferencia de las formas de onda para distintos RPMs. Note que a medida que el RPM incrementa, el período (T) y el ancho de pulso (W) disminuyen. Ambos son proporcionales al RPM. Sin embargo, como el período es el mayor de los intervalos, es una buena práctica medir el período de manera que el RPM leido por el sensor tenga la mejor precisión. Vea el Tip # 33 para medir un período. La técnica para medir períodos utilizando promedios explicada en el Tip # 34 es útil para la medición de altos RPMs. Figura 35 3 - Señales en los encoder o sensores Hall para bajas RPMs.
Figura 35 4 Señales en los encoders o sensores de efecto Hall para Altas RPMs. TIP Nº 36 Midiendo el período de una Señal Analógica. Microcontroladores con módulos "Analog Comparator" on-board, sumado al módulo CCP (o ECCP), pueden ser confgurados facilmente para medir el período de una señal analógica. La Figura 36 1 muestra un ejemplo usando los periféricos del PIC16F684. Figura 36 1 Circuito interno del comparador y módulo CCP1 en el PIC 16F684. R3 y R4 fijan el umbral para el comparador. Cuando la entrada analógica alcanza esa tensión de umbral, Vout va a cambiar de LOW a HIGH. R1 y R2 proveen histéresis para asegurarse que cambios leves en la entrada no provoquen jitter en el circuito. La Figura 36-2 muestra el efecto de histéresis en la entrada. Mire específicamente a qué valor de Vsense la entrada analógica alcanza la tensión de umbral.
Figura 36 2 Comparación de la señal de entrada. El módulo CPP, configurado como modo "Capture", puede medir el tiempo entre los flancos ascendentes de la salida del comparador (Vout). Este es el período de la entrada analógica, siempre y cuando la señal analógica llegue al Vthr cada período.