Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(CAPTURA/COMPARACIN/PWM)
PARA QU PUEDEN SERVIR?
MDULO CCP
MICROCONTROLADORES II
IUT Cuman
REGISTRO INTCON
MICROCONTROLADORES II
IUT Cuman
PIE1
PSPIE ADIE RCIE TXIE SSPIE CCP1IE
PIR1
TMR2IE TMR1IE
PIE2
--0 --EEIE BCLIE --
PIR2
-CCP2IE
MICROCONTROLADORES II
TIMER 1
IUT Cuman
Caractersticas bsicas: 1. Es de 16 bits. 2. Puede actuar como temporizador o como contador bit (TMR1CS). 3. Se puede leer y escribir en los registros TMR1H, TMR1L. 4. Puede pararse o habilitarse mediante el bit TMR1ON. 5. Tiene un pre-divisor programable por software. 6. El oscilador de bajo consumo est situado entre los pines T1OSI (entrada) y T1OSO (salida).
MICROCONTROLADORES II
TIMER 1
7.
IUT Cuman
Al desbordase (FFFFh -> 0000h) produce la interrupcin TMR1: El bit de interrupcin del timer1 es TMR1IF [Registro PIR1(0)]. Puede deshabilitarse mediante TMR1IE [Registro PIE1(0)]. 8. La frecuencia de oscilacin mx. es 200kHz. No se apaga durante SLEEP. 9. Monitorea tiempo entre transiciones de una seal en pin de entrada. 10. Controla con precisin el tiempo de transicin de pin de salida. 11. Sirve para contar eventos externos y generar interrupciones cuando ha ocurrido un nmero deseado.
MICROCONTROLADORES II Prof. Luis Zurita
IUT Cuman
MICROCONTROLADORES II
IUT Cuman
MICROCONTROLADORES II
IUT Cuman
T1CON
Bit 7-6: No implementados: Se lee como 0 Bit 5-4: TlCKPS1:T1CKPS0: bit de seleccin del preescaler de la seal de reloj delTIMER1: 11 = valor del preescaler 1:8 10 = valor del preescaler 1:4 01 = valor del preescaler 1:2 00 = valor del preescaler 1: 1 Bit 3: T1OSCEN: bit de habilitacin del oscilador del TIMER1. Cuando se emplea un oscilador externo, hay que poner este bit a 1. El TMR1 puede trabajar a una frecuencia totalmente independiente de la del sistema. 1 = Habilita el oscilador 0 = Deshabilita el oscilador Nota: El oscilador y la resistencia se desconectan para reducir el consumo Bit 2: #TlSYNC: bit de control de sincronizacin de la seal de entrada. Con TMR1CS = 1 1= No sincroniza la entrada de reloj externa 0 = Sincroniza la entrada de reloj externa Con TMR1CS = 0 En esta condicin se ignora. El TIMER1 utiliza el reloj interno cuando TMRICS=0 Bit 1 TMR1CS: bit de seleccin de la fuente de reloj del TIMER1 1 = Reloj externo por el pin RC0/T1OSO/T1CK1 (flanco ascendente) 0 = Reloj interno (FOSC/4) Bit 0: TMR1ON: TIMER1 activo. Hace entrar o no en funcionamiento el TIMER1. 1 = Habilita el TIMER1
0 = Deshabilita el TIMER1
EJEMPLOS TIMER 1
Configure al TIMER 1 para: a) Trabaje con la fuente de reloj interna, con un prescaler de 4. b) Trabaje como contador, con un oscilador de 100 KHz
IUT Cuman
MICROCONTROLADORES II
IUT Cuman
Temporizacin= 4 * TOSC * (Valor Real TMR1)* Rango del predivisor. Valor Real TMR1= (65536 (TMR1H:TMR1L)) (TMR1H:TMR1L) = Valor a cargar en el TIMER1 Ejercicio: Cul es el mximo valor de temporizacin que se puede alcanzar con el TIMER 1?
MICROCONTROLADORES II Prof. Luis Zurita
IUT Cuman
Realice un programa para que se genere una interrupcin cada 0,5 segundos, utilizando un XT.
INICIO RSI
Configurar TIMER 1
Deshabilitar GIE
Cargar TIMER 1
Limpiar sealizador
Habilitar TIMER 1
Habilitar GIE
SLEEP
RETFIE
FIN
MICROCONTROLADORES II
RECOMENDACIONES TIMER 1
Cuando se realizan medidas en tiempo real del TIMER 1, se recomienda comprobar que el byte alto, no haya cambiado: movf TMR1H,W movwf RESPH movf TMR1L,W movwf RESPL movwf TMR1H,W subwf RESPH,W btfsc STATUS,Z goto CONTINUA goto OTRA_LECTURA
IUT Cuman
MICROCONTROLADORES II
TIMER 2
IUT Cuman
Caractersticas bsicas: 1. Es de 8 bits. 2. Se puede leer y escribir en los registros TMR2. 3. Puede pararse o habilitarse mediante el bit TMR2ON. 4. Tiene un pre-divisor y un post-divisor programable por software 5. Slo tiene modo temporizador. 6. Posee un registro (PR2) que ajusta el momento de desborde. 7. PR2(Registro de 8 bits) que puede leerse y escribirse PR2 con el cual compara su valor: 8. Maneja el perodo de una seal PWM
MICROCONTROLADORES II
TIMER 2
9. Al igualarse TMR2 y PR2 se produce la interrupcin TMR2:
1. El bit de interrupcin del timer2 es TMR2IF (Registro PIR1(1)). 2. Hay un post-divisor a la salida del comparador.
IUT Cuman
IUT Cuman
MICROCONTROLADORES II
IUT Cuman
MICROCONTROLADORES II
T2CON
Bit 7: No implementado: Se lee como 0 Bit 6-3:TOUTPS3:TOUTPS0: bit de seleccin del rango del divisor del Postescaler para el TIMER2: 0000 Divisor del postescaler 1:1 0001 Divisor del postescaler 1:2 0010 Divisor del postescaler 1:3 0011 Divisor del postescaler 1:4 0100 Divisor del postescaler 1:5 0101 Divisor del postescaler 1:6 0110 Divisor del postescaler 1:7 0111 Divisor del postescaler 1:8 1000 Divisor del postescaler 1:9 1001 Divisor del postescaler 1:10 1010 Divisor del postescaler 1:11 1011 Divisor del postescaler 1:12 1100 Divisor del postescaler 1:13 1101 Divisor del postescaler 1:14 1110 Divisor del postescaler 1:15 1111 Divisor del postescaler 1:16 Bit 2: TMR2ON: bit de activacin del TIMER2 1 = habilita el funcionamiento del TIMER2 0 = Inhibe el funcionamiento del TIMER2 Bit 1-0:T2CKPS1:T2CKPS0 Seleccin del rango de divisor del Preescaler del TIMER 2 0 0 Divisor del Preescaler 1:1 0 1 Divisor del Preescaler 1:4 1 X Divisor del Preescaler 1:16
IUT Cuman
MICROCONTROLADORES II
EJEMPLOS TIMER 2
Configure al TIMER 2 para: a) Trabaje con un prescaler de 16 y un postcaler de 12
IUT Cuman
MICROCONTROLADORES II
CLCULOS TIMER2
IUT Cuman
Temporizacin= 4 * TOSC * Valor PR2 * Rango del prescaler Timer2 * Rango del postcaler Timer2 Ejercicio Determine, cuanto tarda en desbordarse el TMR2, si se utiliza un XT, con un prescaler = 4 y un postcaler = 10, considerando que PR2 = D200. Cargue el TMR2 con 00H
MICROCONTROLADORES II
MODO CAPTURA
IUT Cuman
En este modo CCP1 y CCP2 funcionan de forma idntica. (En los nombres de registros a continuacin x=1,2) En este modo la pareja de registros CCPRxH:CCPRxL captura el valor de 16 bits que contiene TMR1 cuando sucede un evento en la pata RCy/CCPx del PORTC (estos pines deben configurarse como entradas con un 1 en TRISC). Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON, para el modo Captura. Al realizar la captura se activa el bit de interrupcin CCPxIF y si la interrupcin est habilitada mediante CCPxIE, se genera una interrupcin al cargar el CCPRxH:CCPRxL con TMR1. TMR1 en este modo debe estar configurado como temporizador o contador sncrono, nunca en modo asncrono. Al cambiar la condiciones de funcionamiento dentro del modo captura conviene desactivar el mdulo primero.
MICROCONTROLADORES II
IUT Cuman
MICROCONTROLADORES II
MODO COMPARACIN
IUT Cuman
Los registros CCPRxH:CCPRxL comparan su valor de forma continua con el valor de TMR1. Cuando coinciden el pin RCy/CCPx del PORTC (configurado como salida) sufre un evento. Los eventos son los configurados en CCPxM3:CCPxM0 del registro de control CCPxCON para el modo Comparacin. Al coincidir CCPRxH:CCPRxL y TMR1 se activa el bit de interrupcin CCPxIF y si la interrupcin est habilitada mediante CCPxIE, se genera un interrupcin. TMR1 en este modo debe estar configurado como temporizador o contador sncrono, nunca en modo asncrono. Si se ha seleccionado el modo disparo especial, el mdulo CCP1 y CCP2 realizan tareas distintas. El CCP1 pone a 0 el TMR1 y el CCPR1 funciona como un Registro de Perodo capaz de generar peridicamente interrupciones. El CCP2 pone a 0 el TMR1 y adems inicia una conversin del A/D, con lo que se pueden realizar conversiones peridicas. Aunque TMR1=0 no se genera interrupcin del timer1.
MICROCONTROLADORES II Prof. Luis Zurita
IUT Cuman
MICROCONTROLADORES II
MODO PWM
IUT Cuman
Con este modo se consiguen impulsos, cuya anchura de nivel alto es de duracin variable y sirven para control de motores y generacin de seales. Se utiliza un mdulo CCP, el timer2 y un pin RCy/CCPx de salida. El comparador entre el valor PR2 y TMR2 cuando detecta la igualdad: 1. Activa 1 el flip-flop de salida. 2. Resetea TMR2. 3. El valor de CCPRxL se carga en CCPRxH. El periodo de la seal se calcula como: Periodo=[(PR2)+1]*4*Tosc*(Valor predivisor TMR2) Se comparan los valores de 10 bits ([CCPRxH:CCP1CON(5:4)]) y TMR2 concatenados con los dos bits de menor peso del reloj interno) cuando son iguales: 1. Desactiva 0 el flip-flop de salida. 2. No resetea TMR2 El ciclo activo es: Ancho pulso=(CCPRxL:CCP1CON(5:4))*Tosc*(V. predivisor TMR2)
MICROCONTROLADORES II
FLUJOGRAMA PWM
IUT Cuman
MICROCONTROLADORES II
SEAL PWM
IUT Cuman
MICROCONTROLADORES II
SEAL PWM
IUT Cuman
MICROCONTROLADORES II
Modo PWM
Pasos para configurar el PWM: 1. Asignar PR2. 2. Asignar CCPRxL y CCPxCON(5:4). 3. Configurar RCy/CCPx de salida. 4. Asignar Pre-divisor en T2CON. 5. Activar TMR2 en T2CON. 6. Configurar CCPx en modo PWM.
MICROCONTROLADORES II
IUT Cuman
CCP1CON
U-0 --Bit 7 U-0 R/W-0 CCP1X R/W-0 CCP1Y R/W-0 CCP1M3 R/W-0 R/W-0 R/W-0 CCP1M2 CCP1M1
IUT Cuman
CCP1M0 Bit 0
Bit 7-6: No implementados: Se lee como "0" Bit 5-4: CCP1X: CCP1Y: bit menos significativos de PWM Modo Captura sin usar Modo Comparacin sin usar Modo PWM: Estos dos bit son los menos significativos del ciclo de PWM. Los ocho bits ms significativos se encuentran en CCPR1L. Bit 3-0: CCP1M3-.CCP1M0; bit de seleccin del modo de trabajo del mdulo comparador CCP1.
MICROCONTROLADORES II
CCP1CON
IUT Cuman
MICROCONTROLADORES II
IUT Cuman
MICROCONTROLADORES II
EJERCICIOS CCP
Zona de Configuracin
IUT Cuman
Se configuran los bancos Se configura el mdulo CCP Se configuran las Interrupciones (opcional) Se regresa al Banco 0
(Tratamiento de la informacin)
Captura: Medir perodo, Ton, Toff Comparacin: Setpoint 16 bits PWM: Genera seal Captura: Comparaciones Y acciones Comparacin:
Accin sobre RCx
MICROCONTROLADORES II
IUT Cuman
Configure el Mdulo CCP en modo Comparacin, donde: El TMR1 est configurado para contar pulsos externos, con un prescaler 1:1, flanco ascendente. Se debe cargar CCPR1L con la constante Ncompar, y producir una interrupcin cada vez que se alcanza el valor fijado. Al ocurrir esto, RB0 cambia de estado. RC2, no debe modificar su valor.
MICROCONTROLADORES II Prof. Luis Zurita
IUT Cuman
Realice la medicin de la duracin de un pulso. Emplear el mdulo CCP1 y capturar el valor del TMR1 cada vez que llegue un flanco ascendente y otro descendente por la lnea RC2/CCP1. Conocida la velocidad a la que evoluciona el TMR1, se puede determinar la duracin del tiempo transcurrido entre ambos flancos, lo que nos dar la anchura del pulso. Configure al Timer1 con reloj interno y prescaler 1:1, para obtener medida mxima de perodo= 65,536 ms. Cambie la orden de captura de ascendente a descendente al ocurrir la primera captura. (Dentro de la RSI).
MICROCONTROLADORES II
EJERCICIO PWM
IUT Cuman
Generar una seal de onda cuadrada por la lnea RC2/CCP1 cuyo periodo puede ser modificado as como la anchura del pulso (Duty Cycle). Utilice las siguientes frmulas
(Perodo) T=(PR2+1)*4*Tosc*TMR2 preescaler. (Duty Cycle)= (DC)=(CCPR1L:CCPCON1<5:4>)*Tosc*TMR2 preescaler.
La seal de salida tiene un periodo determinado por la constante "Periodo" y una anchura "Duty Cycle determinada por la constante "Duty"
MICROCONTROLADORES II