timers a - b. usos y programación

34
1 Universidad Técnica Federico Santa María Departamento de Electrónica Seminario II Timers A - B. Timers A - B. Usos y programación Usos y programación . . Paola Rojas Paola Rojas Pablo Naveas Pablo Naveas Carlos Silva Carlos Silva Claudio Ramírez Claudio Ramírez Christian Christian Pelissier Pelissier

Upload: aren

Post on 16-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Timers A - B. Usos y programación. Paola Rojas Pablo Naveas Carlos Silva Claudio Ramírez Christian Pelissier. Introducción. ¿ Que es un Timer? Corresponde a un “contador” que está sincronizado con algún reloj (“clock”). Se encarga de cuantificar el tiempo. Usos de los Timers. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Timers A - B.  Usos y programación

11

Universidad Técnica Federico Santa María Departamento de Electrónica Seminario II

Timers A - B. Timers A - B. Usos y programaciónUsos y programación..

Paola RojasPaola Rojas

Pablo NaveasPablo NaveasCarlos SilvaCarlos SilvaClaudio RamírezClaudio RamírezChristian PelissierChristian Pelissier

Page 2: Timers A - B.  Usos y programación

22

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

¿ Que es un Timer?

• Corresponde a un “contador” que está sincronizado con algún reloj (“clock”).

• Se encarga de cuantificar el tiempo.

IntroducciónIntroducción

Page 3: Timers A - B.  Usos y programación

33

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

• Aplicaciones de tiempo real.• Contador para ciertos eventos, dependiendo de la

aplicación.• Algunos permiten generar “avisos” a ciertos intervalos

y/o eventos externos y con esto poder realizar alguna

tarea necesaria.

Usos de los TimersUsos de los Timers

Page 4: Timers A - B.  Usos y programación

44

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Principales características destacadas en el C MSP430F149:

• Timer/contador de 16 bit (máximo).

• Fuente de reloj seleccionable y configurable.

• Se puede pre-escalar el reloj (1, 2, 4 u 8)

• Registros configurables en captura/comparación.

• Salidas configurables con capacidad PWM.

• Registro de vector de interrupciones, para manejo de

overflow y de Capt./Comp.

Características de los timers A y BCaracterísticas de los timers A y B

Page 5: Timers A - B.  Usos y programación

55

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Diferencias entre los Timers A y BDiferencias entre los Timers A y B

• El tamaño de cuenta del Timer B es programable a 8, 10, 12 o 16 bits. El Timer A es fijo de 16 bits.

• Timer B tiene 7 registros de Cap./comp. Mientras que Timer A sólo 3 registros.

• Los registros TBCCRx del Timer B tienen buffers dobles y pueden ser agrupados.

Page 6: Timers A - B.  Usos y programación

66

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Diagrama de Bloques Timer ADiagrama de Bloques Timer A

Page 7: Timers A - B.  Usos y programación

77

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Diagrama de Bloques Timer BDiagrama de Bloques Timer B

Page 8: Timers A - B.  Usos y programación

88

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Registros de los TimersRegistros de los Timers

TBCTL, Registro de Control del Timer_B

15 14 13 12 11 10 9 8

TBLGRPx CNTLx TBSSELx

7 6 5 4 3 2 1 0

Idx MCx TBCLR TBIE TBIFG

TACTL, Registro de Control del Timer_A

15 14 13 12 11 10 9 8

TASSELx

7 6 5 4 3 2 1 0

Idx MCx TACLR TAIE TAIFG

Page 9: Timers A - B.  Usos y programación

99

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Registros de los Timers cont.Registros de los Timers cont.

TBCCTLx Registro de Control de Captura/Comparación

15 14 13 12 11 10 9 8

CMx CCISx SCS CLLDx CAP

7 6 5 4 3 2 1 0

OUTMODx CCIE CCI OUT COV CCIFG

TACCTLx Registro de Control de Captura/Comparación

15 14 13 12 11 10 9 8

CMx CCISx SCS SCCI CAP

7 6 5 4 3 2 1 0

OUTMODx CCIE CCI OUT COV CCIFG

CLLDx

Page 10: Timers A - B.  Usos y programación

1010

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Registros de los Timers cont.Registros de los Timers cont.

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

Timer_B Registro del Vector de Interrupción

0 0 0 0 0 0 0 0

0 0 0 0 TBIVx 0

15 14 13 12 11 10 9 8

7 6 5 4 3 2 1 0

Timer_A Registro del Vector de Interrupción

0 0 0 0 0 0 0 0

0 0 0 0 TAIVx 0

Page 11: Timers A - B.  Usos y programación

1111

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Otros RegistrosOtros Registros

• Registro de los valores de los Timers: TAR, TBR

• Registro de Captura/Comparación: TACCRx, TBCCRx

Page 12: Timers A - B.  Usos y programación

