jueves, 26 de enero de 2012

MSP430: VLOCLK

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.
Como ya he dicho anteriormente, lo que haremos es activar la frecuencia VLOCLK y asociarla al pin P1.0 para que podamos verla (mediante un osciloscópio por ejemplo), configuraremos el reloj SMCLK para que corra a una frecuencia VLOCLK/2 y asociarla al pin P1.4, y por último, pondremos al microcontrolador en la configuración de bajo consumo LPM1 dónde todo está apagado menos los relojes que vamos a usar.

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
ASMCC
Control VLOCLK
Control VLOCLKEnlace
Control VLOCLK
Control VLOCLK
Control VLOCLK
Control VLOCLK
Control VLOCLK
Control VLOCLK
Control VLOCLK

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: