Prácticas con Microcontrolador


ir a contenido

Reinicialización y Modo sleep

µControladores PIC > Arquitectura

La reinicialización o reset de los microcontroladores PIC16C5X puede ser originada por las siguientes causas:

1ª Conexión de la alimentación (POR: Power-On-Reset)

2ª Activación de la patita MCLR (Master Clear Reset) durante una operación normal.

3ª Activación de MCLR en el estado de Reposo o SLEEP.

4ª Desbordamiento del Perro guardián.



Valores que toman los bits TO y PD del Registro de Estado según la causa que ha originado el reset. Cuando TO = PD = u, significa que estos bits no alteran su valor en el caso de que el reset se haya provocado por la activación de MCLR en funcionamiento normal.

Cualquiera de estas posibilidades introduce un nivel bajo en la entrada S del flip-flop y pone en marcha un temporizador propio que, al cabo de 18 ms, origina un flanco ascendente en la salida Q que supone la generación del reset interno.

Los bits TO y PD del Registro de Estado toman el valor correspondiente según la causa que haya provocado el. reset.

Cuando el reset es provocado por la activación de la patita MCLR en modo normal, los bits TO y PD no varían su valor y no lo modifican hasta que se produzca alguna otra de las condiciones de reset.

La instrucción CLRWDT pone a 0 los bits TO y PD.

En la Tabla 2 se indican los valores que toman los bits del Registro de Estado y del PCL tras un reset. La Tabla 3 presenta la dirección y el valor que toman todos los registros del microcontrolador después de un reset.


Tabla 2. Valores que toman los bits del Registro de Estado y del PCL tras un reset.

Tabla 3. Valores que toman los bits de los registros de los PIC16C5X después de producirse un reset.

SIGNIFICADO DE LAS ABREVIATURAS DE LAS TABLAS
u = Bits que no se alteran
x = Bits que toman un valor aleatorio
- = Bits no implementados que se leen como 0
? = Bits que dependen de la causa que origino el reset


En forma abreviada se describen los acontecimientos que se desarrollan al ejecutarse un reset.

1º. Arranca el reloj interno tras un retardo de 18 ms

2º. Las patitas de los Puertos de E/S se configuran como Entradas al cargarse con 1 todos los bits de los registros TRIS.

3º. El PC o Contador de Programa es cargado según el modelo de PIC de que se trate.

4º. Todos los bits del Registro de opciones (OPTION) se ponen a 1.

5°. El Perro guardián y el Predivisor, son puestos a 0.

6º. Los bits PA2, PA1 y PA0 del Registro de Estado se ponen a 0 con lo que se selecciona la página 0 de la memoria de programa.

La primera instrucción que se ejecuta tras un reset depende del modelo de PIC usado.




El Modo Sleep:

Este modo especial de funcionamiento ocasiona un consumo muy bajo y se entra en él con la ejecución de la instrucción SLEEP. Con esta instrucción ocurren las siguientes acciones:

a) Si el perro guardián está activado, se refrescara su valor (se borra) pero sigue funcionando normalmente.
b) El oscilador principal del sistema deja de funcionar.
c) Los puertos de E/S mantienen el mismo estado que tenían antes de ejecutar SLEEP.
d) Los bits TO y PD del registro de estado toman los valores 1 y 0, respectivamente.

Para rebajar al máximo el consumo se recomienda conectar la patita T0CKI a VDD o a tierra y la patita MCLR/Vpp a nivel lógico alto.

Para salir del estado de Reposo hay dos posibilidades:

1ª Se activa la patita MCLR y se genera un reset.
2ª El Perro guardián que estaba activo cuando se ejecuto SLEEP se desborda y genera un reset.

Para conocer la causa por la que se ha salido del Estado de Reposo se analizan los bits TO y PD.



Prácticas con Microcontrolador PIC 16F84 | miguel.tecno@gmail.com

Regresar a contenido | Regresar al menu principal