Вы находитесь на странице: 1из 57

ARQUITECTURA DE LOS

MICROCONTROLADORES PIC

Ing. Junior Figueroa Olmedo

Arquitectura

Arquitectura

UNIDAD CENTRAL DE
PROCESAMIENTO CPU

Es el cerebro del microcontrolador y acta bajo el control del programa


almacenado en la memoria.
Esta unidad trae las instrucciones del programa (una a una) desde la memoria, las
interpreta (decodifica) y hace que se ejecuten.
Incluye los circuitos para realizar operaciones aritmticas y lgicas elementales con
los datos binarios, en la Unidad Aritmtica Lgica.
El Registro de Trabajo (W), es un registro de 8 bits utilizado para almacenar
todos los datos sobre los que se debe realizar alguna operacin (sumar, mover, etc.).
Tambin almacena los resultados preparados para el procesamiento futuro.

UNIDAD CENTRAL DE
PROCESAMIENTO CPU

La principal diferencia entre ambos se encuentra en la ubicacin del registro de trabajo,


que para los PICs se denomina W (Working Register), y para los sistemas tradicionales es
el Acumulador.

UNIDAD CENTRAL DE
PROCESAMIENTO CPU
En las arquitecturas tradicionales el acumulador (ACC) est a la salida de la ALU, de
modo que el resultado de cualquier operacin aritmtica o lgica siempre es
depositado en el ACC.
En los PICs, en cambio, el resultado de una operacin aritmtica o lgica puede
depositarse en el registro de trabajo (W) o puede llevarse directamente a cualquier
registro de la memoria de datos, y esto proporciona una gran flexibilidad y potencia.
EL registro de Estado o Status (PSW), est estrechamente relacionado con el
registro de trabajo (W). Cuenta con algunos bits que indican determinadas
caractersticas del resultado de la operacin realizada en la ALU (si el resultado es
cero, si se ha producido acarreo o prstamo, si el resultado es positivo o negativo,
etc.)

LA MEMORIA EN LOS
MICROCONTROLADORES
La memoria es un conjunto de celdas o localizaciones que se identifican por su
direccin. En cada celda se almacena una palabra.
Una palabra es la unidad lgica de informacin almacenada en un celda de memoria.
Se utilizan palabras de 1, 8, 12, 14 o 16 bits de longitud. Una palabra de bits es un
octeto o byte.

La cantidad de celdas de la memoria define su capacidad. La capacidad o tamao de


la memoria se mide en palabras, ya sean en bits, bytes o palabras de 12, 14 o ms
bits.

LA MEMORIA EN LOS
MICROCONTROLADORES
La direccin de una celda es el ente que identifica la celda en la memoria. La forma
ms simple de identificar las celdas es asignar a cada una un nmero entero
consecutivo.
La direccin es el nmero binario (o hexadecimal) que denota la posicin de la
celda en la memoria.
0, 1, 2, ,

1 donde N= nmero de celdas

Lgicamente, la cantidad de bits necesarios para formar la direccin de una celda


es funcin directa de la capacidad de la memoria y est dada por:
2

LA MEMORIA EN LOS
MICROCONTROLADORES
Ejemplo:
Se tiene una memoria donde para formar la direccin de una celda de 8 bits (1
byte) cualquiera se necesitan 10 bits (
10), as pues la cantidad de celdas que
componen la memoria est dada por
2
1024.
Las direcciones posibles son
0, 1, 2, , 1023 (nmeros enteros). Expresando
estos nmeros en el sistema de numeracin hexadecimal, tal como es costumbre, se
tiene
0 ,1 ,2 ,,3
.
Entonces la capacidad de la memoria es de 1024 bytes o en forma simplificada 1kB.

ORGANOZACIN LGICA DE LAS