1212

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Programación: PasosProgramación: Pasos• Configurar las puertas que se utilizarán (I/O o periféricos) • Configurar la señal de reloj a utilizar (ACLK, TACLK…) • Configuración del Timer (TxCTL, TxCCTLx)

• Modo de cuenta (Up/down, Up, Continuo)• Habilitación de interrupciones • Modo de comp/capt• Modos de salida •Si corresponde, programar rutinas de servicio de interrupciones

Page 13: Timers A - B.  Usos y programación

1313

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Ejemplos de programaciónEjemplos de programación Inicio de conteo usando Timer A.

void InitTimer_A(void) { P1SEL = 0x80; P1DIR |= BIT7; //Salida Dallas habilitada

// ACLK / 8 , habilitar interrupciones.TACTL = ID1 | ID0 | TASSEL0 | TAIE; TACTL |= MC1; // modo continuo TACCTL2 = OUTMOD2 | OUTMOD1 | OUTMOD0 | CCIS0; // en este caso el Timer_A está en Reset/set TACCTL2 &= ~CAP; // modo de comparación TACCR0 = 0xAAAA; // config. Registros cap/comp para salidaTACCR2 = 0x5555; }

Page 14: Timers A - B.  Usos y programación

1414

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Cont. EjemplosCont. EjemplosEjemplo de captura usando el timer B

void InitTimer_B (void) {P4SEL |= BIT4; // se setea P4.4 como periférico (TB4) /* Config. Timer_B*/ TBCTL = ID1 | TBSSEL0 | TBIE; // cuenta a 16 bit /* captura en canto de bajada señal input, interrupción habilitada */ TBCCTL4 |= CM1 | CCIE;

TBCCTL4 |= CAP; // modo de captura TBCTL |= MC1; // inicio timer en modo continuo _EINT(); // habilitación general int’s. }

Page 15: Timers A - B.  Usos y programación

1515

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Cont. EjemplosCont. EjemplosRutina de servicio de interrupciones#pragma vector=TIMERB1_VECTOR__interrupt void TCPClockHandler (void){ if (TBIV == 14) // check for timer overflow { LPM3_EXIT; } if (TBIV == 8) // check for input signal (P4.4 = B1) { TBCCTL4 &= ~COV; LPM3_EXIT; //capture = TBCCR4; } }

Page 16: Timers A - B.  Usos y programación

1616

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Restricciones del uso del Timer ARestricciones del uso del Timer A

Page 17: Timers A - B.  Usos y programación

1717

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Restricciones del uso del Timer BRestricciones del uso del Timer B

Bot

one

s

Page 18: Timers A - B.  Usos y programación

1818

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Muchas Gracias por su atención.Muchas Gracias por su atención.

¿CONSULTAS?¿CONSULTAS?

Page 19: Timers A - B.  Usos y programación

1919

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

El reloj puede ser configurado a través del registro TACTL en los bits TASSELx. Seleccionándose una fuente interna o externa.

• TACLK que se encuentra configurado por defecto, es decir es configurado con los bits en TASSELx en 00.

• ACLK, que corresponde al reloj auxiliar configurable con los bits TASSELx en 01.

• SMCLK que es el sub-sistema del reloj maestro, se configura con los bits TASSELx en 10.

• El reloj externo, que se configura con los bits TASSELx en 11.

La fuente de reloj puede ser pasada directamente al temporizador o dividida por 2, 4 ó 8, usando los bits

Selección de fuente de reloj y divisor.Selección de fuente de reloj y divisor.

Page 20: Timers A - B.  Usos y programación

2020

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

• Tiene 4 modos de operación• Se setean utilizando los bits de MCx

Modos de operaciónModos de operación

Page 21: Timers A - B.  Usos y programación

2121

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Up mode

• El timer cuenta repetitivamente hasta el valor indicado por el registro de comparación TACCR0

• Cuando el valor del timer alcanza el valor de TACCR0, se empieza la cuenta nuevamente desde cero.

• Si el UP MODE es seleccionado cuando el valor del timer es mayor que TACCR0, el timer inmediatamente empieza la cuenta desde cero.

• El TACCR0 CCIFG flag de interrupción es activado cuando el valor del timer alcanza el valor de TACCR0.

• EL flag de interrupción TAIFG es activado cunado el timer cuenta desde TACCR0 a cero.

Page 22: Timers A - B.  Usos y programación

2222

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modo continuo

• En este modo el timer cuenta repetitivamente hasta el valor de 0FFFFh y empieza nuevamente desde cero.

• El flag de interrupciones es activado cuando el time cuenta desde 0FFFFh a 0h

Page 23: Timers A - B.  Usos y programación

2323

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modo Up/Down

• Es utilizado cuando se necesita obtener un pulso simetrico.

• El timer cuenta repetitivamente hasta un valor TACCR0 y luego decrementa su valor hasta cero.

• La direcion de conteo se encuentra latcheada. Lo que permite al timer se detenido y luego encendido, contando en la misma dirección que había quedado antes de ser detenido.

• Si el valor del bit TACLR es seteado se limpia la dirección en que se estaba contando además del valor del TAR y del TACLK divider.

Page 24: Timers A - B.  Usos y programación

2424

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modo Up/Down

• En este modo el flag de interrupción TACCR0 CCIFG y el flag de interrupción TAIFG están activos solo una vez por periodo, separados por medio periodo del timer.

• TACCR0 CCIFG se activa cuando el timer cuenta TACCR0-1.

• TAIFG se activa cuando el timer cuenta cero.

Page 25: Timers A - B.  Usos y programación

2525

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

• Este modo se usa para registrar eventos temporales.

• Este modo se selecciona cuando CAP=1 en el registro de control TACCTLx.

• Las entradas de captura están conectadas a pines externos o señales internas que se seleccionan con los bits CCISx.

Modo CapturaModo Captura

Page 26: Timers A - B.  Usos y programación

2626

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modo CapturaModo Captura• La captura de la señal puede ser asincrónica con respecto

del timer del reloj y causa de una condición de carrera.

• Cuando la captura ocurre:•El valor del temporizador es copiado en el registro TACCRx.

•El flag de interrupción CCIFG es seteado

Page 27: Timers A - B.  Usos y programación

2727

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modo Comparación Modo Comparación • Este modo se usa para generar señales de salida PWM o interrupciones en un

intervalo especifico.

• Este modo se selecciona cuando CAP=0 en el registro de control TACCTLx.

Page 28: Timers A - B.  Usos y programación

2828

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modo Comparación

• Cuando el TAR cuenta hasta el valor almacenado en TACCRx:

•La interrupción del flag CCIFG es seteada.

•La señal interna EQUx = 1.

•EQUx afecta la salida según el modo de salida.

•La señal de entrada CCI es latcheada en SCCI.

Page 29: Timers A - B.  Usos y programación

2929

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

•Si TBR cuenta al valor de un TBCLx:

•Se activa el flag de interrupción CCFIG

•Señal interna EQUx=1

•EQUx afecta la salida, de acuerdo al modo de salida

•Latch de comparación TBCLx

•TBCLx mantiene el valor a comparar con el valor del Timer. (TBCLx es “buffered “ por TBCCRx)

•El dato a comparar se escribe en cada TBCCRx y se transfiere automáticamente a TBCLx

•Cuando se activa la comparación, TBCCRx finaliza el control de usuario, i.e., no existe acceso directo a TBCLx

Modo Comparación BModo Comparación B

Page 30: Timers A - B.  Usos y programación

3030

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Eventos de CargaEventos de Carga•El momento de la transferencia lo selecciona el usuario con los bits de CLLDx

•El nuevo dato se transfiere de TBCCRx a TBCLx

CLLDx Descripción

•00 inmediatamente al escribirse en TBCCRx

•01 cuando TBR cuenta a 0

•10 modo up y continuo:

•Cuando TBR cuenta a 0

modo up down:

•Cuando TBR cuenta al valor antiguo de TBCLx o a 0

•11 Cuando TBR cuenta al valor antiguo de TBCLx

Page 31: Timers A - B.  Usos y programación

3131

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Agrupación de Latch de Agrupación de Latch de comparacióncomparación

•Pueden agruparse juntos para actualizaciones simultaneas de los bits de TBCLGRPx

•Condiciones para la carga grupal:

•Debe ocurrir el evento de carga

•Todos los registros TBCCRx del grupo deben actualizarse, incluso cuando cuando el valor nuevo es igual al antiguo

Page 32: Timers A - B.  Usos y programación

3232

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

•El evento de carga del grupo es definido por los bits CLLDx del menor de los latch de comparación TBCCRx del grupo, con excepción de TBCLGRP =3

•Si CLLDx = 0 del TBCCRx que controla, los latch de comparación se actualizan automáticamente cuando su TBCCRx correspondiente es escrito, i.e., No están agrupados.

Agrupación de Latch de Agrupación de Latch de comparacióncomparación

Page 33: Timers A - B.  Usos y programación

3333

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Modos de Salida

• Cada bloque de captura/comparación contiene una unidad de salida para generar distintas señales.

• Cada señal de salida tiene ocho modos de operación. Estos modos se configuran con el registro de control TACCTLx con los bits OUTMODx.

OutputOutput

SetSet

Toggle/ResetToggle/Reset

Set/ResetSet/Reset

ToggleToggle

ResetReset

Toggle/SetToggle/Set

Reset/SetReset/Set

Page 34: Timers A - B.  Usos y programación

3434

Universidad Técnica Federico Santa María Departamento de ElectrónicaSeminario I

Ejemplos Unidad de SalidaEjemplos Unidad de SalidaModo UP Modo continuo Modo Up/Down