PDF de programación - Capítulo 4/7 - Timer / PWM - TPM - Curso sobre Microcontroladores

Imágen de pdf Capítulo 4/7 - Timer / PWM - TPM - Curso sobre Microcontroladores

Capítulo 4/7 - Timer / PWM - TPM - Curso sobre Microcontroladoresgráfica de visualizaciones

Publicado el 31 de Mayo del 2018
511 visualizaciones desde el 31 de Mayo del 2018
347,1 KB
7 paginas
Creado hace 12a (20/06/2011)
Curso sobre Microcontroladores
Familia HC9S08 de Freescale

Por Ing. Daniel Di Lella – EduDevices – www.edudevices.com.ar
e-mail: [email protected]
Responsable Area Educación – ELKO / ARROW – www.elkonet.com
e-mail: [email protected]

Capítulo 4.

Entrega Nº 7
Timer / PWM – TPM.

El módulo de Timer / PWM denominado TPM en la familia HC9S08 es muy similar
al módulo TIM08 de la familia HC908 con algunas características particulares que se
verán a lo largo de este capítulo.

Algunas características destacadas del módulo TPM:

• Múltiples canales por timer.

- Cada canal puede ser Input Capture, Output Compare o Buffered PWM.
- Disparo de la función Input Capture por flanco ascendente, descendente o

cualquier tipo de flanco.

- Opciones de Output Compare con salida en “1”, “0”, o “Toggle”.
- Selección de polaridad en la salida del PWM.

Cada módulo TPM puede configurarse como PWM Buffered alineado al centro
(CPWM) en todos los canales.

• Opciones de Fuentes de reloj: Bus Clock, Clock fijo del sistema, o pin externo de



clock.

• Contador de 16 bit tipo free/running con opción de cuenta up/down.
• Registro de módulo de rango de 16 bit (TPMxMODH / TPMxMODL).
• Habilitación del módulo TPM.
• Una interrupción por canal, más una interrupción por cuenta terminada (TOF).

Como se puede observar en este resumen de características, las diferencias principales
están en la función PWM que agrega la posibilidad de elegir entre generar señales
PWM alineadas en el centro del período (CPWM) o alineadas en el flanco de
comienzo del período. Otra de las diferencias con el módulo TIM08 de la familia
HC908 es que las señales de PWM siempre son del tipo “Buffered”, o sea el nuevo
valor del ciclo activo (Duty Cycle) solo se modifica cuando se cumple entero el período
y el contador de Free running efectua un roll over a $0000. En el TIM08, existen los
modos PWM Unbuffered y PWM Buffered, este último involucra a dos canales
para realizar esta función, mientras que en el módulo TPM cada canal puede
generar una señal PWM Buffered.

Veamos ahora el diagrama en bloques del módulo TPM ......



Diagrama en Bloques de un módulo TPM típico de “n” canales.

En el diagrama en bloques del módulo TPM se puede observar el bloque de selección
de la fuente de reloj que tiene por función seleccionar las distintas fuentes disponibles
como FBUS, Xtal Clock, y Clock Externo. Ello constituye una mejora con respecto
al TIM08 de los HC908, ya que solo posee el FBUS como fuente de reloj del timer.

Con el mismo cuadro de selección se puede “apagar” el módulo al seleccionar la
posición OFF, o sea no ingreso de señal de clock al módulo, y con ello, apagar el
mismo (y disminuir el consumo de corriente del MCU).

Con los bits CLKSA y CLKSB del registro de Estado y control del módulo
(TPMxSC) determina que fuente es la seleccionada.

Registro de Estado y Control del TPM – TPMxSC.

Bits de selección del tipo de fuente de Clock a ingresar al TPM.

La señal de clock de salida del bloque de selección, ingresa al bloque de “Prescaler”
que a diferencia con el TIM08 de los HC908, posee un máximo de división de
frecuencia de 128, contra los 64 del TIM08.
La selección del factor de división de la frecuencia de entrada al módulo se realiza por
medio de los bits PS2, PS1 y PS0 en el registro de estado y control TPMxSC.

Bits de selección del factor de división de la señal de reloj que ingresa al TPM.

A continuación se verán como se efectúan las distintas funciones disponibles en el
módulo TPM.

