Você está na página 1de 30

Temporizadores del DSPIC30F4011/12

TEMPORIZADORES

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


La familia dsPIC30F dispone de hasta cinco temporizadores de 16 bits , de los cuales algunos poseen la caracteristicas de poder combinarse con el objetivo de formar temporizadores de 32 bits. Los temporizadores ademas de controlar el tiempo autonomamente, proporcionan la base de tiempo a otros perifericos como el de captura o el de Comparador/PWM.
Cada temporizador /contador de 16 bits dispone de los siguientes registros que son susceptibles de leerse y escribirse. TMRx: Registro Contador del Temporizador (16 bits). PRx: Registro de periodos asociados al temporizador (16 bits). TxCON: Registro de control asociado al temporizador (16 bits). Por otra parte cada temporizador tiene asociado a su vez una serie de bits para el control de interrupciones: TxIE: Bit de control para permiso de interrupcin del Timer. TxIF: Bit de estado del sealizador de desbordamiento. TxIP <2:0>: Bits para determinar la prioridad de la interrupcin.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


TIPOS DE TEMPORIZADORES

Todos los temporizadores de 16 bits de la familia dsPIC son practicamente identicos en cuanto a su funcionalidad, existiendo minimas diferencias. Se pueden clasificar en tres grandes categorias:

1. Temporizadores tipo A (TIMER 1) 2. Temporizadores tipo B (TIMER 2 y TIMER 4) 3. Temporizadores tipo C (TIMER 3 y TIMER 5)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


TIPO A (TIMER 1)
Algunas caractersticas especiales de este tipo de temporizadores son las siguientes: Pueden ser utilizados en modo oscilador LP (Low Power) u oscilador secundario de 32 Khz para aplicaciones de reloj de tiempo real (RTC). Pueden funcionar de forma asncrona a travs de una seal de reloj externa. TIPO B (TIMER 2 TIMER 4) Sus caractersticas especificas son las siguientes: Los temporizadores tipo B pueden concatenarse con los tipo C para formar temporizadores de 32 bits. El registro TxCON del temporizador tipo B contiene el bit de control T32, que cuando tiene valor 1 permitir el funcionamiento del temporizador de 32 bits. La sincronizacin de reloj se realiza despus de atravesar la lgica del divisor de frecuencia (Prescaler). La estructura interna es similar a la del temporizador tipo A pero no cuenta con la lgica que posibilitaba la sincronizacin con el reloj externo ni con la opcin del oscilador LP.
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


TIPO C (TIMER 3 y TIMER 5)
Algunas caractersticas especiales de este tipo de temporizadores son las siguientes: Pueden concatenarse con los tipo B para formar temporizadores de 32 bits.

En un dispositivo dado, al menos un temporizador tipo C tiene la capacidad de disparo (trigger) en una conversin analogico/digital (A/D)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO A (TIMER 1)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO B (TIMER 2 y TIMER 4)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO B (TIMER 2 y TIMER 4)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO C (TIMER 3 y TIMER5)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO C (TIMER 3 y TIMER5)

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


REGISTROS DE CONTROL
Registro base tipo A (TxCON) Byte superior
TON -----TSID -------------------------------------

Bit 15

Bit8

TON: Activacin del temporizador. Es un bit que gobierna el permiso o la prohibicin del funcionamiento del temporizador. En caso de poner un 0 en dicho bit, el temporizador no funcionara. Dado que es susceptible de ser modificado, el bit es leible,borrable y escribible.

TSIDL: Detencin del temporizador en modo IDLE. Cuando TSIDL=1 indica que el temporizador estara detenido cuando se encuentra en el modo de espera IDLE,y para que pueda continuar nuevamente, sera necesario poner un 0. Se trata de un bit leible, borrable y escribible. El bit 14 y los 12 9 no se encuentran implementados y son leidos como cero.
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


Byte inferior
-TGATE TCKPS<1:0> ------TSYNC ----TCS -------

Bit 7

Bit0

TGATE: Este bit se usa para habilitar el modo de disparo por acumulacin de tiempo. TGATE=1,encendido y en caso contrario, desactivado. Cuando TGATE=1, el bit TCS debera tomar el valor 0 ya que en caso contrario TGATE sera leido siempre como 0.
TCKPS<1:0>: Bits para el prescaler. TSYNC: Sincronizacin con seal externa de reloj. Si TCS=1 y TSYNC=1 entonces se realizara la sincronizacion; si TCS=0, este bit sera ignorado. TCS: Seleccin de fuente de reloj.Cuando este bit se encuentra activado, se utiliza un reloj externo aplicado a la patita TxCK. En cambio,cuando TCS=0 el reloj interno es el que se emplea.Es un bit leible, borrable y escribible.

Los bits 7, 3 y 0 no se encuentran implementados y son leidos como 0.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


Registro base tipo B TxCON (TIMER 2 y TIMER 4)
Byte superior
TON -----TSIDL ----------------------------------

