MANEJO DE LOS
TIMERS CON EL
MICROCONTROLADOR
MOTOROLA - FREESCALE
Marisol Rosas - Rubén Darío MedinaTecnólogo en Automatización Industrial
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
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
Diagrama en bloques del Clock de referencia del TIM
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
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
* 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
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
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
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.
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.
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
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.
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
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.
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.
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
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.
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.