3.12 ¡Reinicio! ¿Black-out, Brown-out o Ruidos?
Al producirse un reinicio el microcontrolador detiene su funcionamiento inmediatamente y borra sus registros. Una señal de reinicio se puede generar externamente en cualquier momento (nivel lógico bajo en el pin MCLR). Si se necesita, una señal también puede ser generada por la lógica de control interna. Al encender una fuente de alimentación siempre se produce un reinicio. Por muchos eventos de transición que ocurren al encender una fuente de alimentación (centelleos y fogonazos de contactos eléctricos en interruptores, subida de voltaje lenta, estabilización de la frecuencia de señal de reloj graduada etc.) es necesario proporcionar un cierto tiempo muerto antes de que el microcontrolador se ponga a funcionar. Dos temporizadores internos PWRT y OST se encargan de eso. El PWRT puede estar habilitado/ deshabilitado durante el proceso de escribir un programa. Vamos a ver cómo funciona todo.
Cuando el voltaje de la fuente de alimentación alcanza entre 1.2 y 1.7V, un circuito denominado temporizador de arranque (Power-up timer) mantiene al microcontrolador reiniciado durante unos 72mS. Tan pronto como transcurra el tiempo, otro temporizador denominado temporizador de encendido del oscilador (Oscillator start-up timer) genera otra señal de reinicio durante la duración de 1024 períodos del oscilador de cuarzo. Al expirar el tiempo muerto (marcado con Reset T en la Figura) y al poner a alto el pin MCLR, todas las condiciones se han cumplido y el microcontrolador se pone a ejecutar la primera instrucción en el programa.
Aparte de este reinicio "controlado" que ocurre al encender una fuente de alimentación, hay dos tipos de reinicio denominados Black-out y Brown-out que pueden producirse durante el funcionamiento del microcontrolador así como al apagar una fuente de alimentación.
REINICIO BLACK-OUT
El reinicio black out ocurre al apagar una fuente de alimentación correctamente. El microcontrolador no tiene tiempo para hacer nada imprevisible puesto que el voltaje cae muy rápidamente por debajo de su valor mínimo. En otras palabras, ¡se apaga la luz, las cortinas bajan y el espectáculo ha terminado!
REINICIO BROWN-OUT
Cuando el voltaje de la fuente de alimentación cae lentamente (un ejemplo típico es descarga de baterías, aunque el microcontrolador experimentaría unas caídas mucho más rápidas como un proceso lento) los componentes internos detienen su funcionamiento gradualmente y ocurre el así llamado reinicio Brownout. En tal caso, antes de que el microcontrolador detenga su funcionamiento completamente, hay un peligro real de que los circuitos que funcionan a frecuencias altas se pongan a funcionar de forma imprevisible. El reinicio brown-out puede causar cambios fatales en el programa ya que se almacena en la memoria flash incorporada en el chip.
RUIDO ELÉCTRICO
Es un tipo especial del reinicio Brownout que ocurre en un ambiente industrial cuando voltaje de alimentación “parpadea” por un momento y cae por debajo del valor mínimo. Aunque es corto, este ruido producido en una línea de conducción eléctrica puede afectar desfavorablemente al funcionamiento del dispositivo.
PIN MCLR
Un cero lógico (0) al pin MCLR causa un reinicio inmediato y regular. Es recomendable conectarlo de la forma mostrada en la Figura a la derecha. La función de los componentes adicionales es de mantener un uno lógico "puro" durante el funcionamiento normal. Si sus valores se seleccionan de manera que proporcionen un nivel lógico alto en el pin después de que haya transcurrido el tiempo muerto reset T, el microcontrolador se pondrá a funcionar inmediatamente. Esto puede ser muy útil cuando se necesita sincronizar el funcionamiento del microcontrolador con los componentes adicionales o con el funcionamiento de varios microcontroladores.
Para evitar posibles errores al producirse el reinicio Brown-out, el PIC 16F887 tiene un “mecanismo de protección” incorporado. Es un circuito simple, pero eficaz que reacciona cada vez que el voltaje de alimentación cae por debajo de 4V (si se utiliza un voltaje de alimentación de 5V) y mantiene este nivel de voltaje por más de 100 microsegundos. Este circuito genera una señal después de que todo el microcontrolador funcionará como si hubiera sido encendido por primera vez.