TIMERS

16
TIMERS Modelo Básico : 2 Timers/Contadores de 16 bits (T0 y T1) Derivados: 3 Timers/Contadores de 16 bits (T0, T1 y T2) Timers : Cuentan ciclos de Máquina (1 cuenta cada 12 clocks) Contadores: Cuentan Flancos descendientes de entradas externas P3.4 External Input T0 P3.5 External Input T1 Para que cuente tiene que estar 1 ciclo de máquina en cada estado (fck / 24 ¡optimista!) Registros: Cada uno posee: dos registros de 8 bits R/W TH0, TL0 y TH1, TL1

description

TIMERS. Modelo Básico : 2 Timers/Contadores de 16 bits (T0 y T1) Derivados: 3 Timers/Contadores de 16 bits (T0, T1 y T2) Timers : Cuentan ciclos de Máquina (1 cuenta cada 12 clocks) Contadores: - PowerPoint PPT Presentation

Transcript of TIMERS

Page 1: TIMERS

TIMERS

Modelo Básico : 2 Timers/Contadores de 16 bits (T0 y T1)

Derivados: 3 Timers/Contadores de 16 bits (T0, T1 y T2)

Timers: Cuentan ciclos de Máquina (1 cuenta cada 12 clocks)

Contadores:

•Cuentan Flancos descendientes de entradas externas P3.4 External Input T0P3.5 External Input T1Para que cuente tiene que estar 1 ciclo de máquina en cada estado (fck / 24 ¡optimista!)

Registros: Cada uno posee: dos registros de 8 bits R/W

TH0, TL0 y TH1, TL1

Page 2: TIMERS

Timers

• Registros de Control:

• TMOD (0x89)

• TCON (0x88)

C/T: 1 Contador 0 Timer

TF1, TF0: Flags de OverflowCuentan hacia arriba (up), Overflow 0xFFFF 0x0000Si está habilitada dan IRQ

M1, M0: Modos de funcionamiento

C/T M1 M0 Gate C/T M1 M0

Timer 1 Timer 0

Gate

TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1

Page 3: TIMERS

Timers

Clock / 12

1

23

1 2 1

23

TLiTHi TFiTi

INTi

TRi

Gate

C/T

0

1

(P3.2- P3.3)

(P3.4- P3.5)

Page 4: TIMERS

Timers

• M1=0, M0=0: Modo 0Contador o Timer de 13 bits (compatible 8048) [No Usar]

• M1=0, M0=1: Modo 1Contador o Timer de 16 bits

• M1=1, M0=0: Modo 2Contador o Timer de 8 bits (Tli) con auto recarga de Thi sobre Tli en overflow

• M1=1, M0=1: Modo 3T0 en Modo 3 : 2 Contadores o Timers de 8 bits (TL0 y TH0)TL0 con los bits de control de TMOD para T0 (puede dar IRQ)TH0 con los bits de control de TMOD para T1 (puede dar IRQ)Con T0 en Modo 3 se pierde control de T1 y este no dá IRQT1 en Modo 3 : detenido, conservando su cuenta

T0 en Modo 3 y T1 en modo 1 : T0 2 Contadores o Timers de 8 bits (TL0 y TH0) T1 Generador de Baud Rate (no da IRQ)

Page 5: TIMERS

Tiempos Largos y Precisos

• Por ejemplo: quiero hacer algo cada tres minutos:

• ;clock = 12 Mhz• dseg at 0x20• mseg: ds 1• seg: ds 1• min: ds 1 • mseg50 equ 0x10000-50000 ;50 mseg

• Tmseg equ 20 ;1 seg

• Tseg equ 60 ;1 minuto

• Tmin equ 3 ;cant.de minutos

• cseg at 0000• mov mseg,#Tmseg• mov seg ,#Tseg• mov min ,#Tmin• mov TH1 ,#HIGH(mseg50);cargo el

timer 1

• mov TL1 ,#LOW(mseg50)• mov TMOD,#00010000B ; Modo 1

• mov IE ,#10001000B ;Habilito IRQ de T1

• setb TR1 ; arranco el timer

• ;.......................

• IRQT1:• push Acc• push psw• clr TR1 ; paro el

timer

• mov A,#LOW mseg50 ; 2 cm.

• clr C ; 1 cm

• subb A,TL1 ; 2 cm

• subb A,# Ciclos ; 2 cm

• mov TL1,A ; 2 cm

• mov A,#HIGH mseg50 ; 2 cm.

• subb A,#0 ; 2 cm

• mov TH1,A ; 2 cm

• setb TR1 ; 2 cm

• ;Ciclos = 17

• Ciclos equ 17

• ;Comienza la rutina…….

Page 6: TIMERS

Tiempos Largos y Precisos

• ;Comienza la Rutina:

• dec mseg Mov A, mseg Jnz fin Mov mseg, #Tmseg Dec seg Mov A,seg Jnz fin Mov seg, #Tseg Dec min Mov A, min Jnz fin mov min, #Tmin Lcall HagaLoQueTengaQueHacerFin: pop PSW pop Acc reti