MEMORIAS
La memoria se organiza normalmente como un todo nico (organizacin lineal) o
por bloques llamados pginas.
En la organizacin lineal, las direcciones de las celdas son nmeros binarios
consecutivos. En este caso, cada celda se identifica por su direccin lineal (D),
formada por un nmero binario nico.
Una pgina es una porcin de memoria de tamao fijo. Las pginas estn una a
continuacin de la otra sin solaparse (las pginas no se colocan una sobre otra).
Cada pgina se puede identificar por un nmero consecutivo denominado nmero
de pgina.

ORGANOZACIN LGICA DE LAS


MEMORIAS
Dentro de una pgina cualquiera, las celdas se identifican por su posicin respecto al
comienzo de la pgina, llamada desplazamiento.
En una memoria organizada en pginas, la direccin de una celda se compone de
dos elementos: el nmero de la pgina (npag) y el desplazamiento (desp). El conjunto
de estos dos elementos constituyen la direccin lgica (Dlog) de la celda.
Dlog = npag desp
La direccin lineal (D) se puede obtener a partir de los elementos de la direccin
lgica (Dlog), mediante:
D = (npag tpag) + desp,

donde tpag es el tamao de la pgina

ORGANOZACIN LGICA DE LAS


MEMORIAS
Por ejemplo, en una memoria organizada en 4 pginas y cada una con un
tamao de 256 bytes (tpag = 100h en hexadecimal), una celda que se
encuentre en la pgina 2 (npag = 2) con desplazamiento A5h tiene una
direccin lineal
D = (2100h) + A5h = 2A5h.

TIPOS DE MEMORIA
Memoria de Programa: es no voltil y bsicamente de slo lectura. Pueden ser
de tipo ROM (Read-Only Memory), EPROM (Erasable Programmable ROM), OTP (One
Time Programmable) y FLASH.
Memoria de Datos: es fundamentalmente de lectura y escritura y no hace falta
que la informacin permanezca en ella al interrumpir el suministro de energa al
microcontrolador, es decir, la memoria es voltil. Se utilizan memorias RAM (Random
Access Memory) estticas.
Memoria EEPROM (Electrically Erasable Programmable Read-Only
Memory): Muchos microcontroladores PIC utilizan cierta de cantidad adicional de
memoria (externa) de lectura y escritura, no voltil, como parte de la memoria de
datos. El objetivo de esta memoria es permitir el almacenamiento de datos fijos o
poco variables.
Memoria RAM: Es una memoria de lectura y escritura. Hay dos variantes: la
esttica y la dinmica. Esttica: la informacin permanece estable indefinidamente
mientras no se suprima la tensin de alimentacin. Dinmica: requieren un
refrescamiento peridico de la informacin almacenada.

FAMILIA DE MICROCONTROLADORES PIC


Gama baja: microcontroladores con instrucciones (palabras) de 12 bits.
Gama media: microcontroladores con instrucciones (palabras) de 14 bits.
Gama alta: microcontroladores con instrucciones (palabras) de 16 bits.

CARACTERSTICAS GENERALES DE LOS PIC


Arquitectura Harvard, con memorias de programa y datos separadas.
En la mayora de los

, la memoria de programa es mucho mayor que la de datos.

La memoria ROM de programa est organizada en palabras de 12, 14 16 bits.


La memoria RAM de datos est compuesta por registros de 8 bits.
Arquitectura RISC (entre 33 y 77 instrucciones)
Todas las instrucciones son del mismo tamao: una palabra de 12, 14 16 bits.
Varios cuentan con cierta cantidad de memoria EEPRON para almacenamiento no voltil
de datos.
EL acceso a los dispositivos de E/S se realiza a travs de algunos registros de la memoria
de datos (Registro de Funciones Especiales - SFR).
Se puede proteger a la memoria de programa frente a copias no autorizadas.

