manejo de los timers con el microcontrolador motorola

20
MANEJO DE LOS TIMERS CON EL MICROCONTROLADOR MOTOROLA - FREESCALE Marisol Rosas - Rubén Darío Medina Tecnólogo en Automatización Industria

Upload: tecautind

Post on 24-Jun-2015

678 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Manejo de los timers con el microcontrolador motorola

MANEJO DE LOS

TIMERS CON EL

MICROCONTROLADOR

MOTOROLA - FREESCALE

Marisol Rosas - Rubén Darío MedinaTecnólogo en Automatización Industrial

Page 2: Manejo de los timers con el microcontrolador motorola

TEMAS

Timer Fuentes de interrupción debidas al TIM Registro TSC Registro contador del TIM TCNTH/L Registro modulo de tiempo TMODH/L Registro de estado y control de canales del TIM Registros de canales del TIM (TCH0H/L:TCH1H/L) Función PWM Función Output Función Input

Page 3: Manejo de los timers con el microcontrolador motorola

El TIM es un modulo de tiempo de dos canales que recibe, compara, envía y

tiene funciones de modulación por ancho de pulso PWM.

TIMER

Page 4: Manejo de los timers con el microcontrolador motorola

Diagrama en bloques del Clock de referencia del TIM

Page 5: Manejo de los timers con el microcontrolador motorola

FUENTES DE INTERRUPCIÒN DEBIDAS AL TIM

TOF: Bandera de rebosamiento del TIM

TIM $0000Valor

MODULOTOIE

1 Lógico1 Lógico

CH1F:CH0F: Banderas de Canales

Entrada Canal X InterrupciónCHxIE

1 Lógico1 Lógico

Page 6: Manejo de los timers con el microcontrolador motorola

REGISTRO TSCDirección $0020

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Leer TOF     0 0      

Escribir 0 TOIE TSTOP TRST   PS2 PS1 PS0

* TOF: Bit indicador de rebosamiento del TIM

* TOIE: Bit habilitador de interrupción por rebosamiento del TIM

* TSTOP: Bit de parada del TIM

* TRST: Bit de Reset del TIM

Page 7: Manejo de los timers con el microcontrolador motorola

* PS[2:0]: Selección de bits para configuración del prescalador

PS2 PS1 PS0 PRESCALADOR DEL TIM

0 0 0 RELOJ INTERNO ÷ 1

0 0 1 RELOJ INTERNO ÷ 2

0 1 0 RELOJ INTERNO ÷ 4

0 1 1 RELOJ INTERNO ÷ 8

1 0 0 RELOJ INTERNO ÷ 16

1 0 1 RELOJ INTERNO ÷ 32

1 1 0 RELOJ INTERNO ÷ 64

1 1 1 NO DISPONIBLE

Configuración del prescalador

Page 8: Manejo de los timers con el microcontrolador motorola

REGISTRO CONTADOR DEL TIM TCNTH/L

REGISTRO TCNTH - Dirección $0021

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Leer Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8Escribir                

REGISTRO TCNTL - Dirección $0022

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Leer Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Escribir                

Page 9: Manejo de los timers con el microcontrolador motorola

REGISTRO MODULO DE TIEMPO TMODH/L

REGISTRO TMODH - Dirección $0023

REGISTRO TMODL - Dirección $0024

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Leer

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8Escribir

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Leer

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Escribir

Page 10: Manejo de los timers con el microcontrolador motorola

REGISTRO DE ESTADO Y CONTROL DE CANALES DEL TIM

REGISTRO TSCO - Dirección $0025  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Leer CH0FCH0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAX

Escribir 0

REGISTRO TSC1 - Dirección $0028

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Leer CH1F

CH01IE0

MS1A ELS1B ELS1A TOV1 CH1MAXEscribir 0  

CHxF: bit bandera del canal x. CHxIE: bit de habilitación de interrupción del

canal x. MSxB: modo de selección del bit B. MSxA: modo de selección del bit A.

Page 11: Manejo de los timers con el microcontrolador motorola

ELSxB y ELSxA: bits de selección de flanco o nivel

MSxB MSxA ELSxB ELSxA MODO CONFIGURACION

X 0 0 0Salida

preestablecida

Pin bajo control del puerto 1 Logico como valor incial Pin bajo control del puerto 0 Logico como valor inicial

X 1 0 0

0 0 0 1

Captura de entrada

Captura con solo flacno ascendente Captura con solo flacno descendente Captura con solo flanco ascend. o descend.

0 0 1 0

0 0 1 1

0 1 0 1

Comparación de salida o PWM

Salida de Toggle en comparación Salida 0 Lógica en comparación Salida 1 Lógica en comparación

0 1 1 0

0 1 1 1

1 X 0 1Comparacion de salida con buffer o PWM con buffer

Salida de Toggle en comparación Salida 0 Lógica en comparación Salida 1 Lógica en comparación

1 X 1 0

1 X 1 1 TOVx: bit de habilitación de Toggle en rebosamiento. CHxMAX: bit de máxima duración del ciclo en el

canal x.

Page 12: Manejo de los timers con el microcontrolador motorola

REGISTROS DE CANALES DEL TIM (TCH0H/L:TCH1H/L)

REGISTRO TCH0H Dirección $0026

REGISTRO TCH1H Dirección $0029

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0Leer

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8Escribir

REGISTRO TCH0L Dirección $0027

REGISTRO TCH1L Dirección $002A

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

LeerBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Escribir

Page 13: Manejo de los timers con el microcontrolador motorola

FUNCIÒN PWM

La modulación del ancho de pulso se usa para generar una forma de onda con un periodo fijo y ciclo variable.

Se pueden presentar diferentes frecuencias y resoluciones.

Tiene diferentes tipos de aplicaciones:

Generación de señales sinusoidales. Control de velocidad de un motor DC.

Page 14: Manejo de los timers con el microcontrolador motorola

IMPLEMENTACIÒN “PWM” EN EL MICROCONTROLADOR

PERIODO

PWM

MODULO TIM

TCHxF/L

OPERACION DE MODULACION

Periodo y ancho de pulso de la operación PWM

TCHx

PERIODO

ANCHO DEL

PULSO

COMPARACION DE SALIDA

COMPARACION DE SALIDA

REBOSAMIENTO REBOSAMIENTO REBOSAMIENTO

COMPARACION DE SALIDA

Page 15: Manejo de los timers con el microcontrolador motorola

INICIALIZACIÒN DE LA FUNCIÒN PWM.

Para lograr un correcto funcionamiento de la función PWM:

1. Efectuar las siguientes tareas en el registro TSC.a. TSTOP=1b. TRST=12. En los registros (TMODH:TMODL), escribir el valor

requerido para el periodo PWM.3. En los registros (TCHxH:TCHxL), escribir el valor

requerido para el ancho del pulso.

Page 16: Manejo de los timers con el microcontrolador motorola

4. En el registro TSCx, efectuar las siguientes tareas:

a. Escribir 0:1 (para comparación de salida sin buffer o señales PWM) o escribir 1:0 (para comparación de salida con buffer o señales PWM) en el modo de selección de bits MSxA; ver tabla de selección de modos y flancos.

b. TOVx=1c. Escribir 1:0 (para 0 lógico la comparación de

salida) o escribir 1:1 (para lógico la comparación de salida) en el bit de selección para flanco/nivel ELSxB:ELSxA.

5. TSTOP=0 del registro TSC.

Page 17: Manejo de los timers con el microcontrolador motorola

El valor de los registros del canal del TIM determina el ancho del pulso de la señal PWM. Aquí se tiene una variación de 256 incrementos.

Utilizar una salida PWM con o sin buffer puede

traer ventajas.

Una operación asíncrona puede causar operaciones incorrectas por uno o dos periodos de PWM.

Bandera de interrupción de rebosamiento del TIM

Page 18: Manejo de los timers con el microcontrolador motorola

FUNCION “OUTPUT COMPARE” Y SUS APLICACIONES

La función de comparación de salida usa los siguientes componentes para su óptimo funcionamiento:

Modulo de tiempo de 16 bits Un comparador Un latch de 16 bits de Output Compare Un pin de salida Un pin de control lógico y una fuente de

interrupción.

Sus aplicaciones van desde cronometraje o temporización de eventos hasta niveles de tensión en cargas eléctricas.

Page 19: Manejo de los timers con el microcontrolador motorola

FUNCION “INPUT COMPARE” Y SUS APLICACIONES

La función Input Compare se implementa a través de un pin de entrada como modo de selección de flanco, detector lógico y lógica de interrupción.

Utiliza un contador de 16 bits. Usando Input Compare se puede medir el

ancho de un pulso de entrada .

Se emplea comúnmente para realizar una referencia de tiempo absoluto de un evento externo, medir un periodo de entrada, entre otras aplicaciones.

Page 20: Manejo de los timers con el microcontrolador motorola