Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Timer interface module (TIM), Notas de estudo de Microcontroladores

Arquivos para explicar como se faz a programação de um PWM com microcontrolador Freescale.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/04/2009

janis-kids-9
janis-kids-9 🇧🇷

4.6

(47)

63 documentos

1 / 37

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ING. DANIEL DI LELLA DDFAE For Motorola Products
Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II
TIMER INTERFACE
MODULE
(TIM)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Pré-visualização parcial do texto

Baixe Timer interface module (TIM) e outras Notas de estudo em PDF para Microcontroladores, somente na Docsity!

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

TIMER INTERFACE

MODULE(TIM)

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

TIMER INTERFACE MODULE

68HC08CPU

SystemIntegrationModule(SIM)

Clock GenerationModule(CGM)

TimerInterfaceModule(TIM)

DirectMemoryAccessModule(DMA)

Serial Communications

Interface(SCI)

Internal Bus (IBUS) SerialPeripheralInterface(SPI)

RandomAccessMemory(RAM)

ElectronicallyProgrammable

ROM

LVI COP

MonitorROM

IRQ BREAK

RESET

Cuatro canales programables

-^

Input captures

-^

x flanco ascendente, descendente, o cualquier flanco de disparo

-^

Output compares

-^

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 !!!!!

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

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 referenciapara su temporización el Clock interno del Bus (FBUS), que obviamente esta relacionado con lafrecuencia del Xtal externo (Fxtal / 4) o bién con la frecuencia del oscilador interno en el caso que eldisposití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 almismo, para de esta forma obtener mayor flexibilidad en los rangos de demoras a obtener. Esteprescaler puede ser programado por medio de los bits PS2, PS1, PS0 en el Timer Status and ControlRegister (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 uncomparador 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 registroTMOD (TMODH , TMODL), por medio del comparador asociado a ellos, cuando la cuenta del mismocoincide con el valor almacenado en dicho registro, se produce “desborde” del timer o “TimerOverflow” , 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 vectorrespectivo (TIMx Overflow Vector).

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

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 yde 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 UpCounter”, 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, adiferencia del tipico modo “free – running” del timer de los HC705.

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Timer Status and Control Register (TSC)

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 $0000Limpiado por lectura del TSC y luego escritura de un “0” en el TOF

-^

Si ocurre un “overflow ” durante la operación de limpieza, laescritura no tiene efecto.

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

-^

Timer Overflow interrupt Enable (TOE) habilita interrupciones por “timer overflow “1 = Habilita interrupción0 = Deshabilita interrupción

WRITE:

TRST

READ:

TOF

RESET:

TOE

TSTOP

PS

PS

PS

TSC

-^ Timer Stop (TSTOP) - Detiene el conteo del timer1 = Timer stopped0 = Timer active -^ Timer Reset (TRST) - Resetea el timer counter y el prescaler– Limpieza automática despues del counter reset1 = Reset contador y prescaler0 = No tiene efecto

NOTA:

Seteando ambos TSTOP y TRSTdetiene el contador en $0000 !!!!!

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

PS

PS

PS

TIM Clock Source

0

0

0

Internal Bus Clock ÷ 1

0

0

1

Internal Bus Clock ÷ 2

0

1

0

Internal Bus Clock ÷ 4

0

1

1

Internal Bus Clock ÷ 8

1

0

0

Internal Bus Clock ÷ 16

1

0

1

Internal Bus Clock ÷ 32

1

1

0

Internal Bus Clock ÷ 64

1

1

1

no disponible !!

Timer Prescale Select Bits

(PS0-2)

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

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 TMODMax Rango = 0 .. Resolución x 65,

Ejemplo:

•^

Calculamos la resolución y el rango dado por un Bus clock de 4 Mhz, y un valor deprescaler de 4 (010), y TMOD = $00FF

Resolución = 1 ÷ ( 4 MHz ÷ 4 ) = 1 ÷ 1 MHz = 1μsRango = 1μs x $00FF = 1μs x 255 = 255 μs

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Diagrama en Bloques del Timer del Canal

CHANNEL X 16-bit Comparator

PTxLogic

Int Logic

CHxIE

PTx/TCHx

MSxA

TCHxH : TCHxL

16-bit Latch

ELSxB

X

ELSxA

CHxF

CHxMAXTOVx

From TOF

Dat a Bus

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Ejemplo de Input Capture

  • Medición del Ancho de Pulso -

T

T

Configurar el canal del timer para “ input capture” , “ rising edge”

Tiempo de Captura T

Tiempo de Captura T

Periodo = T2 - T

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Compare/Capture Unit 16-Bit Free-Running Counter

16-Bit Compare

16-Bit Output Compare Register

(programmed by software)

Pin Control

Logic

Interrupt request

to CPU

OCx

CHxF

El Status Flag se seteacuando la comparacióncoincide

CHxIE

Mascara de Interrupción Local opcional

(habilitada por medio del software)

  • Provee un mecanismo para sacar una señal a un tiempo especifico

Set PinClear PinToggle Pin

La acción ocurre cuandocoincide el contenido del compareregister con el contador

TCNTH:TCNTHL TCHxH:TCHxL

Función “Output Compare”

Usos Posibles:

•^

Generación de formas de ondas o pulsos

-^

Indicador de tiempo transcurrido (a un circuito externo)

-^

Disparo de eventos externos

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Acción “Timer Overflow”

Timer Channel Status and Control Registers (TSCx)

•^

Toggle on Overflow (TOVx)

–^

Tiene control solo en modo “Output Compare” y PWM

-^

No tiene efecto cuando el canal está configurado como “input capture”

-^

Normalmente usado en generación de PWMs 1 = Cambia el estado de la salida cuando hay “ Timer Overflow ”0 = No hace nada cuando hay “Timer Overflow ” WRITE:

READ:

CHxF

RESET:

x = número de canal 0, 1.

CHxIE

MSxB

MSxA

ELSxB

ELSxA

TOVx

CHxMAX

TSCx

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Channel Timer Registers

Timer Channel registers (TCHx)

•^

Input Capture

–^

El valor del “Timer register ” es memorizado cuando aparece un “input capture”

•^

Output Compare

–^

READ: WRITE:RESET: Valor a comparar con el timer

INDETERMINADO DESPUES DEL RESET

BIT 15

BIT 14

BIT 13

BIT 12

BIT 11

BIT 10

BIT 9

BIT 8

TCHxH

READ:WRITE:RESET:

INDETERMINADO DESPUES DEL RESET

x = número de canal 0, 1.

BIT 7

BIT 6

BIT 5

BIT 4

BIT 3

BIT 2

BIT 1

BIT 0

TCHxL

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Interrupciones & Estados del canal

Timer Channel Status and Control Registers (TSCx)

•^

Channel x Interrupt Enable (CHxE)

–^

Habilita las interrupciones del TIM al CPU sobre el canal x. 1 = Canal x CPU interrupt requests habilitado0 = Canal x CPU interrupt requests deshabilitado

-^

Channel Status Flag (CHxF)

–^

Input Capture

•^

Seteado cuando ocurre un flanco activo

–^

Output Compare

•^

Seteado cuando el valor en el “TIM counter registers” coincide con el valor en elTIM channel register

–^

Limpiado por la lectura del “status register “ luego de escribir un “ 1” en CHxF 1 = Input capture o output compare en canal x0 = No evento capture o output compare en canal x

WRITE:

READ:

CHxF

RESET:

x = número de canal 0, 1.

CHxIE

MSxB

MSxA

ELSxB

ELSxA

TOVx

CHxMAX

TSCx

ING. DANIEL DI LELLA DDFAE For Motorola Products

Curso de MicrocontroladoresFamilia HC908 Flash de Motorola

Parte II

Señal PWM Unbuffered

(el más conocido de los modos de

generación de PWM…)

Cualquier canal puede generar Unbuffered PWM

•^

Se usa “output compare”

-^

La salida cambia de estado basada en el “timer overflow”

El período PWM puede fijarse por:

•^

Valor de la cuenta del Modulo ( Modulo count value )

-^

La salida del “Clock prescaler”

La duración del ancho del pulso puede fijarse por:

•^

Valor del “Timer compare register”

–^

El canal del timer configurado para forzar el pin de salida paracomplementar nivel del ancho de pulso