MICROCONTROLADOR PIC16F877A
Repertorio de 35 instrucciones de 14 bits cada una.
La memoria FLASH de programa tiene una capacidad de 8k (8192) palabras de 14
bits y se organiza en pginas de 2k (2048) palabras cada una.
La memoria de datos (SRAM esttica) est formada por registros de 8 bits, tiene
una capacidad de 368 bytes y est organizada en 4 bancos.
Posee una memoria EEPRON de datos de 256 bytes.
Tiene una pila de 8 niveles, donde se almacenan direcciones de la memoria de
programa.
Posee un sistema de interrupciones para atender interrupciones internas y
externas.
Cuenta con 5 puertos paralelos (A, B, C, D y E) para la comunicacin paralela con
dispositivos externos.
Posee tres temporizadores (Timer0, Timer1 y Timer2), dos mdulos de capturacomparacin-modulacin de ancho de pulso (CPP1, CCP2).
Posee puertos serie para comunicacin serie asincrnica y sincrnica, un
convertidor A/D de 10 bits asociado a un multiplexor con varias entradas
analgicas.

MEMORIAS DEL PIC16F877A


La memoria de programa es del tipo FLASH y en ella se almacena las
instrucciones del programa que ejecuta el microcontrolador. Es del tipo no voltil,
es decir, el programa se mantiene aunque desaparezca la alimentacin.
La memoria de datos est realizada sobre memoria RAM esttica (SRAM) y se
destina para guardar las variables y datos (memoria de lectura y escritura). Es del
tipo voltil, es decir, los datos almacenados se borran cuando desaparece la
alimentacin.
Adicionalmente en un espacio separado se cuenta con cierta cantidad de memoria
EEPROM para lectura y escritura no voltil, denominada memoria EEPROM de
datos. En esta memoria se pueden almacenar datos fijos o que varan poco. Un
corte de suministro de la alimentacin no ocasiona la prdida de la informacin, que
estar disponible al reinicializarse el programa.

MEMORIA RAM DE DATOS

Los registros de funciones especiales (SFR: Special Function Registers) son los
registros a travs de los cuales se controla al microcontrolador y se accede a sus
diferentes perifricos (convertidor A/D, mdulo de comunicacin serial), se
programan sus funciones, etc.
Los registros de propsito general (GPR: General Purpose Registers) constituyen
la memoria de datos propiamente dicha, disponible para el libre uso del usuario en
sus programas.

MEMORIA RAM DE DATOS


Est organizada en palabras de 8 bits. Est paginada, aunque a las pginas de la
memoria de datos se le llama bancos.
Cada banco contiene hasta 128 localizaciones de memoria o registros, cuyas
direcciones van desde 00h a 7Fh dentro de cada banco (no confundirse con la
direccin lineal).
El PIC16F877A posee cuatro bancos de registros con un total de 512 posibles
registros, con las direcciones absolutas 000h a 1FFh.

MEMORIA DE DATOS PIC16F877A

REGISTROS DE FUNCIONES ESPECIALES


Funcin o dispositivo
Seleccin del banco de memoria. Indicadores relacionados con las
operaciones aritmticas y lgicas. Desbordamiento del perro
guardin. Indicador de bajo consumo.

Valor del pre-divisor. Flancos los pulsos del reloj. Flanco de la


solicitud de interrupcin externa. Pull-up interno del puerto B.

SFR

STATUS

OPTION

Indicadores de error de paridad en memoria. Tipo de reset. Bajo


consumo.

PCON

Contador de programa

PCLATH, PCL

Direccionamiento Indirecto

FSR

Interrupciones

INTCON
PIR1, PIE1
PIR2, PIE2

Puertos paralelos

PORTA, TRISA
PORTB, TRISB
PORTC, TRISC
PORTD, TRISD
PORTE, TRISE

Timer 0

TMR0, OPTION, INTCON

Timer 1

TMR1H, TMR1L, T1CON, PIR1

Timer 2

TMR2, PR2, T2CON, PIR1

Mdulos CCPx(x = 1, 2, 3)

CCPRxH, CCPRxL, CCPxCON

