módulos comparación, captura y pwm en...

16
1 PIC16F87X. Módulos comparación, captura y PWM en PIC16F87X Departamento de Electrónica Fundación San Valero Modulos comparación y PWM - PIC16F87X

Upload: others

Post on 10-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

1

PIC16F87X.

Módulos comparación, captura y PWM en PIC16F87X

Departamento de ElectrónicaFundación San Valero

Modulos comparación y PWM - PIC16F87X

Page 2: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

2

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 3: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

3

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 4: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

4

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 5: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

5

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 6: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

6

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 7: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

7

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 8: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

8

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 9: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

9

Modulos comparación y PWM - PIC16F87X

Modulos comparación y PWM - PIC16F87X

Page 10: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

10

Modulos comparación y PWM - PIC16F87X

Módulos de captura/comparación/modulación de anchura de pulsos CCP

Los microcontroladores PIC16F87X disponen de dos de estos módulos,llamados CCP1 y CCP2, que se controlan con los registros CCP1CON yCCP2CON, respectivamente. Realizan tres funciones:1ª. Capturan información de 16 bits procedente del TMR1.2ª. Comparan el valor de un registro con el del TMR1.3ª. Modulan o controlan el intervalo de tiempo en el que bascula de 1 a 0 unapatita del microcontrolador. Los módulos CCP1 y CCP2 son idénticos, exceptoen ciertas funciones especiales de disparo. Ambos constan de dos registrosCCPRxH y CCPRxL.

Modo de Captura:En este modo el registro CCPRxH/L de 16 bits captura el valor contenido en elTMR1, siempre que ocurra uno de los siguientes acontecimientos en la patitaRcy/CCPx del Puerto C, que previamente ha tenido que configurarse comoentrada en el registro TRISC:

Modulos comparación y PWM - PIC16F87X

Módulos de captura/comparación/modulación de anchura de pulsos CCP

Modo de Comparación

Cuando un modulo CCP trabaja de esta manera el contenido del registroCCPRxH/L se compara continuamente con el del TMR1, que debe trabajar enmodo síncrono. Cuando coinciden ambos valores la patita Rcy/CCPx, quepreviamente se habrá configurado como salida, puede bascular a 1, a 0, obien no variar, pero se activara el señalizador CCPxIF. En tal caso, si el bit depermiso esta activado se provoca una interrupción.

Si se selecciona la función especial de disparo, el CCP1 pone a 0 al TMR1con lo que CCPR1 funciona como un registro de periodos capaz de provocarinterrupciones periódicamente. También el CCP2 pone a 0 el TMR1 e iniciauna conversión en el Convertidor A/D, con lo que se pueden realizarperiódicamente conversiones de analógico-digitales, sin el control delprograma de instrucciones.

Page 11: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

11

Modulos comparación y PWM - PIC16F87X

Módulos de captura/comparación/modulación de anchura de pulsos CCP

Modulo de Anchura de Pulsos (PWM)

En este modo la patita Rcy/CCPx, que se ha programado como salida,bascula entre 0 y 1 a intervalos variables de tiempo. Cuando el valor deregistro PR2 coincide con los 8 bits de más peso de TMR2 la patitamencionada pasa a 1 y TMR2 toma el valor 00 y reanuda la cuenta. Elcontenido de CCPRxL pasa a CCPRxH y se compara con TMR2.

Cuando ambos coinciden la patita Rcy/CCPx pasa a 0 y se repite lasecuencia. Variando el valor de PR2 y CCPRxL se varia el intervalo de tiempoque la patita esta a 1 y esta a 0, respectivamente.

Tiempo a 1 = (PR2 + 1) . 4 . TOSC . PREDIVISORTiempo a 0 = DCI . TOSC . PREDIVISOR

Modulos comparación y PWM - PIC16F87X

Funciones para manejar el módulo ccpSETUP_CCP1(mode)SETUP_CCP2(mode)Estas funciones inicializa el contador CCP. Para acceder a los contadores CCP

se utilizan las variables CCP_1 y CCP_2. Los valores para mode son:CCP_OFFCCP_CAPTURE_FECCP_CAPTURE_RECCP_CAPTURE_DIV_4CCP_CAPTURE_DIV_16CCP_COMPARE_SET_ON_MATCHCCP_COMPARE_CLR_ON_MATCHCCP_COMPARE_INTCCP_COMPARE_RESET_TIMERCCP_PWMCCP_PWM_PLUS_1 (sólo si se utiliza un ciclo de trabajo de 8 bits)CCP_PWM_PLUS_2 (sólo si se utiliza un ciclo de trabajo de 8 bits)CCP_PWM_PLUS_3 (sólo si se utiliza un ciclo de trabajo de 8 bits)

Page 12: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

12

Modulos comparación y PWM - PIC16F87X

Funciones para manejar el módulo ccp y eeprom interna

SET_PWM1_DUTY(value)SET_PWM2_DUTY(value)

