PDF de programación - HC908 FLASH, TIMER INTERFACE MODULE (TIM)

Imágen de pdf HC908 FLASH, TIMER INTERFACE  MODULE (TIM)

HC908 FLASH, TIMER INTERFACE MODULE (TIM)gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Noviembre del 2017)
658 visualizaciones desde el 9 de Noviembre del 2017
289,3 KB
38 paginas
Creado hace 14a (15/07/2009)
TIMER INTERFACE

MODULE
(TIM)

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

TIMER INTERFACE MODULE

Clock

Generation

Module
(CGM)

Serial

Communications

Interface

(SCI)

System

Integration

Module
(SIM)

LVI

IRQ

COP

BREAK

68HC08

CPU

RESET

Timer
Interface
Module
(TIM)

Direct
Memory
Access
Module
(DMA)

Internal Bus (IBUS)

Serial

Peripheral
Interface

(SPI)

Random
Access
Memory
(RAM)

Electronically
Programmable

ROM

Monitor

ROM

Cuatro canales programables



Input captures

• Output compares

– x flanco ascendente, descendente, o cualquier flanco de disparo

– Set, clear, o “toggle action” como nivel de salida

• Pulse width modulation (PWM) ( Modulación por Ancho de Pulso )

– Generación de señal “Buffereada o no Buffereada”

Entrada de Clock programable

• Clock del sistema con “prescaler” de 7 pasos.
Modo de operación “Free-running’ o “ Modulo up-count”
Acción “ togle” sobre cualquier pin de canal en “Overflow ”
Stop y reset del TIM Counter !!!!!

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Diagrama en Bloques del Clock de

refencia del TIM

Internal
BusClock

PRESCALER

TSTOP
TRST

D
a
t
a
B
u
s

16-Bit Counter

16-Bit Comparator
TMODH:TMODL

16-Bit Latch

PRESCALER SELECT

PS2

PS1

PS0

TOF
TOE

INT
Logic

A la logica del canal

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

El módulo TIM como timer simple solamente…..
Como se puede observar en el cuadro anterior, el módulo de timer del HC908, toma como referencia
para su temporización el Clock interno del Bus (FBUS), que obviamente esta relacionado con la
frecuencia del Xtal externo (Fxtal / 4) o bién con la frecuencia del oscilador interno en el caso que el
dispositívo tenga la opción de oscilador interno o PLL.
El módulo posee un “prescaler” que divide “N” veces la frecuencia de referencia que entra al
mismo, para de esta forma obtener mayor flexibilidad en los rangos de demoras a obtener. Este
prescaler puede ser programado por medio de los bits PS2, PS1, PS0 en el Timer Status and Control
Register (TSC).
Luego que el clock há sido dividido en el prescaler, ingresa a un contador de 16 bits de longitud.
Este contador es del tipo “free-running” (de cuenta libre) con rango desde $0000 a $FFFF. Existe un
comparador de 16 bits vinculado al contador y a un registro, también de 16 bits, denominado
“TMOD” (Timer Modulo register) que está dividido en parte “alta” (TMODH) y parte “baja” (TMODL).
Durante el funcionamiento del timer, el contador es comparado permanentemente con el registro
TMOD (TMODH , TMODL), por medio del comparador asociado a ellos, cuando la cuenta del mismo
coincide con el valor almacenado en dicho registro, se produce “desborde” del timer o “Timer
Overflow” , provocando las siguientes acciones:
- Se genera un Señal de “Timer Overflow Flag” (TOF), que nos indicará la condición de
overflow del contador/comparador.
- Se genera un pedido de interrupción (Timer Overflow Interrupt) si esta se encuentra
habilitada y se atiende la misma saltando a la dirección indicada por el vector
respectivo (TIMx Overflow Vector).

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

El módulo TIM como timer simple solamente…… continua.

- Se produce un RESET automático del contador “Free – Running” forzandolo a $0000.
Esta configuración permite operar el timer en modo “Free – Running”, o en modo “Modulo Up Counter”,
según el valor del registro TMOD.
Si el registro TMOD (TMODH y TMODL) tiene un valor igual a $FFFF, el timer funcionará en modo free-
running, ya que al llegar a $FFFF , recien allí, el comparador emitirá una señal de RESET del contador y
de disparo del flag TOF y de la interrupción, si estubiera habilitada.

Si el registro TMOD, tiene un valor menor a $FFFF, entonces el timer funcionará como “Módulo Up
Counter”, ya que al llegar al valor establecido en TMOD, provocará el mismo efecto que en el modo
“free – running”, lo que garantiza la generación de una temporización (delay) flexible y programable, a
diferencia del tipico modo “free – running” del timer de los HC705.

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Timer Clock Reference

Los 2 canales de timer reciben sus clock reference desde:

• Free running counter
• Modulo up counter

Consisten de :

• Timer counter “ free running ” de solo lectura de 16 bits
• Modulo Register de 16 bit de lectura/escritura por software
• Comparador de 16 bits (timer counter vs. modulo register)

– Cuando el contador concuerda con el modulo register..

• Se setea el Timer Overflow Flag (TOF)
• Resetea el contador a $0000
• Los contadores comienzan las cuentas nuevamente !!!!

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Timer Status and Control Register (TSC)