Puerto serie USART o SCI

TXREG, TXSTA, RCREG, RCSTA

Puerto serie sincrnico SSP

SSPSTAT, SSPCON, SSPBUF, SSPADD

Convertidor A/D

ADRESH, ADRESL, ADCON0, ADCON1

Memoria EEPROM de datos y memoria FLASH de programa

EEADRH, EEADR,
EECON1, EECON2

EEDATH,

EEDATA,

MEMORIA DE PROGRAMA
En esta memoria se almacenen todas las instrucciones del programa de control.
Debido a su caracterstica de no volatilidad la memoria mantiene su contenido
an sin alimentacin.
La informacin contenida debe ser grabada previamente mediante un equipo fsico
denominado programador o grabador.
La memoria de programa se organiza en pginas. En El PIC16F877A posee 4 pginas
de 2048 palabras cada una, por tanto, la capacidad de memoria es de 8192 palabras.
Las palabras de este PIC son de 14 bits.

DIRECCIONAMIENTO DE LA MEMORIA DE
PROGRAMA
El contador de programa PC (Program Counter) es el registro del microcontrolador
cuya funcin es direccionar la memoria de programa.
El PC almacena direcciones de instrucciones, ms precisamente, en el PC est la
direccin de la siguiente instruccin que hay que ejecutar.
En los microcontroladores de gama media, el PC es de 13 bits, de modo que puede
direccionar el espacio de 8000 palabras de la memoria de programa.

Como la memoria de programa est paginada, los bits 12 y 11 del PC dan el nmero
de la pgina, mientras que los bits del 10 al 0 dan la direccin dentro de la pgina o
desplazamiento.

LA PILA (STACK)

LA PILA (STACK)
La pila (stack en ingls) es una zona de memoria que se encuentra separada tanto de
la memoria de programa como de la de datos dentro del microcontrolador .
Consiste en un conjunto de ocho registros de 13 bits cada uno y en donde se
almacenan direcciones de la memoria de programa.
Es un tipo de estructura de datos con organizacin LIFO (Last In First Out): lo ltimo
que entra en la pila es lo primero que sale de ella.
Antes de que el microcontrolador se ponga a ejecutar una subrutina o al ocurrir
una interrupcin, la direccin de la siguiente instruccin en ser ejecutada
(almacenada en el PC) se coloca en la pila (se apila), o sea, en uno de los registros.
Gracias a eso, despus de ejecutarse una subrutina o una interrupcin, el
microcontrolador sabe dnde continuar con la ejecucin del programa. Esta
direccin se borra (se desapila) despus de volver al programa, ya que no es
necesario guardarla, disponiendo automticamente esas localidades de la pila para
un uso futuro.

LA PILA (STACK)
Dado el tamao de la pila, se pueden anidar hasta 8 subrutinas; es decir, desde el
programa principal se puede llamar a una primera subrutina y desde sta a una
segunda subrutina, y de sta a una tercera, y as sucesivamente hasta completar un
total de 8 llamadas.

La novena vez se sobrescribe el valor que se almacen al apilar el dato por primera
vez. La dcima vez que se apile, se sobrescribe el valor que se almacen al apilar el
dato por segunda vez, etc. Datos sobrescritos de esta manera no se pueden
recuperar.
No hay ningn bit de estado para indicar el estado de desbordamiento o
subdesbordamiento de pila. Por esta razn hay que tener un especial cuidado al
escribir un programa.

CICLOS DE MQUINA Y EJECUCIN DE


INSTRUCCIONES

Los pulsos generados por el oscilador principal (OSC1) son divididos internamente
para generar cuatro seales denominadas Q1, Q2, Q3 y Q4, que sincronizan todo el
trabajo interno del microcontrolador.
Cada cuatro pulsos del oscilador principal se tiene un ciclo de mquina (CM).

CICLOS DE MQUINA Y EJECUCIN DE


