TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430f5529的官方代码的疑惑

msp430f5529的官方代码的疑惑

 使用此程序后是这个结果:ACLK = REFO = 32.768kHz, MCLK = SMCLK = Default 1MHz

include <msp430f5529.h>

void main(void)
{
  volatile unsigned int i;

  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT
  P1DIR |= BIT1;                            // P1.1 output

  P1DIR |= BIT0;                            // ACLK set out to pins
  P1SEL |= BIT0;                             P2DIR |= BIT2;                            // SMCLK set out to pins
  P2SEL |= BIT2;                             P7DIR |= BIT7;                            // MCLK set out to pins
  P7SEL |= BIT7;                             

  while(1)
  {
    P1OUT ^= BIT1;
    __delay_cycles(60000);                  // Delay
  }
}

但问题是为什么会有这个结果呢?ACLK = REFO = 32.768kHz, MCLK = SMCLK = Default 1MHz

然后,我从网上查到资料:
在上电清除信号(PUC)之后,UCS模块的默认配置是:
•XT1 低频模式被选择为XT1CLK时钟的振荡器。XT1CLK被选择为ACLK的时钟源。
•DCOCLKDIV作为MCLK的时钟源。
•DCOCLKDIV作为SMCLK的时钟源。
•FLL(锁频环)运行被使能,XT1CLK作为FLL参考时钟,即FLLREFCLK。
•XIN和XOUT引脚被设置为通用IO时,XT1保持禁能直到IO口置为XT1操作模式。
•如果XT2IN和XT2OUT引脚被设置为通用IO,XT2被禁能。
在初始状态,FLL以XT1为参考时钟的运行默认使能,但XT1被禁止。要使能XT1,相应管脚的PSEL位必须置位。

当一个32.768KHz的晶振用作XT1CLK时,出错的控制逻辑电路直接造成REFOCLK作为ACLK的时钟源,因为XT1不会立即稳定。一旦振荡开始信号被获取到了,FLL就使MCLK和SMCLK稳定到1.048576MHz,f(DCO)=2.097152MHz。
状态寄存器控制位(SCG0,SCG1,OSCOFF和CPUOFF)配置MSP430的运行模式,还使能或禁能UCS模块的部分功能(参考系统复位,中断,运行模式等章节)。寄存器UCSCTL0到UCSCTL8配置UCS模块。

但,这里我疑惑不解的是这句“因为XT1不会立即稳定。一旦振荡开始信号被获取到了,FLL就使MCLK和SMCLK稳定到1.048576MHz”

这是为什么?

其实开始我自己想这么解释:

而且依据公式:计算公式:f(DCOCLKDIV )= (N + 1) × (f(FLLREFCLK)÷ n)

                                                 N=FLLN
                                                 n=1,2,4,8,12,16(对应FLLREFDIV=0,1,2,3,4,5)
                                               fFLLREFCLK由初始时默认为XT1,故是32768hz

那么只有N与n,不知道了。N是FLLN,n是分频的倍数。

如果知道N与n的默认值不就知道DCOCLKDIV了,然后进一步可知MCLK与SMCLK的值了。

但他们的默认值是多少啊?
谢谢大家了

kaixiang chen:

回复 Young Hu:

谢谢,非常谢谢

赞(0)
未经允许不得转载:TI中文支持网 » msp430f5529的官方代码的疑惑
分享到: 更多 (0)