0% encontró este documento útil (0 votos)
261 vistas5 páginas

PWM en PIC18F2550: Módulos CCP y Timer2

Este documento describe cómo generar señales PWM utilizando los módulos CCP del PIC18F2550. Explica que estos módulos funcionan en conjunto con el temporizador Timer2 para producir señales PWM de 10 bits de resolución. También detalla cómo configurar los parámetros de período y ciclo de servicio PWM, y los pasos necesarios para configurar correctamente un módulo CCP en modo PWM.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
261 vistas5 páginas

PWM en PIC18F2550: Módulos CCP y Timer2

Este documento describe cómo generar señales PWM utilizando los módulos CCP del PIC18F2550. Explica que estos módulos funcionan en conjunto con el temporizador Timer2 para producir señales PWM de 10 bits de resolución. También detalla cómo configurar los parámetros de período y ciclo de servicio PWM, y los pasos necesarios para configurar correctamente un módulo CCP en modo PWM.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Microcontroladores

Módulos CCP del PIC18F2550 en modo PWM


Para generar señales PWM con el PIC18F2550 se necesita utilizar uno de los dos módulos CCP en modo
PWM. En este modo, estos módulos funcionan en conjunción con el temporizador Timer2, siendo
necesario hacer una revisión rápida de cómo funcionan estos periféricos.
Temporizador Timer2
Es un temporizador de 8 bits (registro TMR2) que cuenta además con un registro de período (PR2). Ambos
registros pueden ser leídos y escritos. Tiene un predivisor (1:1, 1:4 y 1:16) y un postdivisor (1:1 a 1:16)
ambos programables. Este temporizador puede producir una interrupción cuando existe una coincidencia
entre los registros TMR2 y PR2.
Timer2 se controla con el registro T2CON que habilita o deshabilita el módulo y configura el predivisor y el
postdivisor.

En funcionamiento normal el registro TMR2 se incrementa desde 0x00 con cada pulso del reloj del sistema
(fOSC/4). La entrada de reloj se puede ingresar directamente o dividir con el predivisor a 1:4 o 1:16
mediante los bits T2CKPS1:T2CKPS0 (T2CON<1:0>). El valor de TMR2 se compara con el del registro de
período PR2 en cada ciclo de reloj. Cuando coinciden, el comparador produce una señal de aviso, señal
que, además, reinicia el valor de TMR2 a 0x00 en el ciclo posterior a la coincidencia. Al iniciar o reiniciar el
microcontrolador el registro TMR2 se reinicia a 0x00 y el registro PR2 se carga con 0xFF. Los contadores
de ambos divisores se reinician al escribir los registros TMR2 y T2CON o al reiniciar el dispositivo.
Registro T2CON

Universidad Continental Docente: Juan L. Merlo G


Microcontroladores

Interrupción por Timer2


El temporizador Timer2, al igual que otros periféricos, puede generar una interrupción. La señal de salida
de Timer2 (cuando coinciden los valores de los registros TMR2 y PR2) se inyecta como entrada al
contador/postdivisor de 4 bits. El postdivisor activa el flag de interrupción TMR2IF (PIR1<1>). Si se va a
utilizar esta interrupción, debe activarse poniendo a 1 el bit de habilitación de interrupción por
coincidencia de Timer2, TMR2IE (PIE1<1>). El postdivisor tiene 16 posibles opciones (de 1:1 hasta 1:16)
que se seleccionan mediante los bits T2OUTPS3:T2OUTPS0 (T2CON<6:3>).
Salida de Timer2
La salida sin postdivisión del Timer2 está disponible está disponible principalmente para los módulos CCP,
donde sirve como base de tiempo para generar señales PWM.

Los módulos CCP en modo PWM


En el modo PWM el pin CCPx de cada módulo CCP produce una señal PWM con resolución de 10 bits, es
decir, con 1024 posibles valores de ciclo de servicio. Puesto que el pin CCP2 está multiplexado con un bit
de PORTB o de PORTC, es necesario configurar adecuadamente el correspondiente bit TRIS para que el pin
respectivo sea salida.
Registro CCPxCON

Cuando se borra el registro CCP2CON, se fuerza a nivel bajo el latch de salida de RC1 o de RB3
(dependiendo de la configuración elegida). No se debe confundir con el latch de datos de E/S del puerto B
o del puerto C.

Universidad Continental Docente: Juan L. Merlo G


Microcontroladores

Como se puede ver en el siguiente diagrama de bloques, el módulo CCP utiliza al temporizador Timer2
para producir la señal PWM.

Nota 1: El registro de 8 bits TMR2 se concatena con el reloj interno Q de 2 bits, o con 2 bits del predivisor para crear la base de tiempo de 10 bits.

Período PWM
El período PWM se especifica con el valor que se asigna al registro PR2 y se puede calcular con la fórmula:

TPWM = (PR2 + 1)  4TOSC  PredivisorTMR2


