5438A配置:XT1:32K; XT2:12M;XT2起振,XT1无法起振。
编译器:IAR 5.3。
两块PCB板,第一块没有问题;第二块xt1不起振。换过晶振,换过mcu都不行,一直在循环中,XT1LFOFFG 一直为1;
void sysClock_Init(void)
{
P7SEL |= BIT0 + BIT1; /* Port select XT1*/
P5SEL |= BIT2 + BIT3; /* Port select XT2*/
UCSCTL6 |= XCAP_3; /* Internal load cap*/
UCSCTL6 &= ~(XT1OFF + XT2OFF); /* Set XT1 & XT2 On*/
/* Loop until XT1,XT2 & DCO stabilizes*/
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);/* Clear XT2,XT1,DCO fault flags*/
SFRIFG1 &= ~OFIFG; /* Clear fault flags*/
delay_us(50); /* Delay for Osc. to stabilize*/
}
while (SFRIFG1 & OFIFG); /* Test oscillator fault flag*/
/* expected frequency*/
UCSCTL4 = SELS_5 + SELM_5; /* SMCLK=MCLK=XT2 ACLK=XT1*/
}