TPM
Módulo Temporizador y PWM
TPM
El temporizador y el módulo PWM (TPM) es un temporizador
de propósito general capaz de generar interrupciones periódicas,
retrasos, medir el período de señales externas, generar pulsos y
también generar señales de modulación de ancho de pulso
(PWM).
Cada unidad TPM comprende un temporizador de 16 bits (un
contador de 16 bits y un comparador de 16 bits) y hasta ocho
canales, cada uno capaz de realizar captura, comparación o
generación de señal PWM.
Características
Las características de TPM incluyen:
El modo de reloj TPM es seleccionable
Puede incrementarse en cada borde del reloj contador asíncrono
Puede incrementarse en el flanco ascendente de una entrada de
reloj externa sincronizada con el reloj contador asíncrono
Preescaler dividido por 1, 2, 4, 8, 16, 32, 64 o 128
TPM incluye un contador de 16 bits.
Puede ser un contador de ejecución libre o un contador de módulo
El conteo puede ser hacia arriba o hacia abajo
Características
Incluye 6 canales que se pueden configurar para captura de
entrada, comparación de salida, modo PWM alineado con el
borde o modo PWM alineado al centro
• En el modo de captura de entrada, la captura puede ocurrir en bordes
ascendentes, bordes descendentes o ambos bordes
• En el modo de comparación de salida, la señal de salida puede establecerse,
borrarse, pulsarse o alternarse
• Todos los canales se pueden configurar para el modo PWM alineado al borde
o alineado al centro Modo PWM
Admite la generación de una interrupción y/o solicitud de DMA
por canal
Características
Admite la generación de una solicitud de interrupción y/o DMA
cuando el contador se desborda
Admite entrada de disparador seleccionable para restablecer
opcionalmente o hacer que el contador comience a
incrementarse.
El contador también puede detener opcionalmente el
incremento en el desbordamiento del contador
Admite la generación de disparadores de hardware cuando el
contador se desborda y por canal
Diagrama de Bloques
Descripciones de señal TPM
TPM_EXTCLK Reloj externo. El reloj externo TPM se puede seleccionar para incrementar
el contador TPM en cada flanco ascendente sincronizado con el reloj
contador
TPM_CHn Canal TPM (n = 5 a 0). Un pin del canal TPM se configura como salida
cuando se configura en un modo de comparación de salida o PWM y el
contador TPM está habilitado; de lo contrario, el pin del canal TPM es una
entrada
TPM_EXTCLK - Reloj externo TPM
El flanco ascendente de la señal de entrada externa se usa para
incrementar el contador TPM si se selecciona mediante los bits CMOD
[1: 0] en el registro SC. Esta señal de entrada debe ser inferior a la
mitad de la frecuencia del reloj del contador TPM. La selección y la
configuración del preescalador del contador TPM también se usan
cuando se selecciona una entrada externa
Descripciones de señal TPM
TPM_CHn - TPM Canal (n) Pin de E/S
Cada canal TPM puede configurarse para funcionar como
entrada o salida. La dirección asociada con cada canal, entrada o
salida, se selecciona de acuerdo con el modo asignado para ese
canal.
Definición de Registros
Definición de Registros
Capturar/Comparar/Canales PWM
Cada módulo TPM puede tener hasta ocho canales
independientes para captura, comparación o generación PWM.
Cada canal comprende un registro de 16 bits (TPM_CnV) que
almacena el recuento actual de TPM_CNT cuando se activa por
un evento externo (en modo de captura) o genera un evento de
comparación cuando el valor del registro es igual al TPM_CNT
actual (en modo de comparación y PWM).
Modo Captura
El modo de captura fue diseñado para permitir mediciones
precisas del período de señales externas.
La señal se aplica en el pin de entrada del canal (entrada
TPM_CHn) y desencadena un evento de captura en un borde
ascendente, borde descendente o en ambos bordes de la señal de
entrada (de acuerdo con la configuración del canal).
En cada evento de captura, el valor actual de TPM_CNT se copia
en el registro de valor de canal (TPM_CnV) y se establece el
indicador de interrupción de canal (TPM_CnSC [CHnF]). Este
indicador puede generar una solicitud de interrupción si la
interrupción del canal está habilitada (TPM_CnSC [CHnIE] = 1).
Modo Captura
La diferencia entre dos capturas consecutivas es el período de la
señal externa (excepto cuando se capturan ambos bordes).
Una vez que se conoce la velocidad del reloj TPM, se puede usar
la siguiente fórmula para calcular el período o la frecuencia de la
señal de entrada:
CaptureValue
T CAPTURE =
FTPMCK
Modo de captura de entrada
El modo de captura de entrada se selecciona cuando (CPWMS = 0), (MSnB:
MSnA = 0:0) y (ELSnB:ELSnA ≠ 0:0).
Cuando se produce un flanco seleccionado en la entrada del canal, el valor
actual del contador TPM se captura en el registro CnV, al mismo tiempo que
se establece el bit CHnF y se genera la interrupción del canal si CHnIE = 1
lo habilita.
Cuando se configura un canal para la captura de entrada, el pin TPM_CHn
es una entrada sensible al borde. Los bits de control ELSnB:ELSnA
determinan qué borde, descendente o ascendente, activa el evento de captura
de entrada. Tenga en cuenta que la frecuencia máxima para que la señal de
entrada del canal se detecte correctamente es el reloj dividido por 4, que se
requiere para cumplir con los criterios de Nyquist para el muestreo de la
señal.
Modo Compara
El modo de comparación se puede considerar como lo opuesto al
modo de captura. Cuando el canal TPM está funcionando en este
modo, el hardware del canal genera un evento de comparación
cada vez que el valor TPM_CNT es igual al valor de registro del
canal (TPM_CnV). El evento de comparación establece la
bandera de interrupción del canal (TPM_CnSC[CHnF] y,
opcionalmente, cambia el estado del pin de salida asociado con el
canal.
Modo Compara
Un uso típico del modo de comparación es en la generación de forma de
onda y/o generación de interrupción periódica. El intervalo de
comparación se puede calcular fácilmente:
CompareValue
T COMPARE =
FTPMCK
Tenga en cuenta que para que la fórmula anterior sea válida, es
necesario que el valor del intervalo deseado se agregue a TPM_CnV en
cada evento de comparación. ¡De lo contrario, se produce un evento de
comparación en cada 65536 recuentos de TPM_CNT!
Modo de comparación de salida
El modo de comparación de salida se selecciona cuando (CPWMS = 0) y
(MSnB:MSnA = X:1).
En el modo de comparación de salida, el TPM puede generar pulsos
temporizados con posición, polaridad, duración y frecuencia
programables. Cuando el contador coincide con el valor en el registro
CnV de un canal de comparación de salida, la salida del canal (n) se
puede configurar, borrar o alternar si MSnB está libre. Si MSnB está
configurado, entonces la salida del canal (n) es pulsada alta o baja
mientras el contador coincida con el valor en el registro CnV.
Cuando un canal se configura inicialmente para el modo de comparación
de salida, la salida del canal se actualiza con su valor negado (lógica 0
para establecer/alternar/pulso alto y lógica uno para borrar/pulso bajo).
Modo PWM
PWM (modulación de ancho de pulso) es una señal especial
utilizada en gran medida en el control de potencia. Típicamente
comprende una forma de onda digital con un período fijo y un
ciclo de trabajo variable (PWM de frecuencia variable también
se usa comúnmente, pero no se cubre en este curso).
La idea básica detrás de PWM es que el voltaje máximo se aplica
en la carga, pero esto solo ocurre por una fracción de tiempo
(proporcional al ciclo de trabajo). El voltaje promedio en la
carga a lo largo del tiempo es directamente proporcional al ciclo
de trabajo de la forma de onda.
V OUT =D ∗V MAX
Modo PWM alineado con bordes (EPWM)
Al generar un PWM alineado con el borde (TPM_SC [CPWMS
= 0], el contador TPM comienza a contar hasta que alcanza el
valor TPM_CnV, cuando se establece el flip-flop (FFout) (Q = 1).
Esto también establece el pin de salida (TPM_CHn) si ELSxA =
0, o borra el pin de salida si ELSxA = 1.
El contador TPM continúa contando hasta que se desborda,
cuando se borra su cuenta y se restablece el flip-flop (FFout) (Q
= 0). Esto también borra el pin de salida (TPM_CHn) si ELSxA
= 0, o establece el pin de salida si ELSxA = 1.
Modo PWM alineado con bordes (EPWM)
La frecuencia de la señal PWM se puede calcular utilizando la
siguiente fórmula:
F TPMCK
F PWM =
MOD +0 x 0001
El ancho de pulso (en segundos) se puede calcular utilizando la
siguiente fórmula:
F TPMCK
T PulseWidth =
TPMCxV
Modo PWM alineado al centro (CPWM)
El PWM alineado con el centro es otro modo operativo posible
para el TPM. Este modo se caracteriza por no tener transiciones
alineadas cuando el TPM genera múltiples señales (múltiples
canales). Este modo se selecciona cuando el CPWMS se establece
en el registro TPM_SC (cuando se establece este bit, no se
recomienda operar los canales en los modos de comparación o
captura).
El PWM alineado con el centro permite la inserción de tiempos
muertos entre las señales, lo cual es una característica bienvenida
cuando se generan señales PWM complementarias (generalmente
utilizadas cuando se conducen medio puentes o puentes completos).
Modo PWM alineado al centro (CPWM)
Mientras está en este modo, el contador TPM funciona como un
contador arriba / abajo: cuenta desde 0 hasta el valor del módulo
(MOD) y luego revierte la dirección de conteo, contando hacia 0.
La salida del canal se establece (o restablece) cuando TPM_CNT
= TPM_CnV y el contador está contando hacia arriba y
reiniciando (o configurado) cuando TPM_CNT = TPM_CnV y el
contador está contando hacia abajo.
Modo PWM alineado al centro (CPWM)
El uso de este modo impone algunos límites para saber:
1. El valor del módulo debe establecerse entre 0x0001 y 0x7FFF (un
módulo mayor que 0x7FFF no permite ciclos de trabajo del 100%).
2. Si es necesario un ciclo de trabajo del 100%, el módulo no debe ser
mayor que 0x7FFE.
Se genera un ciclo de trabajo del 0% cuando el valor del canal se
programa en 0 (TPM_CnV = 0) o en un valor mayor que 0x7FFF
(TPM_CnV> 0x7FFF).
Se genera un ciclo de trabajo del 100% cuando el valor del canal se
programa a un valor mayor que el módulo y menor que 0x8000
(MOD <TPM_CnV <0x8000).