De esta fórmula podemos despejar la siguiente para calcular el valor a cargar en el registro PR2 para un
período deseado:
TPWM
PR2 = −1
4TOSC  PredivisorTMR2
Cuando los registros TMR2 y PR2 igualan sus valores los siguientes tres eventos tienen lugar en el siguiente
ciclo de incremento:
- Se borra el registro TMR2.
- Se pone a 1 el bit CCPx. La excepción se da cuando el ciclo de servicio se fija en 0%, en cuyo caso el pin
CCPx no se pondrá a 1.
- El valor del ciclo de servicio se carga en el registro CCPRxH desde el registro CCPRxL.
El postdivisor de Timer2 no se utiliza para generar la señal PWM.
Ciclo de servicio (duty cycle) PWM
El ciclo de servicio de la señal PWM se especifica con el valor que se asigna al registro CCPRxL concatenado
a los bits CCPxCON<5:4>. Debido a eso se logra una resolución de 10 bits. CCPRxL contiene los 8 bits más
significativos y los bits CCPxCON<5:4> son los dos bits menos significativos, es decir se forma el dato
CCPRxL:CCPxCON<5:4> de 10 bits. El ciclo de servicio se calcula con la siguiente fórmula:

DCPWM = ( CCPRxL : CCPxCON  5 : 4  )  TOSC  PredivisorTMR2


Si el valor del ciclo de servicio es mayor que el período PWM, el pin CCPx permanecerá todo el tiempo en
estado 1. Teniendo en cuenta eso, podemos calcular el máximo valor numérico posible del ciclo de servicio
con la fórmula:

Universidad Continental Docente: Juan L. Merlo G


Microcontroladores

TPWM
DCPWM (máx ) =
TOSC  PredivisorTMR2
El valor que se obtenga de esta fórmula será el equivalente a un ciclo de servicio de 100% para el período
PWM elegido.
CCPRxL y CCPxCON<5:4> se pueden cargar en cualquier momento, pero el valor del ciclo de servicio no se
transfiere a CCPRxH hasta que ocurre una coincidencia entre TMR2 y PR2 (es decir, hasta que se completa
el período en curso). En el modo PWM el registro CCPRxH es de solo lectura y se une a un latch interno de
2 bits para formar un buffer doble para el ciclo de servicio PWM. Este doble buffer garantiza una señal
PWM sin fallas.
Cuando CCPRxH y el latch interno de 2 bits coinciden con el valor del registro TMR2 concatenado con un
reloj interno Q de 2 bits o con 2 bits del predivisor de Timer2, el pin CCPx se pone a 0.
La máxima resolución PWM en bits para una determinada frecuencia PWM se calcula con la fórmula:

 fOSC 
log  
 fPWM  PredivisorTMR2 
Resolución PWMmáx = bits
log2

Configuración para el funcionamiento en modo PWM


Para configurar el módulo CCPx en modo PWM se deben seguir los pasos a continuación.
1. Fijar el período asignando un valor al registro PR2.
2. Fijar el ciclo de servicio dándole un valor adecuado al registro CCPRxL y a los bits CCPxCON<5:4>
3. Configurar el pin CCPx como salida.
4. Fijar el valor del predivisor de TMR2.
5. Habilitar Timer2.
6. Configurar el módulo CCPx en modo PWM.
Frecuencias PWM a utilizar
En general, la frecuencia de PWM depende de la aplicación. Sin embargo, hay dos reglas importantes a
tener en cuenta. La primera es que a medida que la frecuencia aumenta, también lo hace la demanda de
corriente debido a pérdidas propias de un circuito conmutado. La segunda es que la capacitancia e
inductancia de la carga tienden a limitar la respuesta en frecuencia del circuito. En condiciones de bajo
consumo, es una buena idea utilizar el mínimo de frecuencia posible con la finalidad de reducir pérdidas.
En los circuitos, la capacitancia y/o inductancia que intervienen son factores que deben ser considerados
para la correcta elección de la frecuencia del PWM.
Los sistemas operados por PWM son utilizados frecuentemente en el control de motores debido a la
eficacia de los sistemas conmutados en contraste con los de regulación lineal de velocidad. Un aspecto
importante a la hora de elegir la frecuencia de PWM para el control de un motor es la respuesta del motor
ante cambios en el ciclo de servicio del PWM. Un motor va a tener una respuesta más rápida a cambio de
un ciclo de servicio a frecuencias mayores. Otra consideración que no se debe dejar de tener en cuenta es
el ruido provocado por el motor. Los motores de corriente continua con escobillas y colector hacen un
ruido intolerable dentro del rango audible cuando son llevados a altas frecuencias. Para eliminar este

Universidad Continental Docente: Juan L. Merlo G


Microcontroladores

fenómeno, hay que utilizar este tipo de motores a frecuencias mayores que los 4 kHz. Recordemos que los
humanos pueden escuchar frecuencias hasta los 20 kHZ; sin embargo, la mecánica de los motores va a
atenuar el ruido en virtud de su imposibilidad de resonar a tan altas frecuencias.

Circuito sugerido para activar cargas con salidas PWM

Universidad Continental Docente: Juan L. Merlo G

También podría gustarte