You are on page 1of 7

Propuesta para la configuracin

microcontrolador PIC18F2550

bsica

del

Temporizador

del

Por: I.I.E. Miguel Montiel Martnez


montiel.martinez@gmail.com
Resumen
Este articulo trata sobre la estructura y configuracin esencial del temporizador/contador 1 de un
microcontrolador PIC18F2550. Como primer punto, se aborda el concepto de contador y su
aplicacin inmediata, as como las operaciones con las que se cuenta, enseguida, el punto 2 describe
brevemente el funcionamiento del temporizador 1 y esquematiza la tcnica de poleo para evaluar el
conteo del tiempo; en el apartado 3, son mostrados los registros que intervienen en la configuracin
del temporizador 1; con el fin de mostrar las ecuaciones que intervienen en el clculo del
temporizado, se coloca el apartado 4, y finalmente en el punto 5, es diseado un ejemplo de
aplicacin con fundamento en todos los puntos anteriores, a fin de establecer una propuesta de
configuracin para el clculo en los tiempo de retardo de un microcontrolador PIC18F2550 a travs
de un temporizador de 16 bits.

Palabras clave: PIC18F2550, temporizador, retardo.

Introduccin
Tanto en la antigedad como hoy en da, el tiempo y su medicin siempre han sido de gran
importancia para el ser humano y este hecho se ve reflejado en la religin 1, la industria, el comercio y
en la vida cotidiana, ya que en el desarrollo humano, suceden acontecimientos y modos de pensar
que forman la historia del mundo(Cabanes, 2005); en consecuencia, es imprescindible que la cuenta
del tiempo sea lo ms exacta posible.
En el mbito de la electrnica, se han desarrollado componentes que contabilizan una serie
de pulsos generados por un cristal de cuarzo, de esta manera, el dispositivo en cuestin, acumula
tiempo. Estos elementos reciben el nombre de Temporizadores.
Los temporizadores, pueden ser elementos discretos, es decir, son fabricados como circuitos
integrados de propsito especfico o formar parte de otro componente con una mayor capacidad de
integracin, tal como lo es un microcontrolador.

1. Los temporizadores del microcontrolador PIC18F2550


El microcontrolador PIC18F2550, al ser un procesador de 8 bits de gama alta, cuenta con
tres temporizadores; stos perifricos, permiten que un programador de firmware para
microcontroladores, contabilice eventos externos a travs de una interfaz, o que por medio del reloj
interno del microcontrolador, se generen tiempos exactos, y esto es por que, los temporizadores con
los que cuenta el microcontrolador PIC18F2550, son circuitos digitales denominados contadores,
cuyo valor interno, cambia conforme un pulso de reloj (tick) entra en l, ver la Ilustracin 1: Esquema
de un contador genrico

Ilustracin 1: Esquema de un contador genrico


Fuente: Microchip (2008)
Para generar un retardo cuya duracin en tiempo se encuentre bien definido, el programador
debe tener en cuenta lo siguiente:

El tiempo deseado.

La frecuencia de oscilacin seleccionada para el microcontrolador.

Los temporizadores del microcontrolador PIC18F2550, cuentan con un bit asociado al cual,
el fabricante le denomina Bandera de desborde. La funcin de la bandera de desborde es cambiar a
estado alto cuando el contador llega a su valor mximo, y justo antes de que al siguiente ciclo de
reloj, el valor almacenado en el mismo se reinicie.

1 Chronos era la personificacin del tiempo, de acuerdo a la mitologa griega y se encargaba de conducir la rotacin de los
cielos y el eterno paso del tiempo (Rose & Rose, H. J., 1928).

Las operaciones que se permiten realizar con los registros de conteo de los temporizadores
son:

Conteo.

Carga.

Encendido/Apagado (Arranque/Paro).

Reset o carga con cero.

2. El temporizador 1
El temporizador 1, es un bsicamente un contador cuya longitud de palabra es de 16 bits,
solo que ste, no puede escribirse de una sola vez, hay que escribir los registros en un orden
definido, ya que el temporizador est formado por dos registros:

El registro TRM1L que corresponde a la parte menos significativa

El registro TRM1H que corresponde a la parte ms significativa

Este temporizador adems, permite al programador configurar un divisor de frecuencias,


para generar retardos de tiempo an mas prologados. Integrado a este temporizador, se tiene una
bandera (bit que se ajusta a uno) que indica el fin y reinicio del conteo, denominando a este evento

Ilustracin 2: Poleo Timer 1


