Diferencia entre revisiones de «PWM (Modulación de Ancho de Pulso)»

De Wikitronica
Saltar a: navegación, buscar
Línea 1: Línea 1:
'''Claudio Imbriaco'''
 
 
 
[[Categoría: EC3883 - Laboratorio de Proyectos 3]]
 
[[Categoría: EC3883 - Laboratorio de Proyectos 3]]
 
[[Categoría: MC9S08QE128]]
 
[[Categoría: MC9S08QE128]]
Línea 28: Línea 26:
  
 
===Caracteristicas===
 
===Caracteristicas===
 +
 +
El modulo PWM posee las siguientes caracteristicas:
 +
 +
*Cada canal se puede configurarse para ser capturador de entrada, comparador de salidas, o alineación de flancos PWM. Estos tipos de configuración se discutirán en la seccion de modos de operacion.
 +
 +
*Escoger la polaridad en las salidas del PWM (positiva o negativa)
 +
 +
*El modulo puede ser configurado como buffer o como alineación central de la modulación del ancho de pulso (CPMW por sus siglas en inglés).
 +
 +
*El timer puede ser modificado para usarse con una escala predeterminada del bus clock, un clock fijo o un clock externo:
 +
 +
-La preescala se define dividiendo el clock del bus entre 1, 2, 4, 8, 16, 32, 64 o 128. El bus clock al que opera el microcontrolador es de 1MHz.
 +
 +
-El clock fijo es sincronizado con el bus clock mediante un circuito sincronizador.
 +
 +
-Para el clock externo, el pin puede compartirse con un pin de un canal o de cualquier otra entrada, por lo tanto hay que tener cuidado al configurar este pin.
 +
 +
*Un interruptor por canal y un contador para las interrupciones.
 +
 
===Modos de operacion===
 
===Modos de operacion===
 +
 +
Los canales pueden ser configurados independientemente como capturadores de entrada, comparador de salidas, o alineación de los flancos de PWM. Un bit de control puede modificarse para que todos los canales del módulo sean configurados como alineación de la modulación del ancho de pulso, si este es el caso se desabilitan las otras opciones de configuración.
 +
Cuando el microcontrolador esta en BDM background o BDM foreground, el TPM suspende las operaciones  y las reanuda apenas el microcontrolador regresa a estado normal. Cuando esta en stop, todos los clocks del microcontrolador se paran, incluyendo el oscilador principal, por lo tanto el modulo TPM es desabilitado momentáneamente. En el modo de espera (wait mode), el TPM opera de forma normal ya que no genera una referencia a tiempo real ni el interrupt necesario para despertar el micro de este estado. Los modos de operacion son los siguientes:
 +
 +
*'''Modo de captura de entrada:''' Cuando un evento preseleccionado de flanco ocurre en el pin asociado al canal que se esta usando, el valor actual del contador del timer de 16 bits es guardado en el registro de valor del canal y una bandera de interrupción se coloca en uno. Un flanco de subida, flanco de bajada, cualquier flanco o ningún flanco (canal desabilitado) puede ser seleccionado como el flanco activo que dispara la captura de entrada.
 +
 +
*'''Modo de comparación de salida:''' Cuando el valor en el registro del contador es igual al valor del registro del canal, una bandera de un bit de interrupción se coloca en uno, y una acción de salida seleccionada es forzada en el pin del microcontrolador. La salida que se ve en el pin puede ser forzada a cero, a uno,  intercambiar/conmutar las salidas o simplemente ignorarlo.
 +
 +
*'''Modo de alineación de flancos de PWM:''' El valor del registro de 16 bits +1 define el período de la señal de salida del PWM. El valor del registro del canal define el duty cicle (tiempo en que la señal permanece en un estado activo) de la señal de salida del PWM. También se puede definir la polaridad de la señal de salida. Las interrupciones ocurren apenas termine el período de la señal, es decir en el punto de transición del duty cicle (cuando la señal pasa de activa a inactiva)
 +
 +
*'''Modo de alineacion central del PWM:'''  El doble del valor del registro del modulo de 16 bits define el period de las salidas PWM, y los registros de valores de los canals definen la mitad de la duracion del duty cycle. El contador del timer cuenta hasta que llega al valor del registro del modulo y luego cuenta desde este valor hasta cero. Mientras el contador esta contando hacia abajo, y el valor del contador es el mismo que el del modulo, la salida PWM se activa. En el caso contrario, es decir cuando esta contando hacia arriba y los valores coinciden, la salida PWM se desactiva.
 +
 +
===Diagrama de bloques===
 +
 +
El modulo TPM usa un pin de entrada/salida por canal (TPMxCHn), donde n representa el numero del canal. Hay que tener cuidado a usar estos pines ya que los pines de entrada/salida del TPM están asociados a los puertos de entrada/salida generales del microcontrolador. El componente central es el contador de 16 bits, el cual provee el tiempo de referencia para los modos de operación. Los registros del modulo del contador (TPMxMODH:TPMxMODL) registra el valor del modulo. Este dato se puede leer cuando sea, mas si se modifica este dato en la parte baja (TPMxMODL) o en la parte alta (TPMxMODH), se resetea el contador.
 +
 +
[[Archivo:Untitled4.jpg|700px|center|thumb|'''Diagrama de bloques del TPM''']]
 +
 
==Registros==
 
==Registros==
 +
 +
 +
 
===TPMxSC===
 
===TPMxSC===
 
===TPMxCNTH:TPMxCNTL===
 
===TPMxCNTH:TPMxCNTL===

Revisión del 12:00 16 nov 2012


Introduccion

Configuracion

