¿Programar con interrupciones?

Elegir el modo de programar un microprocesador: consultando de forma cíclica el estado de cada periférico (Polling), o creando una interrupción por cada periférico a controlar. Métodos a seguir para programar el microprocesador AT89S52 con 2 interrupciones y una consulta cíclica. Posibles efectos indeseados cuando se programa con interrupciones.

Interrupciones AT89S52

Cuando se programa un microprocesador con la finalidad de tomar decisiones, dependiendo del estado de alguno o varios dispositivos periféricos, como podrían ser: pulsadores, un reloj en tiempo real (RTC), termómetros, alarmas, etc… existen dos formas posibles de hacerlo:

-> La forma más sencilla y clásica sería consultar de forma cíclica el estado de cada periférico.

-> Lo ideal sería habilitar una interrupción en el procesador por cada periférico a controlar.

Consulta secuencial y periódica

En este proceso de consulta, también conocido como polling en inglés, es el propio procesador el que determina el momento en el que realiza la consulta.

Consulta secuencial

Este método tiene el inconveniente de ser poco eficiente, porque el procesador consume muchos recursos realizando las instrucciones de sondeo… y además en algunas aplicaciones, una pequeña demora de tiempo afecta a la precisión de la medida o produce efectos indeseados. Por ejemplo, un error en la precisión cuando se utiliza un temporizador del procesador como patrón de tiempo de un reloj o cronómetro. Efectos indeseados, como podrían ser parpadeos, cuando se genera una señal PWM para el control de brillo de un display… o inestabilidad  si se utiliza esta misma señal PWM para  regular la velocidad de un motor.

Programar con interrupciones

Una interrupción sirve para detectar en tiempo real el momento en el que se debe realizar la consulta a cada periférico. Con la interrupción, es el periférico quien se encarga de avisar al procesador, y mientras tanto el procesador puede realizar otras tareas.

Habilitación de las interrupciones

El orden de prioridad de todas las interrupciones se pueden programar en el procesador. Así el procesador decidirá si un proceso se debe interrumpir o no, en caso de que se produzca una interrupción mientras se está atendiendo a otra, o cuando se produzcan dos o más interrupciones de forma simultánea. Un mal uso de la prioridad en las interrupciones, también podría provocar efectos indeseados.

Prioridad de las interrupciones

En la imagen anterior, al no tener la prioridad de interrupción el Timer que genera la señal PWM, se producen fluctuaciones en el ancho de impulso generado.

 

 

Alimentador para emergencias, con baterías recicladas

Construcción de una fuente de alimentación autónoma, utilizando 2 baterías recicladas de un PC. Esta fuente de alimentación es ajustable en tensión, entre 4,8 y 17,4 voltios, aunque podría funcionar entre 2 y 28 voltios. Suministra una corriente máxima de 2 amperios a 5V. La corriente máxima va disminuyendo a medida que se aumenta la tensión de salida.

Esquema MT3608
Esquema MT3608

Esta fuente de alimentación podría utilizarse para alimentar cualquier equipo electrónico o cargar su batería, sin la necesidad de disponer de una toma de energía eléctrica. Para facilitar el ajuste de la tensión de salida, la fuente dispone de un voltímetro. La capacidad-autonomía de la fuente dependerá de la batería que se instale, en este caso se han instalado dos baterías en paralelo de 3,7V  /  10,95Wh.

(10,95 x 2) / 3,7 = 5,9 Ah
Esquema de montaje
Esquema de montaje

Esta fuente está basada en el chip MT3608: ‘Step Up Converter’ de alta eficiencia. Como se puede ver en la imagen del oscilograma, es una onda de ancho y amplitud variable (PWM de amplitud variable). La frecuencia nominal es 1,2 MHz, pero tiene un pequeño margen, y varía en función de la tensión de entrada. Se debería tener en cuenta que este tipo de control, trabajando con señales de alta frecuencia (RF), podría generar señales interferentes en sus proximidades (EMI – ElectroMagnetic Interference).

Oscilograma MT3608
Oscilograma MT3608
Eficiencia -Corriente máxima
Eficiencia -Corriente máxima

En estas gráficas se puede observar la alta eficiencia del ‘Step Up Converter’ (MT3608), y la corriente máxima que puede suministrar a diferentes tensiones de salida (medidas reales) .