TSC

READ:

WRITE:

TOF


0



TOE

TSTOP

0





TRST

0








PS2 PS1 PS0









RESET:

0

0

1

0

0

0

0

0

Timer Status and Control Register (TSC)
• Clock select and prescaler bits (PS2-PS0)

• Timer Overflow Flag (TOF)

Seteado cuando el timer counter de 16 bits se resetea a $0000
Limpiado por lectura del TSC y luego escritura de un “0” en el TOF

• Timer Stop (TSTOP)

– Detiene el conteo del timer
1 = Timer stopped
0 = Timer active

– Si ocurre un “overflow ” durante la operación de limpieza, la

• Timer Reset (TRST)

escritura no tiene efecto.

1 = Timer ha sido reseteado
0 = Timer no ha sido reseteado todavia

• Timer Overflow interrupt Enable (TOE)

habilita interrupciones por “timer overflow “
1 = Habilita interrupción
0 = Deshabilita interrupción

– Resetea el timer counter y el prescaler
– Limpieza automática despues del counter reset
1 = Reset contador y prescaler
0 = No tiene efecto

NOTA: Seteando ambos TSTOP y TRST

detiene el contador en $0000 !!!!!

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Timer Prescale Select Bits (PS0-2)

PS2
0


0
0


0
1

1


1
1


PS1
0
0
1
1
0
0
1
1

PS0
0
1
0
1
0
1
0
1

TIM Clock Source

Internal Bus Clock ÷ 1
Internal Bus Clock ÷ 2
Internal Bus Clock ÷ 4
Internal Bus Clock ÷ 8
Internal Bus Clock ÷ 16
Internal Bus Clock ÷ 32
Internal Bus Clock ÷ 64

no disponible !!

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Timer Counter Register

READ: BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 B IT 9 BIT 8

TCNTH

TCNTL

WRITE:
RESET:



0





0





WRITE:



RESET:

0

0



0







0





0





0



0







0





0





0





0





0



0



0

READ:

BIT 7 BIT 6

B IT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

Timer Counter Register (TCNTH, TCNTL)

• Contador de solo lectura “free running” de 16 bits
• Se lee el byte alto manteniendo el byte bajo “latcheado” hasta la lectura

Timer Modulo Register

TMODH

BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8



READ:

WRITE:
RESET:





1

1

1

1

1

1

1

1













































BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

TMODL

READ:

WRITE:



BIT 7




BIT 6

RESET:

1

1

1

1

1

1

1

1

Timer Modulo Register (TMODH, TMODL)

• El Contenido se compara con TCNTH, TCNTL para determinar el tiempo de reset
• Escribiendo el TMODH deshabilita TOF y overflow interrupts, hasta escribir el TMODL

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Resolución y Rango del Timer

La resolución de Timer está determinada por el Clock del sistema y el valor del prescaler

Resolución (sec) = 1 ÷ (Bus Clock ÷ prescaler)
El rango del Timer depende del valor en TMODH y TMODL

Rango = 0 .. Resolución x valor de TMOD
Max Rango = 0 .. Resolución x 65,535

Ejemplo:

• Calculamos la resolución y el rango dado por un Bus clock de 4 Mhz, y un valor de

prescaler de 4 (010), y TMOD = $00FF

Resolución = 1 ÷ ( 4 MHz ÷ 4 ) = 1 ÷ 1 MHz = 1µs

Rango = 1µs x $00FF = 1µs x 255 = 255 µs

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Diagrama en Bloques del Timer del Canal

desde TOF

D
a
t
a
B
u
s

CHANNEL X

16-bit Comparator
TCHxH : TCHxL

16-bit Latch

ELSxB

ELSxA

CHxF

X

MSxA

CHxMAX

TOVx

CHxIE

PTx/
TCHx

PTx
Logic

Int

Logic

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Función “Input Capture”

• Provee un mecanismo para capturar el tiempo en el cuál
ocurre un evento externo

Flancos Ascendentes
Flancos Descendentes
Cualquier Flanco

ICx

Edge Select
& Detect

Latch

Mascara de Interrupción local opcional
(habilitada por medio del software)

TCNTH:TCNTHL

Compare/Capture Unit

16-bit Free Running Counter

16-bit Input Capture Latch
TCHxH:TCHxL

CHxF

El Status Flag se setea
durante la captura

CHxIE

Interrupt request
to CPU08

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Ejemplo de Input Capture

- Medición del PERIODO de un pulso-

T2

T1

1. Configurar el canal del timer para “input capture” , “rising edge”
2. Tiempo de Captura T1
3. Tiempo de Captura T2
4. Periodo = T2 - T1

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Ejemplo de Input Capture

- Medición del ANCHO de un pulso-

T2

T1

1. Configurar el canal del timer para “input capture” , “ANY edge”
2. Tiempo de Captura T1
3. Tiempo de Captura T2
4. Periodo = T2 - T1

Curso de Microcontroladores
Familia HC908 Flash de Freescale

Parte II

ING. DANIEL DI LELLA

Función “Output
  • Links de descarga
http://lwp-l.com/pdf7448

Comentarios de: HC908 FLASH, TIMER INTERFACE MODULE (TIM) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad