MSP430 G2553 基本时钟模块+ (Basic Clock Module+)

一、时钟源

MSP430的Basic Clock Module+支持的时钟源有:

  • DCOCLK:内部数字控制振荡器,Internal digitally contrlled oscillator。所有MSP430芯片都有。
    MSP430G2553的DCO支持的最大频率一般为16MHz,且保存了1MHz、8MHz、12MHz、16MHz四个频率的校正信息。

  • VLOCLK:内部超低功耗、低频振荡器,Internal very low power, low frequency oscillator,典型频率12kHz。所有MSP430芯片都有。使用方便,但精准性不是太高。
    MSP430G2553的VLO频率在4kHz到20kHz之间,且受温度、供电电压影响较大。

  • LFXT1CLK:低频/高频晶体振荡器,Low-frequency/high-frequency oscillator。可以是32.768kHz的晶体或外部时钟(LF模式时),或者是400kHz到16MHz的晶体/晶振/外部时钟源(HF模式时)。不是所有MSP430芯片都支持。
    MSP430G2553支持的低频晶体(LFXT1)的典型频率是32.768kHz,且不支持HF模式。

  • XT2CLK:高频振荡器,high-frequency oscillator,频率范围最多支持400kHz到16MHz,可以是晶体/晶振/外部时钟源。不是所有的MSP430芯片都支持。
    MSP430G2553不支持XT2。

二、时钟信号

MSP430的Basic Clock Module+包含了三个时钟信号:

  • MCLK:主时钟,Master clock。可以从以上四个时钟源中选择其一作为MCLK来源,并支持1/2/4/8分频。用于CPU和系统。

  • SMCLK:子主时钟,Sub-main clock,可以从以上四个时钟源中选择其一作为SMCLK来源,并支持1/2/4/8分频。用于特定的外设。

  • ACLK:辅助时钟,Auxiliary clock,可选择LFXT1CLK或VLOCLK作为ACLK来源,并支持1/2/4/8分频。用于特定的外设,特别是低功耗待机时。

典型的时钟系统框图如下图:

留意只有DCO和VLO是所有MSP430的标配,其他的要看具体型号:

 

三、DCO频率设置

调整DCO频率可以通过修改BCSCTL1寄存器中的RESELx位段、DCOCTL寄存器的DCOx、MODx位段来实现。如,若要设置DCO频率为1MHz左右,通过查数据手册中“DCO Frequency”表可得0.8MHz~1.5MHz频率对应设置参数为(7,3),即RSELx=7, DCOx=3, MODx=0。但这样做误差很大。

BCSCTL1 &= ~BIT3;  // set to DCO(7,3)
BCSCTL1 |= BIT0 + BIT1 + BIT2;
DCOCTL &= ~BIT7;
DCOCTL |= BIT5 + BIT6;

更好的方法是直接将BCSCTL1和DCOCTL寄存器设置成已校准好的值。

BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;

这样做的频率误差如下图所示。

四、ACLK时钟源设置

ACLK时钟来源由BCSCTL3寄存器中的LFXT1Sx位段设置,可以切换为LFXT1、VLOCLK或外部时钟源;由BCSCTL1寄存器中的DIVAx位段设置分频比。当设置为LFXT1时,还需要根据板子情况设置effective capacitance。

如设置ACLK来源为VLOCLK、四分频:

BCSCTL3 |= LFXT1S_2; //VLO mode
BCSCTL1 |= DIVA_2;   //ACLK divided by 4

设置ACLK来源为LFXT1、八分频:

BCSCTL3 |= LFXT1S_0; //32k crystal selected
BCSCTL3 |= XCAP_2;   //~8.5pF effective capacitance (for G2553)
BCSCTL1 |= DIVA_3;   //ACLK divided by 8
原文地址:https://www.cnblogs.com/zlbg/p/4728461.html