En esta entrada vamos a trabajar con el reloj de bajo consumo interno de baja frecuencia fija llamado: VLOCLK.
Vamos a trabajar sobre la placa MSP430 Launchpad y el micro MSP430G2231. El programa consistirá en hacer funcionar periférico y asociarlo al reloj ACLK (pin P1.0), también lo asociaremos al reloj SMCLK pero a la mitad de frecuencia (VLOCLK/2 en pin P1.4) y pondremos al microcontrolador en estado de bajo consumo en la configuración: LPM1 (todo está apagado menos los relojes SMCLK y ACLK).
Este reloj es interesante ya que es de muy baja frecuencia y nos será útil para proyectos donde el consumo sea un factor a tener en cuenta, la frecuencia es fija, es decir, no la podemos cambiar, su valor típico (según TI) es de 12 kHz.
Los registros que vamos a necesitar para la configuración del reloj son los siguientes:
- Registro BCSCTL1: Debemos configurar los bits XT2OFF.
- Registro BCSCTL2: Debemos configurar los bits SELMx, SELS y DIVMx.
En fin, no me enrollo más, aquí está en código en lenguaje C:
/*----------------------------------------------------------------------
AqueronteBlog@gmail.com
Este archivo es propiedad intelectual del blog Aqueronte,
cuya dirección web, es la siguiente:
http://unbarquero.blogspot.com/
Se permite cualquier modificación del archivo siempre y cuando
se mantenga la autoría del autor.
----------------------------------------------------------------------
Filename: main.c
Date: 25-September-11
File Version: vs0.0
Author: Manuel Caballero
Company: Hades
----------------------------------------------------------------------
Notes: En este programa vamos a mostrar como trabajar con el reloj
interno de baja frecuencia (y bajo consumo): VLOCLK. Además
pondremos al micro en estado de ahorro LPM1 dónde todo está
apagado menos los relojes SMCLK y ACLK.
· Configuración:
· MCLK: VCLOCLK
· P1.0: ACLK = VLOCLK ~ 12 kHz
· P1.4: SMCLK = VLOCLK/2 ~ 6 kHz
· Método de operación: LPM1
· CPU: OFF
· MCLK: OFF
· DCO: OFF
· SMCLK: ON
· VLOCLK: ON
*/
#include "io430.h"
#include "intrinsics.h"
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = XT2OFF; // XT2 off
BCSCTL2 = SELM0+SELM1+SELS+DIVM1+DIVS0; // SMCLK = VLOCLK/2, MCLK = VLOCLK
BCSCTL3 = LFXT1S1; // VLOCLK on
P1DIR = BIT0+BIT4; // P1.0 & P1.4 output
P1SEL = BIT0+BIT4; // P1.0 = ACLK, P1.4 = SMCLK
do{
LPM1; // ACLK & SMCLK on, else off
}while(1);
}
Y aquí un vídeo que muestra el funcionamiento del programa:
Os pongo a vuestra disposición el programa tanto en ensamblador (IAR) cómo en lenguaje C (IAR y MSPGCC) para que lo podáis descargar y probar:
MSP430: VLOCLK | |||||||||||||||||||||||||||||
Compilador IAR | Compilador MSPGCC | ||||||||||||||||||||||||||||
ASM | C | C | |||||||||||||||||||||||||||
|
|
|
Como se ha podido ver durante el transcurso de este capítulo, es bastante fácil activar el reloj de baja frecuencia (y consumo) VLOCLK y asociarlo a los distintos periféricos que tenemos a nuestra disposición.
Esto es útil para el consumo y para hacer trabajar dispositivos externos con otra frecuencia distinta a la que corre nuestro microcontrolador.
0 comentarios:
Publicar un comentario