Estas funciones escriben los 10 bits de value al dispositivo PWM paraestablecer el ciclo de trabajo. Se puede usar un valor de 8 bits si no sonnecesarios los bits menos significativos.

READ_EEPROM(address)Esta función lee un byte en la dirección (address) de Eeprom especificada. Ladirección puede ser 0-63.

WRITE_EEPROM(address, value)Esta función escribe un byte de datos en la dirección de memoria Eepromespecificada. Value es el byte de datos a escribir.

Modulos comparación y PWM - PIC16F87X

¿Cómo generar un retardo de 65 msg?

Para generar una rutina de retardo correcta habrá que tener encuenta la siguiente fórmula:

Tiempo = 4 · Tosc · (Valor cargado en TMR0) · (Rango del Divisor)Valor a cargar en TMR0 = (tiempo / 4 · Tosc) · (Rango del Divisor)

Como tenemos un cristal que trabaja a una frecuencia de 4 MHz,el valor de Tosc será de 0,25 microsegundos. Por otra parte, elrango del divisor será el máximo, es decir, 1:256.

Y por último, para llegar a los 65 milisegundos habrá que cargaral TMR0 con 255:

Tiempo = 4 · 0,25us · 255 · 256 = 0,06528 s = 65,28 ms

Page 13: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

13

Modulos comparación y PWM - PIC16F87X

¿Cómo configurar el módulo CCP para PWM?

• Cuando se desea que el estado de un determinado pin del microcontroladorbascule entre 0 y 1 a intervalos variables de tiempo se emplea la modulaciónpor anchura de pulsos.

• En el microcontrolador puede generarse una salida PWM por el pin CCP1,que en este caso es RC2, utilizando TMR2, PR2 y el módulo CCP1. Lasecuencia es la siguiente: se incrementa TMR2, a su vez un comparadorcomprueba si el valor de TMR2 y el del registro de anchura de pulso(CCPR1L) son iguales

PR2

1

TMR2

CCPR1

Modulos comparación y PWM - PIC16F87X

¿Cómo configurar el módulo CCP para PWM?

• Cuando coinciden los dos valores, el pin CCP1 pasa anivel bajo. Al mismo tiempo un segundo comparadorcomprueba si son iguales TMR2 y PR2. Cuando lo son,CCP1 pasa a nivel 1 y TMR2 se pone a 0 para comenzarel siguiente periodo. Este proceso puede repetirseindefinidamente de forma automática, obteniendo de estaforma una salida modulada por anchura de pulso (PWM)en el pin CCP1

Page 14: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

14

Modulos comparación y PWM - PIC16F87X

Ejemplo:

Con la ayuda de las dos siguientes fórmulas para el cálculo del valor acargar en PR2 y en CCPR1L podemos realizar un programa que trabaje conuna frecuencia de 500 Hz y encienda el led RB1 cada 1ms inicialmente.Además pulsando en RB0 el duty cambie a 1,5 ms y si se presiona RA4 elduty cambie a 250 ms. Variando el duty se conseguirán distintasintensidades de iluminación para un diodo led.

Para el cálculo de PR2 se tiene que:

T = (PR2+1)·4·Tosc·TMR2preescaler

Para el cálculo del duty se tiene que: CCPCON1 (5:4)= Siempre 00

Duty = (CCPR1L:CCPCON1<5:4>)·Tosc·TMR2preescaler

Modulos comparación y PWM - PIC16F87X

Ejemplo:

TPR2=---------------------------------------- - 1

4*Tosc*Prescaler TMR2

DUTYCCPR1L(Carga)= -------------------------------------------------

4* Tosc *Prescaler TMR2

Page 15: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

15

Modulos comparación y PWM - PIC16F87X

Ejemplo:

TPR2=---------------------------------------- - 1

4*Tosc*Prescaler TMR2

DUTYCCPR1L(Carga)= -------------------------------------------------

4* Tosc *Prescaler TMR2

¿Qué son los EFT?

EFT (Electrical Fast Transients): Son transitorios eléctricos rápidos que encasos son producidos por antenas o campos magnéticos cercanos.En muchos casos es necesario obtener señales con tiempo de subida (Rise) ode bajada (Fall) exactos e iguales, por ejemplo para control de etapas depotencia.

Page 16: Módulos comparación, captura y PWM en PIC16F87Xprofesores.sanvalero.net/~arnadillo/Documentos/Apuntes/Radiofrecuencia... · • En el microcontrolador puede generarse una salida

16

Efecto Rise / Fall

Muchas veces generar una señal como la de arriba con un uC esimposible por lo que es necesario fijar un tiempo de subida Rise o bajadaFall lo más preciso posible.

Control Rise /Fall mediante Slew Rate

Gracias al bit “Slew Rate” en los nuevos microcontroladores medianteprogramación podemos controlar el tiempo para generar una señal lomás precisa posible.