Está en la página 1de 30

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


SISTEMAS MICROPROCESADOS

“Sleep y Manejo de Energía”

Integrantes:

Bazurto Viviana Maribel


Quijia Juan Esteban
Toapanta Darío Xavier

Quito, Enero
Semestre 2017-B
Introducción

Una Problemática muy común es la limitar el tiempo de uso de las


baterías, ya que las aplicaciones hechas ya se en Arduino, Assembler,
Java, de los celulares, laptops en fin dispositivos portátiles demandan
energía.

Entonces dichas baterías dejan de suministrar energía y se pueden


presentar complicaciones al utilizar los dispositivos portátiles.
Ejemplo:

Supongamos que tenemos un sensor que recibe información del


entorno, la procesa y la envía por MQTT o HTTP al mundo exterior.

Lo habitual es que esta medida la queramos censar en un x


tiempo.

Pongamos cada 5 minutos, es decir 300s.

El tiempo que tardamos en medir y transmitir la medida es de


cómo máximo 1 segundo, un estimado.

En este caso tendríamos 1s de trabajo y 299 segundos de


consumo innecesario.

El rendimiento se calcula:

Consumimos 300*25mA= 7500 mAs


Aprovechamos 1s*25mA= 25 mAs

Rendimiento de 0.33 % ----------¿ Se puede mejorar ?


Se puede mejorar esto evitando consumir cuando no lo
necesitamos.

La forma mas habitual para reducir el consumo de un


microcontrolador es trabajar con el modo Sleep.

Dicho modo, reduce el consumo a costa de perder gran


numero de prestaciones.

El modo Sleep permite a una aplicación reducir su consumo de


potencia de manera considerable. Los modos de Sleep
permiten a una aplicación apagar módulos no utilizados en el
micro controlador ahorrando potencia. Sleep habilita la
aplicación para cerrar los módulos no usados en el MCU, por eso
ahorra energía
Modo Sleep

La siguiente figura muestra los diferentes sistemas de reloj. La figura es


útil en la selección de un apropiado modo Sleep.
La siguiente tabla muestra los diferentes modos Sleep, su forma de
despertarse y la capacidad de deshabilitar el BOD.
Deshabilitación del BOD

Cuando el Brown-out detector (BOD) es habilitado por los fusibles


BOBLEVEL, el BOD es activado para monitorear la alimentación de
voltaje durante el periodo de descanso (Sleep). Para ahorrar
energía, es posible deshabilitar el BOD por software para algunos
modos Sleep.
Modo Idle

Este modo básicamente detiene el reloj del CPU y el reloj de la Flash,


mientras permite que los otros relojes funcionen.

Modo de reducción del ruido del ADC

Este modo básicamente detiene el reloj de las entradas y salidas, el


reloj del CPU y el reloj de la FLASH, mientras permite que los otros relojes
estén funcionando.

Esto mejora el ambiente de ruido del ADC, permitiendo alta resolución


en las medidas.
Modo Power-Down

Este modo de descanso básicamente detiene todos los relojes


generados, permitiendo operar solo el módulo asincrónico.

Modo Power-Save

Esto modo es idéntico al modo Powerdown, con una excepción: Si


el Timer/contador2 es habilitado, este funcionara durante el
descanso.
Modo Standby

Este modo es idéntico al Power-Down con la excepción de que el


Oscilador es kept running (Sigue oscilando).

En el modo Standby, el dispositivo se despierta en 6 ciclos de reloj.

Modo Standby Extendido

Este modo es idéntico al modo Power-save con la excepción que el


Oscilador es kept running.

En el modo Stanbye Extendido, el dispositivo se despierta en 6 ciclos


de reloj.
Registro Reducción de Energía
El Registro Reducción de Energía (PRR), proporciona un método
para detener los periféricos individuales para reducir el consumo
de energía.

Modo Idle se para la generación de reloj del microcontrolador,


con lo que se detienen todas las funciones, pero la información
sobre la RAM y los SFRs se mantienen. Si este modo esta Activo
para reducir significantemente el sobre consumo de energía.
Minimización del Consumo de Energía

Hay varios problemas a considerar cuando se trata de


minimizar el consumo de energía en un sistema
controlado por un AVR.
En general, los modos de descanso deben ser usados
tanto como sea posible, y el modo sleep debe ser
seleccionado dependiendo de la función del dispositivo
que esté operando.
Minimización del Consumo de
Energía
Conversión Análoga a Digital.- Si habilitó el ADC, este será
habilitado en todos los modos de descanso. Para ahorrar energía,
el ADC debe ser deshabitado antes de entrar en cualquier modo
sleep.