INSTRUCCIONES
Durante el tiempo Q1 de cada ciclo de mquina, el contador de programa (PC) se
incrementa, apuntando hacia la instruccin que debe ser buscada, lo cual ocurre
durante el tiempo Q4. Paralelamente, durante todo el CM (desde Q1 a Q4) se est
ejecutando la instruccin anterior.
La ejecucin de una instruccin cualquiera se realiza en tres fases: bsqueda,
descodificacin y ejecucin. En la fase de bsqueda, el microcontrolador lee la
instruccin que est en la memoria de programa y la lleva a la CPU. En la fase de
descodificacin, la CPU determina cul es la operacin indicada en la instruccin. En
la fase de ejecucin, se ejecuta la operacin prevista por la instruccin.
La ejecucin de una instruccin se realiza en dos ciclos de mquina. En el primer CM
se busca la instruccin en la memoria de programa y en el segundo CM se
descodifica y ejecuta la instruccin.
En realidad, debido al mecanismo de segmentado (pipeline), ese segundo CM se
solapa, en el tiempo, con el primer CM de la siguiente instruccin, resultando que en
promedio se ejecute una instruccin por ciclo de mquina.

REGISTRO DE CONFIGURACIN
Permiten que el usuario programe ciertas caractersticas del microcontrolador para
adaptarlo mejor a las necesidades de la aplicacin.
Cuando se pone en marcha el dispositivo, el estado de estos bits determina la forma
en que operar el microcontrolador.
Aunque estos bits normalmente forman parte de la memoria de programa, ocupan
una direccin que no es accesible durante el funcionamiento normal del
microcontrolador. Slo se puede acceder a ellos durante la programacin del
microcontrolador.
Las caractersticas que se programan en los bits de configuracin son las siguientes:
El tipo de oscilador
La habilitacin o no del perro guardin.
La proteccin de la memoria de programa.
La proteccin de la memoria EEPROM de datos.
Las caractersticas del reset y la alimentacin del dispositivo.
Los bits de configuracin del PIC16F877A se agrupan en una palabra de
configuracin que ocupa la direccin 2007h de la memoria de programa.

BITS DE CONFIGURACIN PIC 16F877A

OSCILADOR O RELOJ
Todo microcontrolador requiere de un circuito que le indique la velocidad de
trabajo, es el llamado oscilador o reloj.
El oscilador genera una onda cuadrada de alta frecuencia (seal de reloj) que se
utiliza como seal para sincronizar todas las operaciones del sistema.
Generalmente todos los componentes del reloj se encuentran integrados en el
propio microcontrolador y tan solo se requieren unos pocos componentes
externos, como un cristal de cuarzo o una red RC, para definir la frecuencia de
trabajo.
Existen microcontroladores PIC que tienen un oscilador interno (RC) y no
requieren de componentes externos. La frecuencia de reloj mxima depender del
tipo de microcontrolador elegido.
La eleccin de la frecuencia de la seal de reloj depender de la precisin y
velocidad que la aplicacin a controlar requiera.

OSCILADOR O RELOJ
El modo de funcionamiento del oscilador (fuente de la seal de reloj, oscilador
interno o externo) se selecciona por medio de los bits de la Palabra de
Configuracin, cargados en el microcontrolador durante la programacin.

La eleccin de utilizar un oscilador externo o interno depender de la aplicacin. Si


se esta diseando un cronometro de precisin, un frecuencmetro o un equipo que
maneje comunicaciones sincrnicas de alta frecuencia, se necesitar un oscilador
externo de cristal, en caso de no necesitar precisin, el interno funcionar.

OSCILADOR EXTERNO EN MODO LP,


XT Y HS