Page 7: TIMERS

Timer 2

• Patas:P1.0 T2 entrada de pulsos para contadorP1.1 T2EX entrada de control up/down

• RegistrosTH2 y TL2 PROPIOSRCAP2H y RCAR2L CAPTURAT2CON, T2MOD CONTROL DEL TIMER

• T2CON

• T2MOD

EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2TF2

DCENT2OE

Page 8: TIMERS

Timer 2

• C/T2 Contador o Timer

• TF2 Flag de Overflow

• EXF2 Flag Overflow

• MODOS

RCLK TCLK CP/RL2 TR2 MODO

0 0 0 1 16 BITS AUTORELOAD

0 0 1 1 16 BITS CAPTURE

1

0

1

0

1

1

X 1 BAUD RATE GENERATOR

X X 0 0 OFF

Page 9: TIMERS

Timer 2

• Modos de Funcionamiento

Baud Rate Generator

Para Tx, o Rx, o ambas, se selecciona con RCLK y TCLK, la no seleccionada puede tener el Baud Rate dado por T1 en Modo 1 o 3

T2 se incrementa a Fclk / 2

En este modo no genera interrupción

Se recarga con el contenido de RCAP2

)265536(32 RCAP

FclkBaudRate

Page 10: TIMERS

Timer 2

• AUTORELOAD

Se activa con CP/RL2 = 0

En Overflow se recarga con RCAP2H / L

Submodos dependen de DCEN (T2MOD), EXEN2 (T2CON) y T2EX (P1.1)

DCEN EXEN T2EX Cuenta Recarga en Recarga con Flag

0 0 - UP Overflow RCAP2H / L TF2

0 1 - UP Overflow RCAP2H / L TF2

0 1 T2EX  UP T2EX RCAP2H / L EXF2

1 - 0 DOWN TH/L2 = RCAP2H/L

0XFFFF TF2

1 - 1 UP Overflow RCAP2H / L TF2

Page 11: TIMERS

Timer 2

• CAPTURA

EXEN = 0 TIMER NORMAL En OV TF2 = 1 (debe clerearse por soft y puede generar IRQ)

EXEN = 1 TIMER NORMAL CON CAPTURA En OV TF2 = 1 (debe clerearse por soft y puede generar IRQ) Con T2EX (P1.1) se copia TH/L2 a RCAP2H/L,

se setea EXF2 (puede generar IRQ)

• INTERRUPCIONES

• Se habilitan con IE.5 (ET2)• La prioridad es la menor de todas• Se puede cambiar el nivel de Prioridad con IP.5 (PT2)• Vector en 0x002B (tanto para TF2 como para EXF2)

Page 12: TIMERS

Timer 2

• CLOCK OUT

• El timer 2 puede ser configurado como Clock para dispositivos externos.

• Para configurarlo:

C/T2 (T2CON.1) = 0 T2OE (T2MOD.2) = 1 TR2 (T2CON.2) = 1 arranca, = 0 para Clock sale por P1.0 No genera IRQ Se puede usar como Baud Rate Generator y Clock Out

simultaneamente (a la misma frecuencia).

4 65536 2 /

FclkFrecuenciaClock Salida

RCAP H L

Page 13: TIMERS

Métodos de Recuperación de errores

• Watch Dog

Mov DPTR, #0x80FE

Se codifica como:

1000 901001 80 sjmp1002 FE -21003 …..

Q5PNP

Reset

+ C122 uF

R2

10k

VCC

R7

100k

VCC + C222 uF

R6

10k

Px.y

R410k R8

100k74HC132

1

23

R1

1k

Q4NPN BCE

Page 14: TIMERS

Métodos de Recuperación de errores

• Watch Dog Interno (…52 y sucesivos)

• WDT Contador de 14 bitsWDTRST SFR de Control

• Luego del Reset el WDT queda deshabilitado

• Para habilitarlo:

mov WDTRST, # 0x1Emov WDTRST, # 0xE1

• No se puede deshabilitarPara resetearlo:

mov WDTRST, # 0x1Emov WDTRST, # 0xE1

• Cuenta ciclos de máquina. Máximo tiempo 16368 seg

Page 15: TIMERS

Métodos de Reducción de Energía

• IDLE

En activo el C consume 25 mA (AT89S52) En IDLE consume 6,5 mA. Los timers, Interrupciones, Serial Port, etc están activos, la CPU no recibe

clock.

Se ingresa pormedio de PCON, poniendo IDL = 1

Se sale con cualquier IRQ habilitada o con ResetLa instrucción que se ejecuta es la siguiente a:mov PCON, # 1

GF1 y GF0 son bits de Usuario

- - - GF1 GF0 PD IDLSMOD

Page 16: TIMERS

Métodos de Reducción de Energía

• POWER DOWN

El consumo en este estado es de 50 A

Se entra poniendo: mov PCON, # 2

Solo se sale con ResetLos registros se inicializanLa RAM interna se preservaLos ports conservan su valor, ALE y PSEN wuedan en 0

En modelos más modernos, se sale con IRQ esterna habilitada.