1.
5 Componentes del microcontrolador
TAREA
Que es el Watch Dog Timer
Que es el reset powert-up
Siempre que un electrónico va a utilizar un nuevo
dispositivo lo primero que tiene hacer es estudiar el
datasheet u hoja de características, pues ha de
adquirir una serie de conocimientos necesarios
para su correcto uso.
El PIC 16F877 es un microcontrolador de Microchip
Technology fabricado en tecnología CMOS, su
consumo de potencia es muy bajo y además es
completamente estático (esto quiere decir que el
reloj puede detenerse y los datos de la memoria no
se pierden). Tiene una memoria memoria de
programa tipo FLASH, lo que representa gran
facilidad en el desarrollo de prototipos y en su
aprendizaje, pues permite reprogramarlo
nuevamente sin ser borrado con anterioridad.
Tecnología TTL: Lógica de Transistor a Transistor.
Esta tecnología, hace uso de resistencias, diodos y
transistores bipolares para obtener funciones
lógicas estándar.
Tecnología CMOS: Lógica MOS Complementaria.
Esta tecnología, hace uso básicamente de
transistores de efecto de campo NMOS Y PMOS.
Resumen de características principales
del PIC 16F877
Memoria de programa: FLASH de 8K de
instrucciones de 14 bits
Memorias de datos: SRAM de 512 bytes,
EEPROM de 256 bytes
Pines I/O (Input/Output) : 6 del puerto A, 8 del
puerto B, 8 del puerto C, 8 del puerto D y 3 del
puerto E, además de 8 entradas analógicas.
Pila (Stack): 8 niveles (14 bits)
Fuentes de interrupción: 14
Instrucciones: 35
Compatible modo SLEEP
Frecuencia máxima del oscilador de 20MHz
Conversor Analógico/Digital de 10 bits multicanal
(8 canales de entrada)
Corriente máxima absorbida/suministrada
(sink/source) por pin: 25 mA
Voltaje nominal: 3 a 5.5V DC (CMOS)
Power On Reset
Power Up Timer (PWRT)
Oscilador Start Up Timer (OST)
El encapsulado que he utilizado es de tipo DIP
(Dual In-Line Pin) de 40 pines, aunque posee
otros encapsulados (SOIC, PLCC y QFP):
Los pines I/O (Input/Output) están organizados en 5
puertos:
Cada pin de esos puertos se puede configurar
como entrada o como salida independiente
programando un par de registros diseñados para tal
fin. En ese registro un bit en “0” configura el pin del
puerto correspondiente como salida y un bit en “1”
lo configura como entrada. Dichos pines del
microcontrolador también pueden cumplir otras
funciones especiales, siempre y cuando se
configuren para ello. En la siguiente tabla se indican
las funciones de todos los pines del PIC:
Arquitectura
interna
Estructura interna del PIC 16F877.
El PIC 16F877 se basa en la arquitectura Harvard,
en la cual el programa y los datos se pueden
trabajar con buses (un bus es un conjunto de líneas
que transportan información entre 2 o más
módulos) y memorias separadas, lo cual permite
que las instrucciones y los datos tengan longitudes
diferentes.
Memoria de programa (FLASH)
Es una memoria de 8K de
capacidad con posiciones de
14 bits. En ella se graba o
almacena el programa o
códigos que el
microcontrolador debe
ejecutar.
La memoria está dividida en cuatro páginas de 2K
cada una. La Página 0 va de la posición de
memoria 0005h a la 07FFh, la Página 1 de 0800h
a 0FFFh, la Página 2 de 1000h a 17FFh y la
Página 3 de 1800h a 1FFFh.
El contador de programa (en este caso es de 13
bits) nos indica la dirección de la instrucción a
ejecutar.
Pila (Stack): son registros que no forman parte de
ningún banco de memoria (los bancos de
memoria los explico más abajo) y no permiten el
acceso por parte del usuario. Se usan para
guardar el valor del contador de programa cuando
se hace un llamado a una subrutina o a una
interrupción. Cuando el micro vuelva a ejecutar su
tarea normalmente, el contador de programa
recupera su valor leyéndolo en la pila. Al tener
una pila de 8 niveles, se pueden acumular 8
llamadas a subrutinas sin tener problemas.
Vector de RESET: cuando se resetea el
microcontrolador el contador de programa se
pone a cero (0000h). Por esto, en la primera
dirección del programa se debe escribir todo lo
relacionado con la iniciación del mismo..
Vector de Interrupción: cuando el
microcontrolador recibe una llamada a una
interrupción, el contador de programa apunta a la
dirección 04H de la memoria de programa, por
eso allí se debe escribir toda la información
necesaria para atender dicha interrupción.
Memorias de datos
El PIC 16F877 tiene 2 memorias de datos:
Memoria SRAM (Static Random Access Memory):
es una memoria de tipo volátil (cuando deja de
recibir alimentación se borran los datos que tenga
almacenados) que está dividida en 4 bancos de 128
bytes cada uno. De esos 128 bytes los 32 primeros
están dedicados a los SFR´s (Registros de
Funciones Especiales, cumplen un propósito
general en el control y configuración del
microcontrolador) y los 96 siguientes a los GPR´s
(Registros de Propósitos Generales, se pueden
usar para guardar los datos temporales de la tarea
que se está ejecutando).
Memoria EEPROM: es una memoria no volátil
(guarda los datos aunque le falte alimentación) con
una capacidad de 256 bytes, que permite realizar
operaciones de lectura y escritura sin interferir con
el funcionamiento normal del microcontrolador.
Tabla de registros del
PIC 16F877 y sus
direcciones.
Reloj u Oscilador
El pequeño circuito externo que los
microcontroladores necesitan para que se les
indique la velocidad de trabajo es conocido como
reloj u oscilador. En función del montaje que se
realice se puede conseguir más o menos precisión.
En el momento de programar (o quemar los
fusibles) el PIC se debe especificar el tipo de
oscilador externo que se va a utilizar. El PIC
16F877 puede utilizar 4 tipos de oscilador
diferentes:
XT: Cristal genérico (de 1 a 4 MHz).
RC: Oscilador con resistencia y condensador.
HS: Cristal de alta frecuencia (de 10 a 20 MHz).
LP: Cristal para baja frecuencia y bajo consumo.
Las configuraciones más utilizadas
son la XT y RC:
XT: se suele utilizar con un cristal de 4 MHz, pues
garantiza precisión y es bastante comercial.
Internamente esta frecuencia es dividida entre 4, lo
que hace que la frecuencia efectiva de trabajo sea
de 1 MHz en este caso, por lo que cada instrucción
se ejecuta en 1 μs (1 microsegundo):
Oscilador XT: el cristal debe ir
acompañado de 2 condensadores
RC: se utiliza si no se precisa una gran precisión y
se quiere economizar dinero:
Oscilador RC: sólo se necesita una
resistencia y un condensador.
¿Qué son los ciclos máquina?
Un ciclo máquina se define como el tiempo mínimo
necesario para ejecutar una instrucción, el cual está
formado por un número determinado de ciclos o
períodos de reloj (en la mayoría de los PIC están
constituidos por 4 ciclos de reloj).
Instrucciones del microcontrolador
(nemonicos).
1.5.6 El reset y sus posibles fuentes.
El llamado reset en un microcontrolador provoca la
reinicialización de su funcionamiento, un comienzo desde
cero en este caso, la mayoría de los dispositivos internos
del microcontrolador toman un estado conocido.
En los microcontroladores se requiere un pin de reset para
reiniciar el funcionamiento del sistema cuando sea
necesario. El pin de reset en los PIC se denomina MCLR
(master clear) y produce un reset cuando se le aplica un
nivel lógico bajo.