El oscilador en los modos LP, XT y HS utilizan un oscilador externo dentro del microcontrolador
como una fuente de reloj. La frecuencia de reloj est determinada por un cristal de cuarzo o por
resonadores cermicos conectados a los pines OSC1 y OSC2.
Modo LP: Para aplicaciones de baja potencia. Se utiliza slo para trabajar con cristales de
cuarzo de baja frecuencia (32 kHz a 200 kHz). Al utilizar este modo el consumo de corriente
ser menor que en los dems modos.
Modo XT: Se utiliza para cristales de cuarzo de frecuencias intermedias (100 kHz a 4 MHz).
El consumo de corriente es media en comparacin con los dems modos.
Modo HS: Para aplicaciones de alta velocidad. Se utiliza para cristales de reloj de frecuencia
ms alta (4 MHz a 20 MHz). Al utilizar este modo el consumo de corriente ser mayor que
en los dems modos.

OSCILADOR EXTERNO EN MODO LP,


XT Y HS

OSCILADOR EXTERNO EN MODO RC Y


RCIO
En la mayora de casos el oscilador del microcontrolador puede funcionar a
frecuencias que no son precisamente definidas.
La solucin ms simple y ms barata en estas situaciones es utilizar una resistencia y
un capacitor para el funcionamiento del oscilador.
Modo RC: el pin OSC1 debe estar conectado al circuito RC. La seal de frecuencia
del oscilador RC dividida por 4 est disponible en el pin OSC2. Esta seal se puede
utilizar para la calibracin, sincronizacin o para otros propsitos.

OSCILADOR EXTERNO EN MODO RC Y


RCIO
Modo RCIO: De manera similar, el circuito RC est conectado al pin OSC1. Esta
vez, el pin OSC2 est disponible para ser utilizado como pin de E/S de propsito
general.

La frecuencia de este oscilador se calcula por medio de la frmula f = 1/T en donde:


f = frecuencia [Hz];
T = R*C = constante de tiempo [s];
R = resistencia elctrica []; y
C = capacitancia del condensador [F].

OSCILADOR EXTERNO EN MODO EC

El oscliador de reloj externo en el modo EC (external clock) utiliza un oscilador


externo como una fuente de seal de reloj.
El funcionamiento de este oscilador externo es independiente de cualquier circuito
interno del microcontrolador, es decir, la seal de reloj viaja directamente desde el
exterior a la CPU.
La mxima frecuencia de seal de reloj est limitada a 20 MHz.

OSCILADOR EXTERNO EN MODO EC


Las ventajas del funcionamiento del oscilador externo en modo EC son las
siguientes:
La fuente de reloj externa independiente est conectada al pin de entrada OSC1.
El pin OSC2 est disponible como pin de E/S de propsito general.
Es posible sincronizar el funcionamiento del microcontrolador con los dems
componentes incorporados en el dispositivo.
En este modo el microcontrolador se pone a funcionar inmediatamente despus
de encenderlo. No se requiere esperar para estabilizar la frecuencia.
Al deshabilitar temporalmente la fuente de reloj externa, se detiene el
funcionamiento del dispositivo, dejando todos los datos intactos. Despus de
reiniciar el reloj externo, el dispositivo sigue funcionando como si no hubiera
pasado nada

OSCILADOR INTERNO

El circuito del oscilador interno consiste en dos osciladores separados que se


pueden seleccionar como la fuente del reloj del microcontrolador.
El oscilador HFINTOSC est calibrado de fbrica y funciona a 8Mhz. La frecuencia
de este oscilador se puede configurar por el usuario por medio de software
utilizando los bits del registro OSCTUNE.
El oscilador LFINTOSC no est calibrado de fbrica y funciona a 31kHz.
Similar al oscilador externo, el interno tambin puede funcionar en varios modos. El
modo de funcionamiento se selecciona de la misma manera que en el oscilador
externo - por medio de los bits que forman Palabra de Configuracin. En otras
palabras, todo se lleva a cabo dentro del software antes de escribir un programa en
el microcontrolador.

