microcontroladores pic

Anuncio
LOS TIMER DE LOS 16F87x
MICROCONTROLADORES PIC
TEMA
EL TIMER 1
CCFF D.P.E. MÓDULO DE PROYECTOS
1
LOS TEMPORIZADORES
Diagrama de Bloques del TIMER1
CCFF D.P.E. MÓDULO DE PROYECTOS
2
LOS TEMPORIZADORES
INTRODUCCIÓN
El módulo TIMER1 es un temporizador/contador de
16 bits, está formado por la unión de dos registros
TMR1H y TMR1L, de 8 bits cada uno.
Ambos registros se pueden leer y escribir.
El par de registros TMR1 (TMR1H:TMR1L),
(TMR1H:TMR1L) se
incrementan desde 0000h a FFFFh, para volver a
comenzar desde 0000h.
Si la interrupción de TMR1 está habilitada, cuando
el contador pasa de todo 1 a todo 0, se activará,
señalándose esta circunstancia en el flag
correspondiente, TMR1IF (PIR1<0>).
CCFF D.P.E. MÓDULO DE PROYECTOS
3
LOS TEMPORIZADORES
La interrupción del TMR1 puede ser habilitada o
enmascarada, poniendo a 1 ó 0 el bit TMR1IE
(PIE1<0>).
El TIMER1 pueden operar de dos modos:
• Como temporizador
• Como contador
El modo de funcionamiento se determina por el
origen de los pulsos a contar, mediante el bit,
TMR1CS (T1CON<1>).
CCFF D.P.E. MÓDULO DE PROYECTOS
4
LOS TEMPORIZADORES
A.- En el modo temporizador, el TIMER1 se
incrementa con cada ciclo de instrucción (Fosc/4).
B.- En el modo contador, el TIMER1 se
incrementa con cada flanco ascendente de un
reloj externo.
El
Timer1 puede ser activado/desactivado,
poniendo a 1/0 el bit TMR1ON (T1CON<0>).
El Timer1 posee un reset interno, este “RESET”,
puede ser generado por cualquiera de los dos
módulos CCP que posee el PIC.
CCFF D.P.E. MÓDULO DE PROYECTOS
5
LOS TEMPORIZADORES
Cuando el oscilador del Timer1 está habilitado
(T1OSCEN es 1), los pines RC1/T1OSI/CCP2 y
RC0/T1OSO/T1CKI son entradas, y el valor de
TRISC<1:0>es ignorado, y la lectura de estos
pines da ‘0’.
CCFF D.P.E. MÓDULO DE PROYECTOS
6
LOS TEMPORIZADORES
El Registro T1CON
T1CON es el registro de control del TIMER1, y
contiene los bits de: modo de funcionamiento
del
módulo
temporizador/contador,
habilitación del oscilador
del timer1,
programación del preescaler etc.
Ocupa la dirección 10h de memoria RAM
CCFF D.P.E. MÓDULO DE PROYECTOS
7
LOS TEMPORIZADORES
El Registro T1CON
TMR1ON: ACTIVACIÓN/PARADA del TIMER1
– 1: Habilita el timer
– 0: El timer no funciona (valor por defecto)
TMR1CS: Bit de selección de la fuente del reloj
(modo de funcionamiento)
91:Reloj externo; ( contador) por el pin
RC0/T1OSO/T1CKI (en el flanco de subida)
90: Reloj interno (FOSC/4) valor por defecto
CCFF D.P.E. MÓDULO DE PROYECTOS
8
LOS TEMPORIZADORES
El Registro T1CON
#T1SYNC: BIT DE CONTROL DE LA
SINCRONIZACIÓN DE LA SEÑAL DE
ENTRADA (en modo contador).
Hay que comprobar el valor de TMR1CS,
Si TMR1CS=1
– 1: No sincroniza la entrada de reloj externo.
– 0: Sincroniza la entrada de reloj externa
Si TMR1CS=0
No se tiene en cuenta el valor de T1SYNC, ya
que la señal activa para el timer1 es interna
(modo temporizador) y ya está sincronizada.
CCFF D.P.E. MÓDULO DE PROYECTOS
9
LOS TEMPORIZADORES
El Registro T1CON
• T1OSCEN: Bit de habilitación del oscilador del
TIMER1, cuando se utiliza un oscilador externo,
hay que poner este bit a 1, EL TIMER1 PUEDE
TRABAJAR A UNA FRECUENCIA TOTALMENTE
INDEPENDIENTE DEL SISTEMA.
– 1: Habilita el oscilador.
– 0: Deshabilita el oscilador.
El inversor de entrada al oscilador se desconecta
para disminuir el consumo.
CCFF D.P.E. MÓDULO DE PROYECTOS
10
LOS TEMPORIZADORES
El Registro T1CON
• T1CKPS1:T1CKPS0: Bits de selección del
rango del preescaler, que actúa sobre la señal
de reloj del TIMER1.
TCKPS1
TCKPS0
0 0
0 1
1 0
1 1
Valor del
preescaler
1:1
1:2
1:4
1:8
Bits 7:6 Bits no implementados se leen como “0”.
CCFF D.P.E. MÓDULO DE PROYECTOS
11
LOS TEMPORIZADORES
EL TIMER 1 Como Temporizador
Este modo de funcionamiento se selecciona
poniendo a “0” el bit TMR1CS (T1CON<1>).
En este modo de trabajo el origen de los pulsos a
contar es interno, y proceden del reloj del sistema
siendo su frecuencia FOSC/4.
Evidentemente en este caso el bit T1SYNC no tiene
sentido ya que no existe señal a sincronizar.
CCFF D.P.E. MÓDULO DE PROYECTOS
12
LOS TEMPORIZADORES
EL TIMER 1 Como Contador
Este modo de funcionamiento se selecciona
poniendo a 1 el bit TMR1CS (T1CON<1>).
En este modo de trabajo el origen de los pulsos a
contar es externo, siendo el flanco activo
siempre el de subida.
Después de que el TIMER1 se ha configurado
como contador se debe producir un flanco de
bajada para que se empiece a contar.
CCFF D.P.E. MÓDULO DE PROYECTOS
13
LOS TEMPORIZADORES
EL TIMER 1 Como Contador
Dentro del modo contador se distinguen dos
clases de contador:
™
™
Contador síncrono
Contador asíncrono
CCFF D.P.E. MÓDULO DE PROYECTOS
14
LOS TEMPORIZADORES
EL TIMER 1 Como Contador Síncrono
Para
seleccionar
este
modo
de
funcionamiento
en
primer
lugar
deberemos tener TMR1CS a 1 (modo
contador) y además T1SYNC estar a “0”.
Así, la señal externa es sincronizada con
la fase del reloj interno. La sincronización
se hace con la señal de salida del
preescaler, por lo tanto en la entrada del
preescaler, el reloj externo es asíncrono.
CCFF D.P.E. MÓDULO DE PROYECTOS
15
LOS TEMPORIZADORES
EL TIMER 1 Como Contador Síncrono
La
señal
de
reloj
es
por
el
pin
RC1/T1OSI/CCP2, si el bit T1OSCEN está a
“1”, o por el pin RC0/T1OSO/T1CKI, cuando el
bit T1OSCEN es “0”.
En esta configuración, y durante el modo SLEEP
mode, el Timer1 no se incrementa aunque el
reloj externo esté presente, sin embargo el
preescaler si que sigue incrementándose.
CCFF D.P.E. MÓDULO DE PROYECTOS
16
LOS TEMPORIZADORES
EL TIMER1 Como Contador Asíncrono
Para seleccionar este modo de funcionamiento, se
debe poner a “1” el bit TMR1CS (modo
contador), y además T1SYNC debe encontrarse
a 1 también.
En estas condiciones, la señal de reloj externa no
se sincroniza con el reloj interno. El contador
continúa incrementándose si el microcontrolador
se encuentra en el modo SLEEP y puede
generar una interrupción si se produce el
desbordamiento y despertar al procesador.
Cuando se trabaja con el TIMER1 en modo
contador asíncrono, éste no pude utilizarse
como base de tiempos para el módulo CCP.
CCFF D.P.E. MÓDULO DE PROYECTOS
17
LOS TEMPORIZADORES
Lectura Y Escritura En El TIMER1 Cuando Se
Trabaja En Modo Contador Asíncrono
Se puede leer TMR1H o TMR1L, mientras el
contador está funcionando con una señal de
reloj externa. Sin embargo el usuario debe
tener en cuenta que el valor de la cuenta es de
16 bits, y que debe ser leído en dos veces (8
bits cada vez), por lo cual puede ocurrir que se
produzca un overflow entre estas dos lecturas,
con lo cual el valor leído no es el correcto.
CCFF D.P.E. MÓDULO DE PROYECTOS
18
LOS TEMPORIZADORES
Lectura Y Escritura En El TIMER1 Cuando Se
Trabaja En Modo Contador Asíncrono
Para la escritura, se recomienda parar el
contador, y luego proceder a escribir el valor
deseado.
Una escritura mientras el registro está siendo
incrementado por la señal externa (no se ha
parado), produce que que el valor almacenado
en el contador sea impredecible.
CCFF D.P.E. MÓDULO DE PROYECTOS
19
LOS TEMPORIZADORES
Oscilador Del TIMER1
Se puede conectar un cristal entre los terminales
T1OSI (entrada) y T1OSO (salida del
amplificador). Este oscilador se habilita
poniendo a 1 el bit de control T1OSCEN
(T1CON<3>).
CCFF D.P.E. MÓDULO DE PROYECTOS
20
LOS TEMPORIZADORES
Oscilador Del TIMER1
El oscilador es de bajo consumo, y puede llegar a
funcionar hasta con frecuencias de 200kHz, En
estas condiciones , seguirá funcionando incluso
en el modo de bajo consumo (sleep).
Este oscilador fue concebido para funcionar con
un cristal de 32kHz. Y de idéntica manera al
oscilador LP del procesador, al cual es idéntico.
La estructura, así como los condensadores
típicos para el oscilador se muestran en la
siguiente transparencia.
CCFF D.P.E. MÓDULO DE PROYECTOS
21
LOS TEMPORIZADORES
CCFF D.P.E. MÓDULO DE PROYECTOS
22
LOS TEMPORIZADORES
Oscilador Del TIMER1
En el anterior circuito hay que observar que a
mayor capacidad, mayor estabilidad del
oscilador, pero también aumenta el start-up.
También se debe indicar que cada cristal/
resonador posee sus propias características. El
usuario debe consultar los valores apropiados
de los componentes externos al cristal.
CCFF D.P.E. MÓDULO DE PROYECTOS
23
LOS TEMPORIZADORES
Reset Del Timer1, Mediante El Disparo De Los
Módulos CCP
Si alguno de los módulos CCP1 o CCP2 están
configurados en modo comparación para generar
un
“disparo
por
evento
especial”
(CCP1M3:CCP1M0 = 1011), esta señal puede
resetear el Timer1.
Para aprovechar la anterior característica, el
TIMER1 debe configurarse en modo temporizador
o como contador síncrono, en el tercer modo
(contador asíncrono) no se produce el reset.
CCFF D.P.E. MÓDULO DE PROYECTOS
24
LOS TEMPORIZADORES
Reset Del Timer1, Mediante El Disparo De Los
Módulos CCP
Nota: El disparo por evento especial en CCP1 y
CCP2, no provoca que se ponga a 1 el flag de
interrupción TMR1IF (PIR1<0>).
En este modo de operación, el par de registros
CCPRxH:CCPRxL se reinician para tener el
mismo periodo que el timer 1.
Si el evento especial de CCP1 o CCP2 coincide
con una escritura sobre TMR1, se escribirá el
valor anterior.
CCFF D.P.E. MÓDULO DE PROYECTOS
25
LOS TEMPORIZADORES
Reset De Los Registros TMR1H Y TMR1L
Los registros TMR1H y TMR1L no se ponen a 00h
después de un Power On Reset (POR), o por
cualquier otro RESET, excepto por el disparo por
eventos especiales de CCP1 o CCP2
El registro T1CON, tras unPower-on Reset, o un
Brown-out Reset, se pone a 00h, el timer se para
y el el preescaler es situado con el factor 1:1.
Con los demás reset, el registro no se ve afectado.
El preescaler se resetea siempre que se escribe
sobre el registro TMR1H o TMR1L.
CCFF D.P.E. MÓDULO DE PROYECTOS
26
LOS TEMPORIZADORES
Registros Asociados Con El
Contador/Temporizador TIMER1
CCFF D.P.E. MÓDULO DE PROYECTOS
27
Descargar