最近才学MSP430,对系统晶振的配置不太清楚,请教几个问题,
1、使用5438A的XT1为晶振源,晶振为:3.6864MHz,MLCK选用XT1为晶振源4分频,SMCLK选用XT1晶振源1分频,并在P4.7输出提供外部,我编写代码如下
// 初始化 LFXT1
P7SEL |= 0x03; // Select XT1
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XTS;
// 循环等待 XT1 故障标志清除,XT1振动稳定
do
{
UCSCTL7 &= ~XT1LFOFFG; // 清除 XT1 故障标志
}while (UCSCTL7&XT1LFOFFG); // 测试 XT1 故障标志
__bis_SR_register(SCG0); // 停止 FLL 控制回路
UCSCTL0 = 0x0000; //
UCSCTL1 = DCORSEL_4; //
UCSCTL2 = FLLD_1+FLLN1_L;
UCSCTL3 = SELREF__XT1CLK+FLLREFDIV_2; //FLL选择XT1时钟源 1分频
UCSCTL4 = SELM__XT1CLK+SELS__XT1CLK+SELA__XT1CLK; //ACLK、SMLCK、MLCK择XT1时钟源
UCSCTL5 =DIVM_2+DIVS_0+DIVA_2+DIVPA_2; //ACLK、SMLCK 一分频输出、MLCK 4分频输出
UCSCTL6 &= ~(SMCLKOFF_L); //打开SMCLK
P4SEL |= 0x80; //输出SMCLK
P4DIR |= 0x80; //输出SMCLK
__bic_SR_register(SCG0); // Enable the FLL control loop
请大虾们看看有无问题或给一分详细的程序代码,
2、5438A晶振配置系统中,如果不用到FLL环节(如上),UCSCTL0、UCSCTL1、UCSCTL2、UCSCTL3 是不是可以不用设置,或者关闭FLL,我测试发现如果UCSCTL1不设置,系统的晶振就不正常,请指教。