Arquitectura microcontroladores

57
ARQUITECTURA DE LOS MICROCONTROLADORES PIC Ing. Junior Figueroa Olmedo

description

micros pic16f887

Transcript of Arquitectura microcontroladores

  • 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 programaalmacenado en la memoria.

    Esta unidad trae las instrucciones del programa (una a una) desde la memoria, lasinterpreta (decodifica) y hace que se ejecuten.

    Incluye los circuitos para realizar operaciones aritmticas y lgicas elementales conlos datos binarios, en la Unidad Aritmtica Lgica.

    El Registro de Trabajo (W), es un registro de 8 bits utilizado para almacenartodos 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 esel Acumulador.

  • UNIDAD CENTRAL DE PROCESAMIENTO CPU

    En las arquitecturas tradicionales el acumulador (ACC) est a la salida de la ALU, demodo que el resultado de cualquier operacin aritmtica o lgica siempre esdepositado en el ACC.

    En los PICs, en cambio, el resultado de una operacin aritmtica o lgica puededepositarse en el registro de trabajo (W) o puede llevarse directamente a cualquierregistro de la memoria de datos, y esto proporciona una gran flexibilidad y potencia.

    EL registro de Estado o Status (PSW), est estrechamente relacionado con elregistro de trabajo (W). Cuenta con algunos bits que indican determinadascaractersticas del resultado de la operacin realizada en la ALU (si el resultado escero, 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 sudireccin. 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 unocteto o byte.

    La cantidad de celdas de la memoria define su capacidad. La capacidad o tamao dela memoria se mide en palabras, ya sean en bits, bytes o palabras de 12, 14 o msbits.

  • LA MEMORIA EN LOS MICROCONTROLADORES

    La direccin de una celda es el ente que identifica la celda en la memoria. La formams simple de identificar las celdas es asignar a cada una un nmero enteroconsecutivo.

    La direccin es el nmero binario (o hexadecimal) que denota la posicin de lacelda en la memoria.

    0, 1, 2, , 1 donde N= nmero de celdas

    Lgicamente, la cantidad de bits necesarios para formar la direccin de una celdaes 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 (1byte) cualquiera se necesitan 10 bits ( 10), as pues la cantidad de celdas quecomponen la memoria est dada por 2 1024.

    Las direcciones posibles son 0, 1, 2, , 1023 (nmeros enteros). Expresandoestos nmeros en el sistema de numeracin hexadecimal, tal como es costumbre, setiene 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) opor bloques llamados pginas.

    En la organizacin lineal, las direcciones de las celdas son nmeros binariosconsecutivos. 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 acontinuacin de la otra sin solaparse (las pginas no se colocan una sobre otra).Cada pgina se puede identificar por un nmero consecutivo denominado nmerode pgina.

  • ORGANOZACIN LGICA DE LAS MEMORIAS

    Dentro de una pgina cualquiera, las celdas se identifican por su posicin respecto alcomienzo de la pgina, llamada desplazamiento.

    En una memoria organizada en pginas, la direccin de una celda se compone dedos elementos: el nmero de la pgina (npag) y el desplazamiento (desp). El conjuntode 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 direccinlgica (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 untamao de 256 bytes (tpag = 100h en hexadecimal), una celda que seencuentre en la pgina 2 (npag = 2) con desplazamiento A5h tiene unadireccin lineal

    D = (2100h) + A5h = 2A5h.

  • TIPOS DE MEMORIA

    Memoria de Programa: es no voltil y bsicamente de slo lectura. Pueden serde tipo ROM (Read-Only Memory), EPROM (Erasable Programmable ROM), OTP (OneTime Programmable) y FLASH.

    Memoria de Datos: es fundamentalmente de lectura y escritura y no hace faltaque la informacin permanezca en ella al interrumpir el suministro de energa almicrocontrolador, es decir, la memoria es voltil. Se utilizan memorias RAM (RandomAccess Memory) estticas.

    Memoria EEPROM (Electrically Erasable Programmable Read-OnlyMemory): Muchos microcontroladores PIC utilizan cierta de cantidad adicional dememoria (externa) de lectura y escritura, no voltil, como parte de la memoria dedatos. El objetivo de esta memoria es permitir el almacenamiento de datos fijos opoco variables.

    Memoria RAM: Es una memoria de lectura y escritura. Hay dos variantes: laesttica y la dinmica. Esttica: la informacin permanece estable indefinidamentemientras no se suprima la tensin de alimentacin. Dinmica: requieren unrefrescamiento 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 voltilde datos.

    EL acceso a los dispositivos de E/S se realiza a travs de algunos registros de la memoriade 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 14bits y se organiza en pginas de 2k (2048) palabras cada una.

    La memoria de datos (SRAM esttica) est formada por registros de 8 bits, tieneuna 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 deprograma.

    Posee un sistema de interrupciones para atender interrupciones internas yexternas.

    Cuenta con 5 puertos paralelos (A, B, C, D y E) para la comunicacin paralela condispositivos externos.

    Posee tres temporizadores (Timer0, Timer1 y Timer2), dos mdulos de captura-comparacin-modulacin de ancho de pulso (CPP1, CCP2).

    Posee puertos serie para comunicacin serie asincrnica y sincrnica, unconvertidor A/D de 10 bits asociado a un multiplexor con varias entradasanalgicas.

  • MEMORIAS DEL PIC16F877A

    La memoria de programa es del tipo FLASH y en ella se almacena lasinstrucciones 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 sedestina para guardar las variables y datos (memoria de lectura y escritura). Es deltipo voltil, es decir, los datos almacenados se borran cuando desaparece laalimentacin.

    Adicionalmente en un espacio separado se cuenta con cierta cantidad de memoriaEEPROM para lectura y escritura no voltil, denominada memoria EEPROM dedatos. En esta memoria se pueden almacenar datos fijos o que varan poco. Uncorte de suministro de la alimentacin no ocasiona la prdida de la informacin, queestar disponible al reinicializarse el programa.

  • MEMORIA RAM DE DATOS

    Los registros de funciones especiales (SFR: Special Function Registers) son losregistros a travs de los cuales se controla al microcontrolador y se accede a susdiferentes perifricos (convertidor A/D, mdulo de comunicacin serial), seprograman sus funciones, etc.

    Los registros de propsito general (GPR: General Purpose Registers) constituyenla memoria de datos propiamente dicha, disponible para el libre uso del usuario ensus programas.

  • MEMORIA RAM DE DATOS

    Est organizada en palabras de 8 bits. Est paginada, aunque a las pginas de lamemoria de datos se le llama bancos.

    Cada banco contiene hasta 128 localizaciones de memoria o registros, cuyasdirecciones van desde 00h a 7Fh dentro de cada banco (no confundirse con ladireccin lineal).

    El PIC16F877A posee cuatro bancos de registros con un total de 512 posiblesregistros, con las direcciones absolutas 000h a 1FFh.

  • MEMORIA DE DATOS PIC16F877A

  • REGISTROS DE FUNCIONES ESPECIALESFuncin o dispositivo SFR

    Seleccin del banco de memoria. Indicadores relacionados con lasoperaciones aritmticas y lgicas. Desbordamiento del perroguardin. Indicador de bajo consumo.

    STATUS

    Valor del pre-divisor. Flancos los pulsos del reloj. Flanco de lasolicitud de interrupcin externa. Pull-up interno del puerto B. OPTION

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

    PCON

    Contador de programa PCLATH, PCL

    Direccionamiento Indirecto FSR

    InterrupcionesINTCON

    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 programaEEADRH, EEADR, EEDATH, EEDATA,

    EECON1, EECON2

  • 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 contenidoan sin alimentacin.

    La informacin contenida debe ser grabada previamente mediante un equipo fsicodenominado programador o grabador.

    La memoria de programa se organiza en pginas. En El PIC16F877A posee 4 pginasde 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 microcontroladorcuya funcin es direccionar la memoria de programa.

    El PC almacena direcciones de instrucciones, ms precisamente, en el PC est ladireccin de la siguiente instruccin que hay que ejecutar.

    En los microcontroladores de gama media, el PC es de 13 bits, de modo que puededireccionar 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 nmerode la pgina, mientras que los bits del 10 al 0 dan la direccin dentro de la pgina odesplazamiento.

  • LA PILA (STACK)

  • LA PILA (STACK)

    La pila (stack en ingls) es una zona de memoria que se encuentra separada tanto dela 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 sealmacenan direcciones de la memoria de programa.

    Es un tipo de estructura de datos con organizacin LIFO (Last In First Out): lo ltimoque entra en la pila es lo primero que sale de ella.

    Antes de que el microcontrolador se ponga a ejecutar una subrutina o al ocurriruna 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, elmicrocontrolador sabe dnde continuar con la ejecucin del programa. Estadireccin se borra (se desapila) despus de volver al programa, ya que no esnecesario guardarla, disponiendo automticamente esas localidades de la pila paraun 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 unasegunda subrutina, y de sta a una tercera, y as sucesivamente hasta completar untotal de 8 llamadas.

    La novena vez se sobrescribe el valor que se almacen al apilar el dato por primeravez. La dcima vez que se apile, se sobrescribe el valor que se almacen al apilar eldato por segunda vez, etc. Datos sobrescritos de esta manera no se puedenrecuperar.

    No hay ningn bit de estado para indicar el estado de desbordamiento osubdesbordamiento de pila. Por esta razn hay que tener un especial cuidado alescribir un programa.

  • CICLOS DE MQUINA Y EJECUCIN DE INSTRUCCIONES

    Los pulsos generados por el oscilador principal (OSC1) son divididos internamentepara generar cuatro seales denominadas Q1, Q2, Q3 y Q4, que sincronizan todo eltrabajo 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) seincrementa, apuntando hacia la instruccin que debe ser buscada, lo cual ocurredurante el tiempo Q4. Paralelamente, durante todo el CM (desde Q1 a Q4) se estejecutando 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 lainstruccin que est en la memoria de programa y la lleva a la CPU. En la fase dedescodificacin, la CPU determina cul es la operacin indicada en la instruccin. Enla 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 CMse busca la instruccin en la memoria de programa y en el segundo CM sedescodifica y ejecuta la instruccin.

    En realidad, debido al mecanismo de segmentado (pipeline), ese segundo CM sesolapa, en el tiempo, con el primer CM de la siguiente instruccin, resultando que enpromedio se ejecute una instruccin por ciclo de mquina.

  • REGISTRO DE CONFIGURACIN

    Permiten que el usuario programe ciertas caractersticas del microcontrolador paraadaptarlo mejor a las necesidades de la aplicacin.

    Cuando se pone en marcha el dispositivo, el estado de estos bits determina la formaen que operar el microcontrolador.

    Aunque estos bits normalmente forman parte de la memoria de programa, ocupanuna direccin que no es accesible durante el funcionamiento normal delmicrocontrolador. Slo se puede acceder a ellos durante la programacin delmicrocontrolador.

    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 deconfiguracin 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 detrabajo, es el llamado oscilador o reloj.

    El oscilador genera una onda cuadrada de alta frecuencia (seal de reloj) que seutiliza como seal para sincronizar todas las operaciones del sistema.

    Generalmente todos los componentes del reloj se encuentran integrados en elpropio microcontrolador y tan solo se requieren unos pocos componentesexternos, como un cristal de cuarzo o una red RC, para definir la frecuencia detrabajo.

    Existen microcontroladores PIC que tienen un oscilador interno (RC) y norequieren de componentes externos. La frecuencia de reloj mxima depender deltipo de microcontrolador elegido.

    La eleccin de la frecuencia de la seal de reloj depender de la precisin yvelocidad que la aplicacin a controlar requiera.

  • OSCILADOR O RELOJ

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

    La eleccin de utilizar un oscilador externo o interno depender de la aplicacin. Sise esta diseando un cronometro de precisin, un frecuencmetro o un equipo quemaneje comunicaciones sincrnicas de alta frecuencia, se necesitar un osciladorexterno 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 microcontroladorcomo una fuente de reloj. La frecuencia de reloj est determinada por un cristal de cuarzo o porresonadores cermicos conectados a los pines OSC1 y OSC2.

    Modo LP: Para aplicaciones de baja potencia. Se utiliza slo para trabajar con cristales decuarzo de baja frecuencia (32 kHz a 200 kHz). Al utilizar este modo el consumo de corrienteser 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 frecuenciams alta (4 MHz a 20 MHz). Al utilizar este modo el consumo de corriente ser mayor queen 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 afrecuencias que no son precisamente definidas.

    La solucin ms simple y ms barata en estas situaciones es utilizar una resistencia yun capacitor para el funcionamiento del oscilador.

    Modo RC: el pin OSC1 debe estar conectado al circuito RC. La seal de frecuenciadel oscilador RC dividida por 4 est disponible en el pin OSC2. Esta seal se puedeutilizar 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. Estavez, el pin OSC2 est disponible para ser utilizado como pin de E/S de propsitogeneral.

    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 osciladorexterno como una fuente de seal de reloj.

    El funcionamiento de este oscilador externo es independiente de cualquier circuitointerno del microcontrolador, es decir, la seal de reloj viaja directamente desde elexterior 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 lassiguientes:

    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 demscomponentes incorporados en el dispositivo.

    En este modo el microcontrolador se pone a funcionar inmediatamente despusde encenderlo. No se requiere esperar para estabilizar la frecuencia.

    Al deshabilitar temporalmente la fuente de reloj externa, se detiene elfuncionamiento del dispositivo, dejando todos los datos intactos. Despus dereiniciar el reloj externo, el dispositivo sigue funcionando como si no hubierapasado nada

  • OSCILADOR INTERNO

    El circuito del oscilador interno consiste en dos osciladores separados que sepueden seleccionar como la fuente del reloj del microcontrolador.

    El oscilador HFINTOSC est calibrado de fbrica y funciona a 8Mhz. La frecuenciade este oscilador se puede configurar por el usuario por medio de softwareutilizando 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. Elmodo de funcionamiento se selecciona de la misma manera que en el osciladorexterno - por medio de los bits que forman Palabra de Configuracin. En otraspalabras, todo se lleva a cabo dentro del software antes de escribir un programa enel microcontrolador.

  • OSCILADOR INTERNO

    OSCILADOR INTERNO EN MODO INTOSC: El pin OSC1 est disponible para serutilizado 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 comopines 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 ofirmware no previstas por el diseador en las que un microcontrolador se quede enun 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 medidasnecesarias para evitar situaciones que podran ser catastrficas.

    Funcionamiento: El oscilador enva sus pulsos peridica y permanentemente a laentrada 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 delmicrocontrolador, es poner a 0 el contador del perro guardin desde el programa, yhacerlo a intervalos de tiempo ms cortos que el tiempo que se tarda en contar losN pulsos.

    Para conseguirlo el programador debe distribuir a lo largo del programa lasinstrucciones que borran el conteo del perro guardin.

  • TEMPORIZADOR PERRO GUARDIN (WATCHDOG TIMER)

    Si el programa se ejecuta correctamente, el perro guardin nunca se desborda puesantes de hacerlo ha sido borrado oportunamente desde el programa.

    En cambio, si el microcontrolador se pierde y el programa deja de ser ejecutado enla secuencia correcta, el perro guardin no es borrado a tiempo, se desborda yproduce el reset del microcontrolador, con lo que es posible retomar el control yreconducir el programa por el camino correcto.

  • MODO DE BAJO CONSUMO (MODO SLEEP)

    Cuando el microcontrolador se ha paralizado total o parcialmente para disminuir suconsumo de corriente, se dice que ha entrado a un modo de consumo reducido o debajo consumo (power down, sleep mode).

    Muchas veces la tarea que debe realizar el microcontrolador consistefundamentalmente en esperar la ocurrencia de un evento externo, como la pulsacinde una tecla, una interrupcin, etc., y entonces realizar una determinada tarea yvolver a esperar la ocurrencia de un nuevo evento externo.

    Mientras dura la espera conviene paralizar total o parcialmente al microcontroladorpara disminuir as el consumo de corriente (consideracin importante cuando seutiliza bateras como fuente de alimentacin).

    Una forma prctica de paralizar al microcontrolador es detener el oscilador principaly hacer que los diferentes bloques del dispositivo permanezcan en estado esttico, ala espera de que ocurra la accin externa que saque al microcontrolador de eseestado.

  • MODO DE BAJO CONSUMO (MODO SLEEP)

    En estas condiciones, el microcontrolador consume muy poca corriente de la fuentede 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 estostres eventos:

    1. Un reset: el microcontrolador va directo a ejecutar la instruccin que est enla direccin 00h de la memoria de programa.

    2. Un desbordamiento del perro guardin (si est habilitado): contina laejecucin del programa con la instruccin que sigue a la instruccin sleep.

    3. Una interrupcin externa y o procedente de alguno de los mdulosperifricos internos (si est habilitada): se ejecuta la instruccin que sigue ala instruccin sleep y se salta a la direccin 004h de la memoria de programaen busca de la rutina de atencin a la interrupcin.

  • FUENTES DE RESET

    Cuando el microcontrolador est en estado de reset, est virtualmente detenido, esdecir, no ejecuta ninguna instruccin del programa.

    Cuando el microcontrolador sale del estado de reset, el contador de programa PCadquiere el valor 00h, de modo que se ejecutan todas las instrucciones que estn apartir de esa posicin de memoria apuntada por el PC.

    RESET EXTERNO: ocurre cuando se pone a 0 el terminal MCLR. El terminalMCLR debe estar a 1 durante el funcionamiento normal del microcontrolador. Puedeocurrir durante el funcionamiento normal del microcontrolador o cuando est enmodo de bajo consumo.

  • FUENTES DE RESET

    RESET POR ENCENDIDO (PUESTA EN MARCHA): ocurre si se conecta elterminal MCLR al terminal de alimentacin del microcontrolador (por unpequeo 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 delmicrocontrolador.

    Si la fuente de alimentacin tiene un tiempo de establecimiento elevado, hay quegarantizar que la tensin en el terminal MCLR permanezca por debajo del umbralhasta que alcance un valor adecuado (Figura b).

  • FUENTES DE RESET

    RESET POR DESBORDAMIENTO DEL PERRO GUARDIAN: ocurrecuando se desborda el temporizador denominado perro guardin (WDT: WatchdogTimer). El desbordamiento se produce si desde el programa que est ejecutando elmicrocontrolador, no se borra a tiempo el resultado del conteo que realiza estetemporizador.

    El reset por desbordamiento del perro guardin puede ocurrir durante elfuncionamiento normal del microcontrolador.

    Si el WDT se desborda mientras el microcontrolador est en el modo de bajoconsumo, el microcontrolador sale de dicho modo, pero no se produce un reset, sinoque contina la ejecucin del programa con la instruccin que sigue a la instruccinsleep.

  • FUENTES DE RESET

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

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

  • CIRCUITO INTERNO DE RESET

    La figura muestra el esquema lgico del circuito interno que produce el reset de losmicrocontroladores PIC y las posibles fuentes de reset enunciadas anteriormente.

    El circuito garantiza que en el momento de abandonar el estado reset, elmicrocontrolador se encuentre en condiciones estables que permitan su correctofuncionamiento.

  • CIRCUITO INTERNO DE RESET

    El circuito debe asegurar que la salida del estado de reset se produzca slo si lafuente de alimentacin ha alcanzado un valor estable y suficientemente alto.

    El circuito interno tambin debe de garantizar que el microcontrolador abandone elestado de reset slo si el oscilador principal est en rgimen estable. Mientras laamplitud y frecuencia del oscilador no sean estables el microcontrolador debepermanecer en el estado de reset.

    Las caractersticas de algunas fuentes de reloj se pueden programar mediante lapalabra de configuracin del microcontrolador (BOREN,WDTEN)

  • DIAGRAMA DE CONEXIONADO PIC16F877A

  • DIAGRAMA DE CONEXIONADO PIC16F877A

  • DIAGRAMA DE CONEXIONADO PIC16F877A

  • DIAGRAMA DE CONEXIONADO PIC16F877A