Manejo de los timers con el microcontrolador motorola
1.
2. 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
3. TIMER
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.
4.
5. FUENTES DE INTERRUPCIÒN
DEBIDAS AL TIM
TOF: Bandera de rebosamiento del TIM
Valor TOIE
1 Lógico TIM $0000
MODULO 1 Lógico
CH1F:CH0F: Banderas de Canales
1 Lógico Entrada Canal X CHxIE
Interrupción
1 Lógico
6. REGISTRO TSC
Direcció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
8. 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 0
Leer Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escribir
REGISTRO TCNTL - Dirección $0022
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Leer Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escribir
9. REGISTRO MODULO DE TIEMPO
TMODH/L
REGISTRO TMODH - Dirección $0023
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Leer
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escribir
REGISTRO TMODL - Dirección $0024
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Leer
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escribir
10. 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 CH0F
CH0IE 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 0
Leer CH1F 0
CH01IE MS1A ELS1B ELS1A TOV1 CH1MAX
Escribir 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.
11. ELSxB y ELSxA: bits de selección de flanco o
nivel
MSxB MSxA ELSxB ELSxA MODO CONFIGURACION
X 0 0 0 Pin bajo control del puerto
Salida 1 Logico como valor incial
preestablecida Pin bajo control del puerto
X 1 0 0
0 Logico como valor inicial
0 0 0 1
Captura con solo flacno ascendente
0 0 1 0 Captura de Captura con solo flacno descendente
entrada Captura con solo flanco ascend. o
0 0 1 1 descend.
0 1 0 1
Salida de Toggle en comparación
0 1 1 0 Comparación de
Salida 0 Lógica en comparación
salida o PWM
0 1 1 1 Salida 1 Lógica en comparación
1 X 0 1
Comparacion de Salida de Toggle en comparación
1 X 1 0
salida con buffer Salida 0 Lógica en comparación
1 X 1 1 o PWM con buffer Salida 1 Lógica en comparación
TOVx: bit de habilitación de Toggle en rebosamiento.
CHxMAX: bit de máxima duración del ciclo en el canal x.
12. REGISTROS DE CANALES DEL TIM
(TCH0H/L:TCH1H/L)
REGISTRO TCH0H REGISTRO TCH1H
Dirección $0026 Dirección $0029
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Leer
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escribir
REGISTRO TCH0L REGISTRO TCH1L
Dirección $0027 Dirección $002A
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Leer
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escribir
13. 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.
14. IMPLEMENTACIÒN “PWM” EN EL
MICROCONTROLADOR
PERIODO MODULO TIM
OPERACION DE
MODULACION
PWM TCHxF/L
Periodo y ancho de pulso de la operación PWM
REBOSAMIENTO REBOSAMIENTO REBOSAMIENTO
PERIODO
ANCHO
DEL
PULSO
TCHx
COMPARACION
COMPARACION
COMPARACION DE SALIDA
DE SALIDA
DE SALIDA
15. 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=1
b. TRST=1
2. 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.
16. 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=1
c. 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.
17. 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
18. 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.
19. 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.