Función Timer de Referencia (Timer Reference).

Una de las funciones básicas del módulo TPM es la de Timer de Referencia o Timer
Overflow, que consiste en generar una indicación y/o una interrupción cada vez que se
cumpla con la cuenta de un tiempo determinado. En esta función el TPM es muy
similar al TIM08 con la única diferencia que en el módulo TPM existe un bit
denominado “CPWMS” que controla el sentido de la cuenta del contador de 16 bits
free running, ya que dicho contador puede contar en forma “ascendente” (Up Counter)
o “Descendente” (Down Counter) según el estado del bit CPWMS.

Si CPWMS = 0, entonces la cuenta será ascendente, o sea desde $0000 hasta el valor
determinado por el contenido de los registros TPMxMODH / TPMxMODL que por
defecto tienen el valor $FFFF luego del reset del MCU.

Una aclaración importante de comentar es que las funciones Timer Reference, Input
Capture (ICAP) y Output compare (OC), utilizan el contador en forma
ASCENDENTE, o sea CPWMS = 0 y NO SOPORTAN la forma descendente del
contador.

Si CPWMS = 1, entonces la cuenta será del tipo “ascendente / descendente” y será
utilizada por la función PWM alineada al centro “CPWM” en forma exclusiva.

Bloques utilizados durante el funcionamiento del TPM como “Timer Reference”.

La función Timer Reference del. TPM consiste en generar una cuenta de tiempo por
medio del contador de 16 bits del tipo free – running que se irá incrementado desde su
valor inicial de $0000 hasta el valor configurado en los registros TPMxMODH y
TPMxMODL. Cuando se alcanza dicho valor, se generará una indicación de
“overflow” por medio de la puesta a “1” del bit “TOF” (Timer Overflow) y si se ha
habilitado previamente la interrupción (TOE) se generará un pedido de interrupción por
Timer Overflow con su correspondiente vector asociado. Como se puede ver, la
función Timer Reference es similar a la implementada en el módulo TIM08 de los
HC908.

Función “Input Capture”.

La función “Input Capture” (ICAP) del módulo TPM de la familia HC9S08 es
idéntica a la implementada en el módulo TIM08 de la familia HC908.
Solo hay que tener en cuenta la configuración del bit CPWMS = 0 para que se realice la
cuenta ascendente en el contador de 16 bits.

Bloques utilizados en el TPM durante la función “Input Capture” (ICAP).

Al igual que en el módulo TIM08 de los HC908, la función ICAP funciona de la
siguiente forma:

Se configura un canal del módulo para que se genere una interrupción por un flanco
determinado (puede ser ascendente, descendente o ambos) y se dispara el contador
de free running de 16 bits, cuando el flanco de la señal entrante coincide con el
configurado, se genera una interrupción y el valor de la cuenta de tiempo que posee el
contador es transferido a los registros del canal (TPMCnVH / TPMCnVL).
Luego se guarda el valor contenido en estos registros en dos variables en RAM (cabe
aclarar que el rescate de los valores contenidos en dichos registros en posiciones de
RAM no es automático y debe ser ejecutado por el programa del usuario).

En la misma rutina de interrupción se vuelve a configurar al canal para que se
genere una nueva interrupción cuando se alcanza el flanco elegido (del mismo tipo
o distinto) mientras en contador prosigue con la cuenta de tiempo. Cuando se
alcanza el flanco, y se genera la interrupción, se procede a restar los nuevos valores
almacenados en los registros del canal con los almacenados en las variables en
RAM. De esta forma se consigue medir el tiempo entre flancos de una señal
determinada.

Se sugiere al lector, consultar el Curso de microcontroladores HC908 contenido en el
sistema didáctico EDUKIT08 para profundizar en la función ICAP, junto a las
numeroso prácticas contenidas en el mismo y en el manual de referencia de la familia
HC9S08.

Continuará.......

Nota de Redacción: El lector puede descargar este capítulo y capítulos anteriores del
curso desde la sección “Artículos” (Curso_HC9S08) en el sitio web de EduDevices
(www.edudevices.com.ar )
  • Links de descarga
http://lwp-l.com/pdf11466

Comentarios de: Capítulo 4/7 - Timer / PWM - TPM - Curso sobre Microcontroladores (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