OSCILADOR INTERNO
OSCILADOR INTERNO EN MODO INTOSC: El pin OSC1 est disponible para ser
utilizado como pin de E/S de propsito general. La seal de frecuencia del oscilador interno
dividida por 4 est disponible en el pin OSC2.

OSCILADOR INTERNO EN MODO INTOSCIO: los dos pines estn disponibles como
pines de E/S de propsito general.

CONFIGURACIN DEL OSCILADOR


INTERNO

TEMPORIZADOR PERRO GUARDIN


(WATCHDOG TIMER)
No es extrao que en microelectrnica se den circunstancias de hardware o
firmware no previstas por el diseador en las que un microcontrolador se quede en
un estado indeterminado del que le sea imposible salir sin una ayuda externa.
El perro guardin garantiza la seguridad de funcionamiento del microcontrolador,
porque cualquier fallo es detectado a tiempo y se pueden tomar las medidas
necesarias para evitar situaciones que podran ser catastrficas.

Funcionamiento: El oscilador enva sus pulsos peridica y permanentemente a la


entrada de reloj del contador. Si el contador llega a contar los N pulsos, se desborda,
su salida se activa y produce el reset del microcontrolador.

TEMPORIZADOR PERRO GUARDIN


(WATCHDOG TIMER)

El objetivo del programador es evitar el desbordamiento, y con ello el reset del


microcontrolador, es poner a 0 el contador del perro guardin desde el programa, y
hacerlo a intervalos de tiempo ms cortos que el tiempo que se tarda en contar los
N pulsos.
Para conseguirlo el programador debe distribuir a lo largo del programa las
instrucciones que borran el conteo del perro guardin.

TEMPORIZADOR PERRO GUARDIN


(WATCHDOG TIMER)

Si el programa se ejecuta correctamente, el perro guardin nunca se desborda pues


antes de hacerlo ha sido borrado oportunamente desde el programa.
En cambio, si el microcontrolador se pierde y el programa deja de ser ejecutado en
la secuencia correcta, el perro guardin no es borrado a tiempo, se desborda y
produce el reset del microcontrolador, con lo que es posible retomar el control y
reconducir el programa por el camino correcto.

MODO DE BAJO CONSUMO (MODO SLEEP)


Cuando el microcontrolador se ha paralizado total o parcialmente para disminuir su
consumo de corriente, se dice que ha entrado a un modo de consumo reducido o de
bajo consumo (power down, sleep mode).
Muchas veces la tarea que debe realizar el microcontrolador consiste
fundamentalmente en esperar la ocurrencia de un evento externo, como la pulsacin
de una tecla, una interrupcin, etc., y entonces realizar una determinada tarea y
volver a esperar la ocurrencia de un nuevo evento externo.
Mientras dura la espera conviene paralizar total o parcialmente al microcontrolador
para disminuir as el consumo de corriente (consideracin importante cuando se
utiliza bateras como fuente de alimentacin).
Una forma prctica de paralizar al microcontrolador es detener el oscilador principal
y hacer que los diferentes bloques del dispositivo permanezcan en estado esttico, a
la espera de que ocurra la accin externa que saque al microcontrolador de ese
estado.

MODO DE BAJO CONSUMO (MODO SLEEP)


En estas condiciones, el microcontrolador consume muy poca corriente de la fuente
de alimentacin: menos de 1 en algunos modelos.
En el modo de bajo consumo se entra con la instruccin sleep.
Se sale o se despierta del modo de bajo consumo cuando ocurre alguno de estos
tres eventos:
1.

Un reset: el microcontrolador va directo a ejecutar la instruccin que est en


la direccin 00h de la memoria de programa.

2.

Un desbordamiento del perro guardin (si est habilitado): contina la


ejecucin del programa con la instruccin que sigue a la instruccin sleep.

3.

Una interrupcin externa y o procedente de alguno de los mdulos


perifricos internos (si est habilitada): se ejecuta la instruccin que sigue a
la instruccin sleep y se salta a la direccin 004h de la memoria de programa
en busca de la rutina de atencin a la interrupcin.

