- Modo activo: todos los recursos del micro se encuentran activos y todas las señales de reloj se encuentran habilitadas. La CPU se encuentra ejecutando instrucciones. Las ventajas de este modo de operación es la rápida respuesta ante un evento. Sin embargo el consumo es mucho más elevado.
- Modo de bajo consumo: algunas señales de reloj o todas se encuentran deshabilitadas. La CPU puede estar dormida, es decir, sin ejecutar instrucciones. La ventaja de este modo de operación es el bajo consumo. Sin embargo presenta como inconveniente una respuesta más lenta. El micro sale de este modo de funcionamiento a través de una interrupción generada por un periférico externo. Cuando sale de este modo vuelve al modo activo habilitando todas las señales de reloj.
Los modos de operación se determinan mediante los bits SCG1, SCG0, OSCOFF y CPUOFF del registro de estado. Teóricamente con 4 bits se podrían tener 16 posibilidades y en consecuencia 16 modos de operación. Sin embargo sólo son 6 los modos de operación que se tienen. En primer lugar recordemos qué es lo que hacía cada uno de esos bits:
- OSCOFF: habilita o deshabilita las fuentes LFXT1CLK y VLOCLK (en función de cual sea la que esté establecida). Esto se puede hacer siempre y cuando esas fuentes no sean las fuetnes de las señales MCLK y SMCLK. Se deshabilita con un 1 y se habilita con un 0.
- CPUOFF: señal MCLK activa (0) o parada (1).
- SCG0: generador DC activo o parado.
- SCG1: SMCLK activo (1) o parado.
Observemos que antes de ejecutar la RTI asociada a una interrupción, el registro de estado se pone a 0, es decir el micro entra en modo activo.
Para entrar en los modos de bajo consumo desde el programa principal hay que modificar los bits correspondientes del registro SR.
Modos de operación.
- Modo activo: todos los relojes se encuentran activados y la CPU se encuentra encendida (OSCOFF = 0, CPUOFF = 0, SCG0 = 0 y SCG1 = 0).
- LPM0 (low power mode 0): CPU desactivada, ACLK y SMCLK permanecen activos, MCLK desactivado (OSCOFF = 0, CPUOFF = 1, SCG0 = 0 y SCG1 = 0).
- LPM1 (low power mode 1): CPU desactivada, ACLK y SMCLK permanecen activos. MCLK desactivado. Generador DC del DCO desactivado siempre y cuando el DCO no se use en modo activo. (OSCOFF = 0, CPUOFF = 1, SCG0 = 1 y SCG1 = 0)
- LPM2 (low power mode 2): CPU desactivada, MCLK y SMCLK desactivada. Generador de DC del DCO activo. ACLK permanece activo. (OSCOFF = 0, CPUOFF = 1, SCG0 = 0 y SCG1 = 1)
- LPM3 (low power mode 3): CPU desactivada, MCLK y SMCLK desactivados. Generador DC del DCO desactivado. ACLK permanece activo. (OSCOFF = 0, CPUOFF = 1, SCG0 = 1 y SCG1 = 1)
- LPM4 (low power mode 4): CPU desactivada, MCLK y SMCLK desactivados, generador de DC del DCO desactivado. OScilador de cristal parado. (OSCOFF = 1, CPUOFF = 1, SCG0 = 1 y SCG1 = 1).
No hay comentarios:
Publicar un comentario