Bit 15

Bit8

TON: Activacin del temporizador. Es el encargado de la activacin del temporizador y dependiendo del valor que posea el bit T32,se activara o detendra el temporizador de 16 bit o el de 32 bits,el bit es leible,borrable y escribible. Si T32=1 (Modo temporizador de 32 bits) 1= Activa el temporizador de 32 bits. 0= detiene el temporizador de 32bits. TSIDL: Detencin del temporizador en modo IDLE. Cuando TSIDL=1 indica que el temporizador estara detenido cuando se encuentra en el modo de espera IDLE,y para que pueda continuar nuevamente, sera necesario poner un 0. Se trata de un bit leible, borrable y escribible. El bit 14 y los bits 12 9 no se encuentran implementados y son leidos como 0.
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


Byte inferior
--Bit 7
TGATE

TCKPS<1:0>

T32

--------

TCS

------Bit0

TGATE (solo timer 2): Este bit se usa para habilitar el modo de disparo por acumulacin de tiempo. El bit es leible, borrable y escribible. TCKPS<1:0>: Bits para el prescaler. Son 2 bits ambos leibles,borrables,escribibles. T32 (timer 2 y 3), T45 (timer 4 y 5): Seleccin del modo temporizador de 32 bits. Este bit posibilita la opcin de elegir el modo temporizador de 32 bits si T32=1, TMRx y TMRy forman un temporizador de 32 bits. TCS: Seleccin de fuente de reloj. Cuando este bit se encuentra activado, se utiliza un reloj externo aplicado a la patita TxCK. En cambio, cuando TCS=0 el reloj interno es el que se emplea. Es un bit leible, borrable y escribible. Los bits 7, 2 y 0 no se encuentran implementados y son leidos como 0.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


Registro base tipo C TxCON (TIMER 3 y TIMER 5)
Byte superior
TON -----TSIDL ----------------------------------

Bit 15

Bit8

TON: Activacin del temporizador. Es un bit que controla el permiso o la prohibicin de funcionamiento del temporizador. TSIDL: Detencin del temporizador en modo IDLE. Cuando TSIDL=1 indica que el temporizador estara detenido cuando se encuentra en el modo de espera IDLE,y para que pueda continuar nuevamente, sera necesario poner un 0. Se trata de un bit leible, borrable y escribible. El bit 14 y los bits 12 9 no se encuentran implementados y son leidos como 0.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


Byte inferior
--Bit 7 -------TCKPS<1:0> -------------TCS ------Bit0

TCKPS<1:0>: Bits para el prescaler. Son 2 bits ambos leibles,borrables,escribibles.


TCS: Seleccin de fuente de reloj. Cuando este bit se encuentra activado, se utiliza un reloj externo aplicado a la patita TxCK. En cambio, cuando TCS=0 el reloj interno es el que se emplea. Es un bit leible, borrable y escribible.

Los bits 7, 3 , 2 Y 0 no se encuentran implementados y son leidos como 0.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


MODOS DE FUNCIONAMIENTO

Los temporizadores tienen la posibilidad de funcionar en 4 modos: Temporizador sincrono. Contador Sincrono. Contador Asincrono. Contaje por disparo por acumulacin del tiempo <Gated time accumulation>

El modo de funcionamiento del temporizador vendr determinado por el valor de los bits de control TCS (TxCON)<1>), TCYNC (T1CON)<2>) y TGATE(TxCON)<6>).

NOTA: hay una restriccin en el modo contador asncrono que solo permite a los temporizadores tipo A trabajar en el.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


MODO TEMPORIZADOR SINCRONO

Los tres tipos de temporizadores antes comentados (tipo A, tipo B y tipo C) pueden funcionar en este modo. Para ello la seal de reloj utilizada sera la del reloj interno del sistema (FOSC/4).

La seleccin del modo temporizador sincrono se lleva a cabo cuando el bit TCS del registro de control del temporizador (TxCON) tiene valor 0.

MODO CONTADOR SINCRONO

En este modo pueden funcionar los 3 tipos de temporizadores. Para operar en este modo el bit TCS del registro de control del temporizador (TxCON) debera tener valor 1 para que seal de reloj sea externa. Para los temporizadores tipo A ademas de poner el valor de TCS=1, el bit TSYNC (TxCON)<2>) debera igualmente tomar valor 1 para realizar la sincronizacin con la seal de reloj externa. Los temporizadores trabajando en modo contador sincrono no funcionaran dentro del modo de reposo(SLEEP).

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


MODO TEMPORIZADOR ASINCRONO

Este modo solo es posible en temporizadores tipo A. La seal de reloj sera la misma que en el modo contador sincrono, es decir, la externa. La ventaja es que el temporizador sigue funcionando cuando el dispositivo se encuentra en reposo y que se puede generar una interrupcin que saque al dispositivo de dicho estado, es importante destacar que podran producirse resultados no deseados.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12

