|
Complementos de sistemas electrónicos digitales |
Tema
4
|
3.
Temporizadores
Un temporizador es un periférico que se basa en un registro contador que, siempre que se encuentre habilitado, se va incrementando con los pulsos de alguna señal (reloj del temporizador) hasta que alcanza el valor de otro registro, denominado registro periodo. Cuando el registro contador alcanza al registro periodo el periférico temporizador activa una línea de salida, para indicar fin de un proceso de cuenta, e inicializa el registro contador a cero (comienza un nuevo proceso de cuenta).
La familia TMS320C3x de Texas Instruments dispone de dos temporizadores internos. Cada temporizador tiene un registro contador y un registro periodo (indicativo del fin de cuenta), ambos de 32 bits. Además de los dos registros anteriores el temporizador dispone de un registro de control y configuración, que le sirve al usuario para programar el modo de funcionamiento del temporizador.
El fabricante le asigna a cada periférico temporizador un pin, denominado TCLK, del DSP. La señal de reloj, que emplean los temporizadores del DSP para incrementar su registro contador, es configurable por el usuario y puede ser interna (obtenida a partir del ciclo máquina del sistema, H1[1]) o externa (la fuente de reloj se genera externamente al chip y se le pasa al temporizador mediante el pin TCLK). El pin TCLK del DSP tiene varias funciones alternativas (el usuario debe programar la función del pin): Puede servir como señal de reloj de entrada al periférico temporizador, como señal de salida del periférico temporizador indicando el final de un proceso de cuenta o, finalmente, se puede usar como línea de entrada o salida de propósito general como XF0 ó XF1.
En la figura 4.1 se observa el esquema básico de cada periférico temporizador del DSP.
Figura 4.1. Diagrama de bloques de los periféricos temporizadores.
El temporizador siempre genera, como señal de
fin de cuenta, un evento en la bandera TSAT -bit
11 del registro de control y configuración-.
Se pueden configurar dos tipos de eventos o modos de generación de la señal de
fin de cuenta del periférico temporizador, modo
pulso o modo reloj.
·
Modo pulso. Cada vez que el registro
contador alcanza al registro periodo se genera un pulso de activación de la
señal TSTAT. La señal TSTAT está normalmente a cero y cuando se igualan los
registros periodo y contador se pone a uno durante un tiempo igual al ciclo
máquina (H1). En la figura 4.4 se muestra la forma de onda que tendría la señal
TSTAT. En el caso particular en el que el usuario programe en el registro
periodo el valor cero, la salida del periférico temporizador será un valor fijo
(TSTAT = 1).
·
Modo reloj. En este caso, cada vez
que los registros periodo y contador del periférico sean iguales, cambia el
valor del bit TSTAT. El tiempo de activación de la señal TSTAT coincide con el
valor del registro periodo que coincide, a su vez, con el tiempo de
desactivación de la señal. La forma de onda de TSTAT es, en este caso, análoga
a la de un reloj. En la figura 4.3 se muestra la forma de onda que tiene la
señal TSTAT. En el caso particular de que un usuario escriba en el registro
periodo el valor cero, el periférico emplea siempre la fuente de reloj interna
y la frecuencia de la señal TSAT es siempre .
En la figura 4.6 se muestran diferentes ejemplos de generación de la señal TSTAT (la fuente de reloj del registro contador se supone interna).
Cada vez que el registro contador pasa a valer cero, el periférico temporizador realiza una petición de interrupción a la CPU. Esta petición de interrupción puede generar un evento interrupción asociado a la CPU (ruptura de la secuencia normal de ejecución del programa y ejecución de la rutina de servicio de la interrupción asociada al periférico) y puede servir para la sincronización de eventos DMA (se verá mas adelante).
Figura 4.2. Generación del pulso de fin de cuenta en el periférico temporizador, mediante el modo pulso.
Figura 4.3. Generación del pulso de fin de cuenta en el periférico
temporizador, mediante el modo reloj.
Figura 4.4.
Ejemplos de generación de la señal de fin de cuenta (TSTAT) del periférico interno Temporizador suponiendo que el
registro contador se incrementa a partir del reloj interno ().