desborde. Puede utilizarse esta bandera para indicar el fin retardo, siempre y cuando el estado de
sta, se encuentre bajo supervisin, es decir, en modo de poleo. Este modo se muestra en la
Ilustracin 2: Poleo Timer 1.
Fuente: (Mazidi, McKinlay, & Causey, 2008)

3. Registros implicados con el Timer1


En la Tabla 1: Registros asociados al temporizador 1, son indicados los registros necesarios
para configurar el temporizador 1, haciendo notar que los nombres de bits sombreados, no
intervienen para este esquema.

Nombre
INTCON

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

GIE/GIEH

PEIE/GIEL

TMR0IE

INT0IE

RBIE

TMR0IF

INT0IF

RBIF

PIR1

ADIF

RCIF

TXIF

SSPIF

CCP1IF

TMR2IF

TMR1IF

PIE1

ADIE

RCIE

TXIE

SSPIE

CCP1IE

TMR2IE

TMR1IE

TMR1L

Valores a cargar en el registro menos significativo del temporizador

TMR1H

Valores a cargar en el registro ms significativo del temporizador

T1CON
IPR1

RD16

T1RUN

T1CKPS1

T1CKPS0

T1OSCEN

T1SYNC

TMR1CS

TMR1ON

ADIP

RCIP

TXIP

SSPIP

CCP1IP

TMR2IP

TMR1IP

Tabla 1: Registros asociados al temporizador 1

Fuente:(Microchip, 2009)
Se puede mencionar que los registros para una rpida configuracin de comportamiento de
temporizacin, se realiza a travs de los registros T1CON, TMR1L y TMR1H.
Los registros INTCON, PIR1, PIE1 e IPR, permiten la configuracin y funcionamiento de
interrupciones generadas por el temporizador 1.

4. Clculo del tiempo de retardo


Conforme a la Tabla 1: Registros asociados al temporizador 1, se visualiza que el registro
contiene los bits denominados T1CKPS1 y T1CKPS0, los cuales, permiten generar la divisin de
frecuencia del reloj principal por uno, dos, cuatro y ocho, que de acuerdo a la Tabla 2: Divisores del
Temporizador 1, los valores que pueden ser asignados para T1CKP1 y T1CKPS0 y as obtener ticks ms
amplios, se muestran a continuacin:
T1CON,

T1CKPS1

T1CKPS0

Divisor

Tabla 2: Divisores del Temporizador 1


Fuente : (Microchip, 2009)

Para una frecuencia FOSC de reloj, el retardo mximo posible con 16 bits, se obtiene de
acuerdo a la ecuacin (1):

t max=

465536
Divisor
F osc

(1)

y por consiguiente el tiempo mnimo a obtener o tick es obtenido mediante la ecuacin (2):

t min =

Divisor
1
2
4
8

4
Divisor
F osc

Tmin
0.0833333
0.1666667
0.3333333
0.6666667

Tmax
5461.33
10922.67
21845.33
43690.67

(2)

Tiempo
microsegundos
microsegundos
microsegundos
microsegundos

Tabla 3: Tiempos estimados para una frecuencia de 48MHz


Fuente: (Prieto-Moreno, Gonzalez-Gmez, & Gmez, 2009)
Con estas ecuaciones, se permite obtener un rango de valores de temporizacin, tal y como
se indica en la Tabla 3: Tiempos estimados para una frecuencia de 48MHz.
Para definir un tiempo de retardo t, es necesario que el temporizador tenga un valor de
precarga, el cual, de acuerdo a Prieto-Moreno et. Al (2009), se define con la ecuacin (3) y llama a la
variable de precarga T1INI.

T1INI =65536

F osc
t
4Divisor

(3)

Con el fin de obtener el tiempo deseado t, siempre y cuando t tenga valores vlidos en el rango
mnimo y mximo, determinado por las ecuaciones (1) y (2) (Prieto-Moreno et al., 2009).

5. Configuracin del Temporizador 1 para obtener un retardo


Para configurar el Temporizador 1 y de esta forma obtener un retardo de tiempo, el
programador, tuvo que haber definido, la frecuencia de reloj usada por el sistema, la divisin de
frecuencia deseada y el valor de precarga inicial del temporizacin.
Como ejemplo de lo anterior, a continuacin, se presenta el procedimiento matemtico
requerido para que un microcontrolador que trabaja con un oscilador de cristal a 20MHz, configurado
para que internamente, por medio de un elemento de hardware denominado PLL, incremente la
frecuencia de reloj de sistema a 48MHz, y con esto sea obtenido un retardo de 1.57 ms (Jung, 2010;
RedPIC, 2010).