Comparador Análogo.- Cuando entra en modo Idle (se para la


generación de reloj del microcontrolador), el comparador
Análogo debe ser deshabilitado si no se está usando. Cuando
entra en el modo de Reducción de Ruido del ADC, el
comparador Análogo debe ser deshabilitado. En otros modos
sleep, el Comparador Análogo es automáticamente
deshabilitado.
Minimización del Consumo de
Energía
Brown-out Detector(Detector de oscurimiento).- Si el Detector no
es necesario para la aplicación, este modo debe ser apagado. Si
el Detector es habilitado por los fusibles BODLEVEL (El fusible
BODLEVEL establece el nivel de disparo), este será habilitado en
todos los modos, y además, siempre consume energía.
Referencia de Voltaje Interno.- La Referencia de Voltaje Interno
será habilitada cuando se necesite detectar el oscurimiento. El
Comparador Análogo o el ADC, si estos módulos son
deshabilitados como se describe en la sección anterior, la
referencia de voltaje Interna será deshabilitada y esta no
consumirá energía
Minimización del Consumo de
Energía
Watchdog Timer (Perro Guardián o reloj de vigilancia).- Si el reloj
de vigilancia no es necesario para la aplicación, el módulo debe
ser apagado. Si el reloj de vigilancia es habilitada, este será
habilitado en todos los modos, y además, siempre consumirá
energía.
Sistema On-chip Debug (Depuración en chip).- Si el Sistema de
depuración en chip es habilitado por el fusible OCDEN y el chip
entra en modo sleep, la fuente del reloj principal será habilitada,
y además, siempre consumirá energía.
Minimización del Consumo de
Energía
Pines del Puerto
Cuando entra en modo sleep, todos los pines del puerto deben
ser configurados para usar la mínima energía. Lo más importante
es que ningún pin maneje cargas resistivas.
En el modo de descanso cuando el reloj de las E/S y el reloj del
ADC son detenidos, los buffers de entrada del dispositivo serán
deshabilitadas. Esto asegura que no exista consumo de energía
cuando una entrada lógica no es necesaria.
Minimización del Consumo de
Energía
Pines del Puerto
En algunos casos, la entrada lógica es necesaria para detectar
condiciones de arranque, y entonces esto será habilitado.
Si el buffer de entrada es habilitado, tonses usará excesiva
energía.
Los buffers de entrada digital pueden deshabilitarse escribiendo
en el registro de des habilitación de entradas digitales (DIDR1 y
DIDR0).
DESCRIPCIÓN DE LOS
REGISTROS
El AVR proporciona varios modos de suspensión que
permiten al usuario adaptar el consumo de energía a
los requisitos de la aplicación.
Pero para usar estos modos de suspensión primero
debemos entender el Registro de control de SMCR,
MCUCR, PRR.
SMCR-Registro de control para el Modo
Sleep

El Registro de Control para el Modo Sleep contiene bits para el


control de la energía
Bits 3, 2, 1 – SM2:0: Selección de Bits 2, 1, y 0 para el
Modo Sleep

Estos bits seleccionan entre los posible modos como muestra


Para entender de mejor manera se tiene
la siguiente tabla, en la cual se observa como
funciona cada uno de los modos Sleep:
Bit 0 – SE: Habilitación del sleep

El bit SE debe ser escrito a uno lógico para hacer que el MCU
entre en modo sleep cuando la instrucción SLEEP es ejecutada.

Para evitar que el MCU entre al modo sleep sin desearlo, es


recomendable escribir a uno el bit SE justo antes de ejecutar la
instrucción SLEEP y para limpiar inmediatamente después de
despertarse.
MCUCR-Registro de Control MCU

Bit 6- BODS: Descanso BOD


El bit BODS deber ser escrito a uno lógico para apagar el BOD durante el
descanso (sleep).

Al escribir en el bit BODS, se controla por una secuencia de tiempos y un


bit de habilitación, BODSE en el registro MCUCR. Para deshabilitar el modo
de descanso, el BODS debe ser puesto a uno y el BODSE debe estar en
cero en cuatro ciclos del reloj.
Bit 5- BODSE: Habilitación de Sleep (Descanso) BOD

El BODSE habilita la configuración del bit de control BODS, como se


explica en la descripción del BODS. La deshabilitación del BOD es
controlada por una secuencia de tiempos.
PRR- Registro Reducción de Energía

En este caso vamos a analizar cada uno de los bits:

Bit 7 - PRTWI: Reducción de Energía TWI

Al escribir un uno lógico en este bit cierra el TWI mediante la


detención del reloj. Cuando arranque otra vez el TWI, el TWI debe
ser reinicializado para asegurar su correcto funcionamiento.
Bit 6 –Reducción de Energía del Timer/Countador2 PRTIM2
Al escribir un uno lógico en este bit pone el modulo del
Timer/Contador2 en modo asincrónico (AS2 es 0). Cuando el
Timer/Contador2 es habilitado, la operación continuará como
antes de que haya sido cerrado.
Bit 5 - PRTIM0: Reducción de Energía del Timer/Contador0

Al escribir un uno lógico en este bit se cierra el modulo del Timer


Contador0. Cuando el Timer/Contador0 es habilitado, la
operación continuará como antes de que haya sido cerrado.

Bit 4 - PRUSART1: Reducción de Energía en el USART1

Al escribir un uno lógico en este bit se cierra el USART1 detenido el


reloj del módulo.

Cuando despierta otra vez el USART1, el USART1 debe reinicializarse


para asegurar su correcto funcionamiento
Bit 3 - PRTIM1: Power Reduction Timer/Counter1

Al escribir un uno lógico en este bit se cierra el módulo del


Timer/Contador1.
Cuando el Timer/Contador1 es habilitado, la operación continuará
como antes de que haya sido cerrado.

Bit 2 - PRSPI: Power Reduction Serial Peripheral Interface

Al escribir un uno lógico en este bit se cierra el módulo de Interfaz


Periférica Serial mediante la detención del reloj.

Cuando despierta otra vez del SPI, el SPI debe reinicializarse para
asegurar su correcto funcionamiento.
Bit 1 - PRUSART0: Reducción de Energía del USART0
Al escribir un uno lógico en este bit se cierra el USART0 deteniendo
el reloj del módulo.
Cuando despierta otra vez el USART0, el USART0 debe reinicializarse
para asegurar su correcto funcionamiento.

Bit 0 - PRADC: Power Reduction ADC

Al escribir un uno lógico en este bit se cierra el ADC. El ADC debe


ser deshabilitado antes de que se cierre el módulo. El comparador
análogo no puede usar el MUX de entrada del ADC cuando el
ADC es cerrado.
Gracias ¡¡¡

También podría gustarte