FUENTES DE RESET
Cuando el microcontrolador est en estado de reset, est virtualmente detenido, es
decir, no ejecuta ninguna instruccin del programa.
Cuando el microcontrolador sale del estado de reset, el contador de programa PC
adquiere el valor 00h, de modo que se ejecutan todas las instrucciones que estn a
partir de esa posicin de memoria apuntada por el PC.
RESET EXTERNO: ocurre cuando se pone a 0 el terminal MCLR. El terminal
MCLR debe estar a 1 durante el funcionamiento normal del microcontrolador. Puede
ocurrir durante el funcionamiento normal del microcontrolador o cuando est en
modo de bajo consumo.

FUENTES DE RESET
RESET POR ENCENDIDO (PUESTA EN MARCHA): ocurre si se conecta el
de alimentacin del microcontrolador (por un
terminal MCLR al terminal
pequeo lapso de tiempo).
El microcontrolador detecta la tensin de alimentacin (flanco de subida en
),
provocando con ello un reset que garantiza el correcto inicio de trabajo del
microcontrolador.

Si la fuente de alimentacin tiene un tiempo de establecimiento elevado, hay que


garantizar que la tensin en el terminal MCLR permanezca por debajo del umbral
hasta que
alcance un valor adecuado (Figura b).

FUENTES DE RESET
RESET POR DESBORDAMIENTO DEL PERRO GUARDIAN: ocurre
cuando se desborda el temporizador denominado perro guardin (WDT: Watchdog
Timer). El desbordamiento se produce si desde el programa que est ejecutando el
microcontrolador, no se borra a tiempo el resultado del conteo que realiza este
temporizador.
El reset por desbordamiento del perro guardin puede ocurrir durante
funcionamiento normal del microcontrolador.

el

Si el WDT se desborda mientras el microcontrolador est en el modo de bajo


consumo, el microcontrolador sale de dicho modo, pero no se produce un reset, sino
que contina la ejecucin del programa con la instruccin que sigue a la instruccin
sleep.

FUENTES DE RESET
RESET POR FALLO DE ALIMENTACIN (BROWN-OUT RESET):
Ocurre cuando hay una disminucin brusca y transitoria de la tensin de
alimentacin. El microcontrolador incluye un circuito que produce un reset en estas
condiciones y mantiene dicho estado mientras la tensin de alimentacin
est
por debajo de un cierto umbral.

Cuando
se recupera, el estado de reset se mantiene durante un periodo de 72
ms. De esta forma se garantiza que el oscilador principal y
estn en sus valores
nominales cuando salga del estado de reset.

CIRCUITO INTERNO DE RESET


La figura muestra el esquema lgico del circuito interno que produce el reset de los
microcontroladores PIC y las posibles fuentes de reset enunciadas anteriormente.
El circuito garantiza que en el momento de abandonar el estado reset, el
microcontrolador se encuentre en condiciones estables que permitan su correcto
funcionamiento.

CIRCUITO INTERNO DE RESET


El circuito debe asegurar que la salida del estado de reset se produzca slo si la
fuente de alimentacin ha alcanzado un valor estable y suficientemente alto.
El circuito interno tambin debe de garantizar que el microcontrolador abandone el
estado de reset slo si el oscilador principal est en rgimen estable. Mientras la
amplitud y frecuencia del oscilador no sean estables el microcontrolador debe
permanecer en el estado de reset.
Las caractersticas de algunas fuentes de reloj se pueden programar mediante la
palabra de configuracin del microcontrolador (BOREN,WDTEN)

DIAGRAMA DE CONEXIONADO PIC16F877A

DIAGRAMA DE CONEXIONADO PIC16F877A

DIAGRAMA DE CONEXIONADO PIC16F877A

DIAGRAMA DE CONEXIONADO PIC16F877A

Вам также может понравиться