Usando la ecuacin (3) de la seccin 4. Clculo del tiempo de retardo, se obtiene que el
valor de precarga para el temporizador es de:

48MHz
(1.57 ms)
41
T1INI =46696

T1INI =65536

(4)

Ntese que se ha escogido un divisor de frecuencia por 1, esta decisin es con base en la
Tabla 3: Tiempos estimados para una frecuencia de 48MHz, ya que en la columna 1 de sta, el valor
mximo de tiempo generado por este divisor es de 5.4 ms aproximadamente, siendo el divisor por 1,
mejor que el calculado por un divisor por dos, y la razn de esto, es porque el tick o duracin del
pulso de menor tiempo, es mayor en el segundo caso que en el primero, de esta manera, se genera
la prdida de resolucin en el tiempo deseado.
Por lo tanto, con el valor de precarga 46696, tericamente, es obtenido un tiempo de retardo
de 1.57 milsimas de segundo. Observar la siguiente sustitucin:

Retardo=65536

(4)(46696)
=1.57103 s
48 MHz

En ella se muestra que el nmero 65536, representa el nmero de ciclos para desbordar el
temporizador 1 considerando un ciclo completo, el 4, se refiere a los 4 ciclos de reloj que consume un
ciclo de instruccin, el valor 46696, indica la precarga del temporizador y finalmente los 48MHz son la
frecuencia de reloj del sistema embebido.

6. Conclusiones
El microcontrolador PIC18F2550, cuenta con un temporizador de 16 bits, que es capaz de
almacenar en formato binario, las oscilaciones de un cristal de cuarzo, con el fin de generar un tiempo
de retardo muy bien definido.
Para lograr este fin, es necesario tomar en cuenta los siguientes puntos: el valor del cristal
de cuarzo a usar, la configuracin del reloj interno del sistema del microcontrolador, los registros que
interactan con el temporizador, as como el divisor de frecuencia para el temporizador.
Usando herramienta matemtica y el conocimiento necesario de la configuracin bsica del
temporizador 1 del microcontrolador PIC18F2550, es posible derivar ecuaciones, que permiten
establecer el parmetro precarga.
Mediante la asignacin del valor de precarga al temporizador 1 del microcontrolador
PIC18F2550, tericamente, es posible obtener un retardo de tiempo.
Finalmente cabe agregar que, el inters de acumular estos retardos de tiempo e ir
contabilizndolos, estriba en la medicin del tiempo, la que de acuerdo a (Cabanes, 2005), esta
medicin al ser de ndole histrico tcnico, facilita que a travs de clculos, sea posible establecer
fechas.

7. Bibliografa
Cabanes, M. L. (2005). El tiempo y la Humanidad - La medida del tiempo - El tiempo. Biblioteca
Cervantes Virtual. Recuperado Septiembre 20, 2011, a partir de
http://bib.cervantesvirtual.com/historia/TH/tiempo.shtml
Jung, E. (2010, Julio 22). Default config for PIC18F4550 20 Mhz (48 Mhz) | MoP. MoP. Recuperado

Agosto 11, 2011, a partir de http://junif.hu/mop/programok/default_config


Mazidi, A., McKinlay, R., & Causey, D. (2008). PIC18 Timer programming in Assembly and C. PIC
Microcontroller and Embedded Systems - Using assembly and C for PIC18 (1o ed., pgs. 335386). EUA: Pearson Educacion International.
Microchip. (2009, Octubre 27). Datasheet PIC18F2550. PIC18F2550. Recuperado Noviembre 3,
2010, a partir de http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010280
Prieto-Moreno, A., Gonzalez-Gmez, J., & Gmez, R. (2009, Junio). Programacin del PIC16 en C WikiRobotics. Wikirobotics. Recuperado Abril 2, 2011, a partir de
http://www.iearobotics.com/wiki/index.php?title=Programacin_del_PIC16_en_C
RedPIC. (2010, Agosto 7). Consiguiendo 4 Mhz para los 48 Mhz necesarios en los PICs con USB
2.0. PicMana by RedRaven. Recuperado Agosto 11, 2011, a partir de http://picmania.garciacuervo.net/conceptos.php#USB4Mhz
Rose, H. J., & Rose, H. J. (1928). A Handbook of Greek Mythology.

THIS DOCUMENT IS LICENSED UNDER THE ATTRIBUTION-SHAREALIKE 2.5 MEXICO LICENSE,


AVAILABLE AT HTTP://CREATIVECOMMONS.ORG/LICENSES/BY-SA/2.5/MX/.