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

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

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

Publicado el 31 de Mayo del 2018
699 visualizaciones desde el 31 de Mayo del 2018
527,4 KB
9 paginas
Creado hace 12a (17/07/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º 8
Timer / PWM – TPM.

Función Output Compare.

La función “Output Compare” (OC) 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 “Output Compare” (OC).

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

Se configura el canal elegido para realizar la función OC y se coloca el bit
CPWMS = 0, luego se cargan los registros TPMxMODH / TPMxMODL con el valor
del período de la señal a generar y los registros del canal elegido TPMCnVH /
TPMCnVL con el valor del ciclo activo de la señal.

Además se configura la salida del canal para que imponga un estado lógico durante
la generación de la señal y se habilita la interrupción del canal.

Una vez que se inicia la cuenta en el contador free – running, cuando este alcanza el
valor contenido en los registros del canal TPMCnVH / TPMCnVL se genera una
interrupción si esta ha sido habilitada (CHnIE) y además se pone a “1” el bit “CHnF”
indicando que se ha cumplido con el ciclo activo de la señal.

Se sugiere al lector, consultar el curso de microcontroladores HC908 contenido en el
EDUKIT08 para profundizar en la función OC y en el manual de referencia de la
familia HC9S08.

Función PWM (Edge Aligned / Center Aligned).

La función PWM del módulo TPM en la familia HC9S08, es algo distinta a lo que
dispone el módulo TIM08 del HC908. En este último módulo, se dispone de la
función PWM Unbuffered (no buffereado) y de la función PWM Buffered, ambas
alineadas en el flanco de comienzo (Edge Aligned). Mientras que en el módulo TPM
se dispone de PWM Buffered alineado en el flanco de comienzo (Edge Aligned) o
alineado en el centro del período (Center Aligned).

Es bueno Recordar que en la generación de PWM Unbuffered, el cambio de ciclo de
servicio (Duty Cycle) de la señal generada se realiza durante el intervalo de tiempo que
comprende la finalización del ciclo activo y la culminación del período de la señal. Este
tiempo, que en la mayoría de las circunstancias es suficiente como para escribir los
registros de control del canal para cambiar el ancho del pulso, en algunos casos
extremos NO es suficiente e imposibilita la escritura de estos registros, generando
“ausencias” de pulsos activos o pulsos espurios de la señal PWM.

Esta característica del PWM Unbuffered, puede eliminarse utilizando generación de
PWM Buffered, pero en el TIM08 involucra la “perdida” de 2 canales del Timer ya
que trabajan en forma “concatenada” como se explica en detalles en el curso de
HC908.

Esto no sucede con el módulo TPM de los HC9S08, ya que cada canal puede generar
PWM Buffered en forma independiente uno de otro. Ello constituye una ventaja
importante con respecto al TIM08, sin pagar el precio de “perder” un canal extra
en la generación de PWM Buffered.

Función PWM Edge Aligned.



La función PWM Edge – Aligned (alineada en el flanco de comienzo) utiliza el
contador de Free – Running de 16 bits en modo ascendente (Up Count) con el bit
CPWMS = 0. Se debe tener en cuenta que se pueden utilizar otros canales del mismo
módulo TPM con funciones como Input Capture (ICAP) o Output Compare (OC), junto
con la función PWM Edge aligned si el bit CPWMS = 0 en dicho módulo.

Se puede obtener ciclos de servicio (Duty Cycle) de la señal de salida desde 0% al
100% cuando se cargan los registros del canal con valores de $0000 y valores mayores
al período de la señal (registros de módulo) respectivamente.

El valor de comparación de salida (Output Compare) en el registro del canal del
TPM determina el ancho del pulso (Duty Cycle) de la señal de PWM. El tiempo
transcurrido entre el “overflow” (vuelta a cero del contador) del módulo y la
comparación de salida (Output Compare) es el ancho del pulso.

Si se observan los registros afectados por la función PWM Edge – Aligned veremos
que la configuración de los registros de módulo (TPMxMODH / TPMxMODL)
determinan el período de la señal de PWM. Los registros del timer del canal
determinan el ciclo de servicio (duty cycle) de la misma y los bits ELSnB / ELSnA
en el registro de estado y control (TPMCnSC) determinan la polaridad de la señal.

Ahora, una vez que se ha configurado el módulo TPM para la función PWM Edge –
Aligned, ¿Que sucede luego? ...

Cuando el valor en el contador de 16 Bits iguala al contenido en los registros del canal,
la transición de la señal de salida programada (en el ejemplo aquí presentado
corresponde a un estado de “0” lógico cuando se produce el Output Compare), es
forzada en el pin de la señal de salida. Si las interrupciones están habilitadas, una
interrupción ocurrirá cada vez que suceda lo anteriormente comentado, y el usuario
deberá limpiar el Flag del canal (CHnF) dentro de la rutina de servicio de la
interrupción primero leyendo este Flag y luego escribiendo un “0” en el.

El habilitar las interrupciones permite al usuario cambiar el ciclo de servicio
dentro de la rutina de servicio de la interrupción. Cuando el valor en el contador de
16 Bits iguala al valor contenido en los registros de módulo se fuerza un “overflow” del
contador y este se “resetea” ($0000) además de forzar una señal de salida “alta” (“1”).

Función PWM Center – Aligned.

La única función del módulo TPM que requiere que el Bit CPWMS = 1 es la de
PWM Center – Aligned (alineada en el centro del período). Este tipo de PWM
utiliza el modo de contador ascendente / descendente (Up / Down) el cual se incrementa
hasta alcanzar el valor en el registro del canal antes de decrementar hasta el “0”, donde
el “0” es el centro del período. Para configurar el ciclo de servicio al 0%, el valor del
registro del canal debe ser igual a un valor negativo o cero. Para configurar el ciclo de
servicio al 100%, el valor del registro del canal debe ser mayor al contenido en el
registro de módulo.

Echemos un vistazo a los registros del TPM que son afectados por la configuración del
PWM Center – Aligned.

El período de la señal de PWM es igual a 2 veces lo configurado en los registros del
módulo, efectivamente si se le dan a estos registros un rango utilizable desde $0001 a
$7FFE. El valor “cero” ($0000) es un caso especial que no debe usarse en el modo de
PWM Center – Aligned y $7FFF solo puede ser usado si un Duty Cycle de 100% no es
necesario. El ciclo de servicio o Duty Cycle (ancho del pulso) es igual al doble de los
valores programados en los registros del canal.

La polaridad de la señal de salida se determina por la configuración de los Bits de
control ELSnB y ELSnA en el registro de estado y control del módulo.

En este ejemplo se han configurado dichos bits en “10” el cual provocará que la salida
se fuerce a cero “0” cuando se produzca la comparación mientras el contador está
contando en forma ascendente y se pondrá en “1” en la comparación cuando el contador
está contando en forma descendente. Tener en cuenta que se deberán habilitar las
interrupciones cuando se trabaje con el modo PWM Center – Aligned.

Después de configurar el módulo TPM para la función PWM Center – Aligned, y
cuando el valor en el contador de 16 Bits iguala al contenido de los registros del canal,
si el contador estaba contando en forma ascendente, la transición de la señal de salida
programada (en este ejemplo, un cero “0” cuando la comparación se hace en la etapa
ascendente del contador) es forzada en el pin de la señal de salida. Si el contador estaba
contando en forma descendente, ocurrirá la transición opuesta en la señal de salida.
Cuando el valor del contador de 16 Bits iguale al de los registros del módulo, se forzará
un “overflow” (reset del contador a $0000) y si las interrupciones han sido habilitadas,
el usuario podrá cambiar el ciclo de servicio (Duty Cycle) en la rutina de servicio de la
interrupción y este cambió estará sincronizado con el próximo overflow del contador.

Es bueno recordar que el usuario debe limpiar el Flag de interrupción en la rutina
de servicio de la forma que se explicó para la función PWM Edge – Aligned.

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/pdf11467

Comentarios de: Capítulo 4/8 - 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