El comparador analogico (ACMP) puede ser configurado para conectarse el a un canal TPM de entrada, colocando el bit SOPT2 [ACICx] en uno. Haciendo esto, el pin del canal 0 del TPM no está disponible de forma externa, es decir no puede ser modificado. La salida del ACMP 1 puede conectarse a TPM1CH0 y la salida del ACMP2 puede conectarse a TPM2CH0.

Configuracion del modulo SOPT2 para conectar el ACMP a los canales del TPM

Al momento de programar, el codigo para la configuracion anterior seria de esta forma:

SOPT2=0x05, donde el valor hexadecimal 0x05 representa los 8 bits del registro SOPT2 que, como se observa en el cuadro anterior, son 00000101.

Compuerta de clocks

Los clocks de los modulos TPM1, TPM2 y TPM3 pueden activarse o desactivarse usando el modulo SCGC1 [TPMx]. Cuando los bits están en 1, los puertos se habilitan dejando usar los clocks de cada módulo, y en cero se desabilitan. Luego de un reset estos bits se colocan en 1.

Habilitacion de los clocks del TPM1 TPM2 y TPM3

Similar al caso anterior, el codigo para la configuracion anteriormente descrita es:

SCGC1=0xE0, nuevamente el valor hexadecimal 0xE0 representa los 8 bits del registro SCGC1, los cuales eran 11100000

Vector de interrupciones

Vectores de interrupcion del TPM

Caracteristicas

El modulo PWM posee las siguientes caracteristicas:

  • Cada canal se puede configurarse para ser capturador de entrada, comparador de salidas, o alineación de flancos PWM. Estos tipos de configuración se discutirán en la seccion de modos de operacion.
  • Escoger la polaridad en las salidas del PWM (positiva o negativa)
  • El modulo puede ser configurado como buffer o como alineación central de la modulación del ancho de pulso (CPMW por sus siglas en inglés).
  • El timer puede ser modificado para usarse con una escala predeterminada del bus clock, un clock fijo o un clock externo:

-La preescala se define dividiendo el clock del bus entre 1, 2, 4, 8, 16, 32, 64 o 128. El bus clock al que opera el microcontrolador es de 1MHz.

-El clock fijo es sincronizado con el bus clock mediante un circuito sincronizador.

-Para el clock externo, el pin puede compartirse con un pin de un canal o de cualquier otra entrada, por lo tanto hay que tener cuidado al configurar este pin.

  • Un interruptor por canal y un contador para las interrupciones.

Modos de operacion

Los canales pueden ser configurados independientemente como capturadores de entrada, comparador de salidas, o alineación de los flancos de PWM. Un bit de control puede modificarse para que todos los canales del módulo sean configurados como alineación de la modulación del ancho de pulso, si este es el caso se desabilitan las otras opciones de configuración. Cuando el microcontrolador esta en BDM background o BDM foreground, el TPM suspende las operaciones y las reanuda apenas el microcontrolador regresa a estado normal. Cuando esta en stop, todos los clocks del microcontrolador se paran, incluyendo el oscilador principal, por lo tanto el modulo TPM es desabilitado momentáneamente. En el modo de espera (wait mode), el TPM opera de forma normal ya que no genera una referencia a tiempo real ni el interrupt necesario para despertar el micro de este estado. Los modos de operacion son los siguientes:

  • Modo de captura de entrada: Cuando un evento preseleccionado de flanco ocurre en el pin asociado al canal que se esta usando, el valor actual del contador del timer de 16 bits es guardado en el registro de valor del canal y una bandera de interrupción se coloca en uno. Un flanco de subida, flanco de bajada, cualquier flanco o ningún flanco (canal desabilitado) puede ser seleccionado como el flanco activo que dispara la captura de entrada.
  • Modo de comparación de salida: Cuando el valor en el registro del contador es igual al valor del registro del canal, una bandera de un bit de interrupción se coloca en uno, y una acción de salida seleccionada es forzada en el pin del microcontrolador. La salida que se ve en el pin puede ser forzada a cero, a uno, intercambiar/conmutar las salidas o simplemente ignorarlo.
  • Modo de alineación de flancos de PWM: El valor del registro de 16 bits +1 define el período de la señal de salida del PWM. El valor del registro del canal define el duty cicle (tiempo en que la señal permanece en un estado activo) de la señal de salida del PWM. También se puede definir la polaridad de la señal de salida. Las interrupciones ocurren apenas termine el período de la señal, es decir en el punto de transición del duty cicle (cuando la señal pasa de activa a inactiva)
  • Modo de alineacion central del PWM: El doble del valor del registro del modulo de 16 bits define el period de las salidas PWM, y los registros de valores de los canals definen la mitad de la duracion del duty cycle. El contador del timer cuenta hasta que llega al valor del registro del modulo y luego cuenta desde este valor hasta cero. Mientras el contador esta contando hacia abajo, y el valor del contador es el mismo que el del modulo, la salida PWM se activa. En el caso contrario, es decir cuando esta contando hacia arriba y los valores coinciden, la salida PWM se desactiva.

Diagrama de bloques

El modulo TPM usa un pin de entrada/salida por canal (TPMxCHn), donde n representa el numero del canal. Hay que tener cuidado a usar estos pines ya que los pines de entrada/salida del TPM están asociados a los puertos de entrada/salida generales del microcontrolador. El componente central es el contador de 16 bits, el cual provee el tiempo de referencia para los modos de operación. Los registros del modulo del contador (TPMxMODH:TPMxMODL) registra el valor del modulo. Este dato se puede leer cuando sea, mas si se modifica este dato en la parte baja (TPMxMODL) o en la parte alta (TPMxMODH), se resetea el contador.

Diagrama de bloques del TPM

Registros

TPMxSC

TPMxCNTH:TPMxCNTL

TPMxMODH:TPMxMODL

TPMxCnSC

TPMxCnVH:TPMxCnVL

Reset

Interrupciones