MODO DE CONTAJE POR DISPARO POR ACUMULACIN DE TIEMPO

Este modo de funcionamiento permite que el registro contador del temporizador se incremente en funcin de la duracin de los pulsos aplicados en la patita TxCK y utiliza la seal de reloj interna.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


DIVISOR DE FRECUENCIA (PRESCALER)
Para la configuracin del prescaler se utilizaran los bits de control TCKPS <1:0> del registro TxCON. La tabla muestra los cuatro posibles valores que pueden tomar esos bits para cada rango de prescaler
TCKPS<1:0> 00 01 10 11 PRESCALER 1:1 1:8 1:64 1:256

El divisor de frecuencia se borrara cada vez que se realice alguna de las siguientes acciones: Escritura en el registro (TMRx). TON = 0

Cualquier Reset del dispositivo.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


LAS INTERUPCIONES DE LOS TEMPORIZADORES

Los temporizadores de 16 bits pueden provocar una interrupcin cuando se produce la coincidencia de periodos o un flanco descendente de la seal externa, dependiendo del modo de trabajo en el que funcione. Para que los temporizadores sean capaz de provocar una interrupcin en dichas situaciones se debe habilitar el bit de control TxIE e inicilizar el valor de los bits que indican la prioridad de la interrupcin TxIP<2:0> con un valor diferente de cero.

El bit que indica que se ha producido una interrupcin es TxIF y se pone a 1 cuando se produce alguna de las siguientes condiciones: El contador (TMRx) y el registro de periodo (PRx) coinciden y el temporizador no esta funcionando en modo <<Gated time accumulation>> Se detecta un flanco descendente operando en modo <<Gated time accumulation>>

La puesta a 0 del bit TxIF debera realizarse mediante software.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


TEMPORIZADORES DE 32 BIT

Para formar temporizadores de 32 bits se deben concatenar un temporizador tipo B y otro tipo C. Los bits de control que se encargan de gobernar el nuevo temporizador son los asociados al temporizador tipo B, por los que los bits de registro TxCON del temporizador tipo C, no tienen ningun efecto sobre el nuevo temporizador.

Para el control de las interrupciones se utilizan los bits (TxIE, TxIF y TxIP <2:0>) del temporizador tipo C.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


ESTRUCTURA INTERNA DEL TEMPORIZADOR DE 32 BITS (Timers 2 y 3)
Bus interno 15:0 Lee TMR2

Escribe TMR2

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12

Para esta aplicacin se utilizaron los temporizadores 1, 2 y 3 para la generacin de seales a diferentes frecuencias y tres diodos LED conectados al pin menos significativo de los puertos B, E y F para la visualizacin de cada temporizador. Para ello se configuraron los periodos de cada temporizador con distintos valores y se habilitaron las Interrupciones.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


unsigned i=0,j=0,k=0; //Declaracin de contadores

void timer1() org 0x1A //Funcin del Timer1 { i++; //Incrementar contador i PORTB=i; IFS0bits.T1IF=0; //Desactivar bandera de interrupcin del Timer1 }
void timer2() org 0x20 //Funcin del Timer2 { j++; //Incrementar contador j PORTE=j; IFS0bits.T2IF=0; //Desactivar bandera de interrupcin del Timer2 } void timer3() org 0x22 //Funcin del Timer3 { k++; //Incrementar contador k PORTF=k; IFS0bits.T3IF=0; //Desactivar bandera de interrupcin del Timer3 }
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES

Temporizadores del DSPIC30F4011/12

void main() { ADPCFG=0xFFFF; //Configurar puertos como E/S digitales TRISB=0; //Puerto B como salida TRISE=0; //Puerto E como salida TRISF=0; //Puerto F como salida INTCON1bits.NSTDIS=1; //Deshabilitar interrupciones anidadas INTCON2bits.ALTIVT=0; //Deshabilitar la AIVT

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores del DSPIC30F4011/12


TMR1=0; //Inicializar Timer1 TMR2=0; //Inicializar Timer2 TMR3=0; //Inicializar Timer3 PR1=20000; //Definir periodo del Timer1 PR2=40000; //Definir periodo del Timer2 PR3=60000; //Definir periodo del Timer3 IEC0bits.T1IE=1; //Habilitar interrupcin por Timer1 IFS0bits.T1IF=0; //Desactivar bandera de interrupcin del Timer1 IEC0bits.T2IE=1; //Habilitar interrupcin por Timer2 IFS0bits.T2IF=0; //Desactivar bandera de interrupcin del Timer2 IEC0bits.T3IE=1; //Habilitar interrupcin por Timer3 IFS0bits.T3IF=0; //Desactivar bandera de interrupcin del Timer3 T1CONbits.TON=1; //Activar Timer1 T2CONbits.TON=1; //Activar Timer2 T3CONbits.TON=1; //Activar Timer3 while(1) {} }
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES

Você também pode gostar