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*/
}
ZhuoYue Zhang:
XT1没有接外部的谐振电容
灰小子:
检查过PCB没有,相关的走线检查一下有没有毛刺等情况。
ZhuoYue Zhang:
回复 灰小子:
没有毛刺,晶振就在mcu管脚边上。
有次重新焊接后,就可以了。过了半天,又不起振了。
开机不起振的条件下,用手碰碰晶振就好了;或者用万用表量量晶振的管脚,也可以运行起来。
不知道什么原因。
灰小子:
回复 ZhuoYue Zhang:
你的板子上晶振配起震电容了吗?用的多大的电容?
建议调整电容的大小试试
jinfei zhang:
我用的MSP430F6436,两个晶振都不起振,板子上没有外接电容,我的配置和你的一样,但是这几个晶振故障标志一直置位,你的XT2起振吗? 问题最后解决了吗?