Sei sulla pagina 1di 19

JTP: Ing.

Jos Jurez
Circuitos Digitales y Microntroladores.
Ingeniera en Computacin
Facultad Ingeniera- UNLP
Una de las caractersticas mas destacables de
un microcontrolador es la capacidad de realizar
tareas temporizadas.
Para esto los uC cuentan con un perifrico
TIMER o TEMPORIZADOR
Pero adems de las aplicaciones ya vistas:
Generacin de retardos
Interrupcin de tiempo-real (planificacin de tareas)
Proteccin Watch-Dog

Un Timer se puede utilizar para:
Generacin de seales digitales con frecuencia
variables o ciclo de trabajo variable (PWM)
Medicin de frecuencia y ancho de pulso
Registro y conteo de eventos

El corazn del sistema es un registro contador, llamado TCNT
Timer Counter o Free Running Counter
La tarea de este contador es incrementar la cuenta en 1 cada
vez que en su entrada hay un flanco de reloj
El reloj es provisto por un oscilador interno o externo de
frecuencia y precisin conocida
As, la cantidad de pulsos de reloj contados, permite
establecer el tiempo transcurrido entre dos instantes
definidos.
Si contamos pulsos del reloj interno del uC tenemos una base
de tiempo con la precisin de dicho reloj.
Si contamos pulsos externos de una seal desconocida,
estamos contando cuantas veces ocurri un flanco de esa
seal en un plazo determinado.
La capacidad de conteo depende del numero de bits del
contador, por ejemplo con 16 bits puede contar hasta 65536
y cuando llega al mximo valor 0xFFFF se reinicia
automticamente generando un aviso (flag) de overflow
La resolucin de la temporizacin depende del reloj utilizado.









El sistema se basa en comparar el valor actual del contador TCNT
contra un registro que contiene un Valor almacenado.
Cuando el TCNT iguala al valor contenido en ese registro, se activa
un flag o interrupcin para que el programa tome alguna accin.
Adems, por un pin especial se puede generar un evento de salida,
por ejemplo poner un nivel alto o bajo cuando se da la comparacin
exitosa o negar el estado actual del terminal.
Aplicaciones: generacin precisa de retardos, generacin de seales
de frecuencia variable o PWM.








Las entradas de captura permiten registrar el momento en
que ocurren eventos externos, como ser los flancos de una
seal de entrada.
Cuando un evento ocurre, el valor del contador TCNT se
guarda en un registro Captura del instante de ocurrencia
Este evento puede activar un flag o generar interrupcin.
Ejemplos: medicin de perodo, frecuencia o ciclo de trabajo
de una seal digital con parmetros temporales
desconocidos

Pulse Width Modulation
Es una tcnica de modulacin que permite entre
otras aplicaciones controlar dispositivos analgicos
por medio de salidas digitales.
Ej.: control de velocidad de motores DC, control de
intensidad de lmparas.
Ecuacin: Vm=Vcc*delta/T
delta/T es el ciclo de trabajo
Veremos como generar PWM con el mdulo TPM

Fuente: Freescale, HCS08SH8, Data Sheet
Resumen de aplicaciones del mdulo:
Temporizador de16bits
Generacin de seales digitales de frecuencia variable
(funcin Output Compare)
Medicin de perodo o frecuencia de seales digitales
(funcin Input Capture)
Generacin de seales PWM (funcin PWM)
Cada mdulo posee 2 canales independientes CH0 y
CH1
El uC HCS08SH8 posee 2 mdulos TPM: TPM1 y TPM2
Modos de operacin
Output compare
Input Capture
PWM alineado en flanco
PWM alineado al Centro






F
TPMCK
=F
source
/PREDIV

F
TOF
=F
source
/(PREDIV*(TPMMOD+1))
TPMCK

Fuente: Freescale, HCS08SH8, Data Sheet







Funcin: Generacin de seales (Output Compare)
MS0B:MS0A=0:1, ELS0B:ELS0A (pin toogle, clear o
set). MS0B:MS0A=1:x, modos PWM.
CH0F,CH1F: flags de Output compare de cada canal

Fuente: Freescale, HCS08SH8, Data Sheet
Cuando el valor del contador alcanza el valor del registro de
Canal TPMCxV, se activa el flag de interrupcin, y se genera
una accin en el pin de salida.
La accin puede ser:
Forzar el pin a cero
Forzar el pin a uno
Cambiar el valor del pin
Dejarlo como est (usado para hacer timer de software)
Ejemplo: Generacin de onda cuadrada









Funcin: Captura de seales (Input Capture)
MS0B:MS0A=0:0, ELS0B:ELS0A (flanco asc, desc o
ambos).
CH0F,CH1F: flags de Input Capture de cada canal

Fuente: Freescale, HCS08SH8, Data Sheet
Se puede capturar flanco de subida, flanco de
Bajada o cualquier flanco como disparador.
Cuando se produce el disparo, se captura el valor
del contador de 16 bits en el registro del canal
TPMCxV y se establece el flag de interrupcin.
Ejemplo: Medicin de perodo

Seal de entrada
TPMCNT
Valor
Capturado
TPMCNT: Contador (16bits)
TPMMOD: Valor de mdulo (16bits)
TPMSC: Estado y control de mdulo



TPMCxV: Valor del Reg de canal Cx(16bits)
TPMCSC: Estado y control de canal

EL valor del registro de mdulo TPMMOD +1 establece el
perodo de la seal PWM.
El registro de canal TPMCxV establece el ciclo de trabajo.
El usuario puede seleccionar tambin la polaridad de la seal.
Se puede generar una interrupcin al final del ciclo de trabajo
o al final del perodo.
Al comienzo del perodo las seales de todos los canales
estn alineadas y todas tienen el mismo perodo.

Ejemplo:
El perodo se establece como 2 veces el
registro de Mdulo
El registro de canal establece medio ciclo de
trabajo
El timer cuenta hacia arriba hasta el valor
mximo del mdulo y luego descendentemente
hasta cero.
Cada vez que coincide la cuenta con el registro
de canal contando hacia abajo, la salida se
vuelve activa
Cuando vuelve a coincidir contando hacia
arriba se desactiva.
Los centros de los ciclos de trabajo activos de
todos los canales estn alineados con la cuenta
de cero

TPMCNT
TPM1MOD
TPM0MOD
Ejemplo:

Potrebbero piacerti anche