viernes, 22 de julio de 2016

Modo PWM del CCP del PIC16F887

PWM

"Universidad Nacional Experimental Politécnica “Antonio José De Sucre”.
UNEXPO — V.R. “Luis Caballero Mejías”.

Las señales de frecuencia y de ciclo de trabajo variados tienen una amplia gama de aplicaciones en automatización. Un ejemplo típico es un circuito de control de potencia. Si un cero lógico (0) indica un interruptor abierto y ununo lógico (1) indica un interruptor cerrado, la potencia eléctrica que se transmite a los consumidores será directamente proporcional a la duración del pulso. Esta relación se le denomina Ciclo de Trabajo. El otro ejemplo, común en la práctica, es el uso de señales PWM en un circuito para generar señales de forma de onda arbitraria como una onda sinusoidal. Los dispositivos que funcionan según este principio se utilizan con frecuencia en la práctica como variadores de frecuencia ajustable que controlan motores eléctricos (velocidad, aceleración, desaceleración etc.)


PERÍODO DEL PWM


El período de pulso de salida (T) se determina por el registro PR2 del temporizador Timer2. El período de PWM se puede calcular por la siguiente ecuación:

Período PWM = (PR2 +1) * 4Tosc * Valor de pre-escala del Timer2


Si el período de PWM (T) es conocido, es fácil determinar la frecuencia de señal F, porque estos dos valores están relacionados por la ecuación:
F=1/T

CICLO DE TRABAJO DE PWM


El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación con el período. Expresado matemáticamente: D=t/T donde D es el ciclo de trabajo, t es el tiempo en que la función es positiva (ancho del pulso) y T es el período de la función
El ciclo de trabajo de PWM se especifica al utilizar en total 10 bits: los ocho bits más significativos del registro CCPR1L y los dos bits menos significativos adicionales del registro CCP1CON (DC1B1 y DC1B0). El resultado es un número de 10 bits dado por la siguiente fórmula:

Ancho de pulsos = (CCPR1L,DC1B1,DC1B0) * Tosc * Valor de pre-escala del Timer2

La siguiente tabla muestra cómo generar las señales PWM de diferentes frecuencias cuando el microcontrolador utiliza un cristal de cuarzo de 20 MHz (Tosc=50nS).



RESOLUCIÓN DE PWM


La resolución determina el numero de ciclos disponibles dado por un periodo. Una señal PWM no es nada más que una secuencia de pulsos que varían su ciclo de trabajo. Para una frecuencia específica (número de pulsos por segundo), hay un número limitado de combinaciones de ciclos de trabajo. Este número representa una resolución medida en bits. Por ejemplo, si una resolución es de 10 bits estarán disponibles 1024 ciclos de trabajo discretos; si una resolución es de 8 bits estarán disponibles 256 ciclos de trabajo disretos etc. En este microcontrolador la resolución es determinada por el registro PR2. El máximo valor se obtiene al usar el número FFh. El valor de la resolución puede calcularse mediante la siguiente formula:


Es de vital importancia señalar que si el valor de ancho de pulso es mayor que el periodo asignado al PWM, este permanecerá sin cambio.


REGISTRO DE PWM (PWM1CON)


STRC 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 iciar el módulo PWM después de un apagado automático,el bit ECCPASE debe ponerse a cero por software.
PDC6 - PDC0 PWM Delay Count bits (Bits de configuración del tiempo muerto en el modo PWM)- El número binario de 7 dígitos determina el número de ciclos de instrucciones añadidas como tiempo muerto al activar los pines de entrada PWM.


REGISTRO DE CONTROL DE DIRECCIÓN DE PULSO (PSTRCON)


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 PSTRCON 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 PSTRCON 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.
STRD - Steering Enable bit D (bit D de habilitación de dirección) determina la función del pin P1D.
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.
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.
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.
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 DE CONTROL MEJORADO DE CAPTURA / comparación / PWM apagado automático (ECCPAS)


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.
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.




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.



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.


¿Cómo configurar e iniciar el módulo CCP1 para funcionar en modo PWM?


Para configurar e iniciar el módulo CCP1 para funcionar en modo PWM, siga los siguientes pasos:
- Deshabilitar el pin de salida del CCP1. Deberá estar configurado como entrada.
- Seleccionar el período de señal PWM al introducir el valor en el registro PR2.
- Configurar el módulo CCP1 para funcionar en modo PWM al combinar los bits del registro CCP1CON.
- Ajustar el ciclo de trabajo de señal PWM al introducir el valor en el registro CCPR1L y al utilizar los bits DC1B1 y DC1B0 del registro CCP1CON.

- Configurar e iniciar el temporizador Timer2:

- Poner a cero el bit de bandera de interrupción TMR2IF en el registro PIR1.
- Ajustar el valor de división de frecuencia del temporizador Timer2 por los bits T2CKPS1 y T2CKPS0 del registro T2CON.
- Iniciar el temporizador Timer2 al poner a uno el bit TMR2ON del registro T2CON.
- Habilitar los pines de salida de PWM después de que haya sido acabado un ciclo de PWM.
- Esperar el desbordamiento del temporizador Timer2 (el bit TMR2IF del registro PIR1 se pone a uno).
- Configurar el pin apropiado como salida al poner a cero el bit en el registro TRIS.



EJEMPLOS PARA DESCARGAR:



PWM.asm
PWM.hex
PWM(Proteus)

Realizado por:
Fedra Castillo exp: 2012103318
Luis Bello exp: 2012103081
Lismar Cardier exp: 2012103001
Contactanos: ana.20753@gmail.com

No hay comentarios:

Publicar un comentario