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

msp430f5529lp XT1故障失效

想要让ACLK配置成XT1的32.768kHz晶振,代码如下

P5SEL |= BIT4 + BIT5; //P5.4&P5.5 in XT1 mode
UCSCTL6 &= ~(XT1OFF); //XT1 on
UCSCTL6 |= XCAP_3; //cap 12pF
UCSCTL3 = 0;
do{
    UCSCTL7 &= ~(XT1LFOFFG + XT2OFFG + DCOFFG);
    SFRIFG1 &= ~OFIFG;
    if(UCSCTL7&XT1LFOFFG){
        P4DIR |= BIT7; P4OUT |= BIT7;
    }
    else{
        P4DIR |= BIT7; P4OUT &= ~BIT7;
    }
}while (UCSCTL7&XT1LFOFFG); //loop until XT works
UCSCTL6 &= ~(XT1DRIVE_3); //low power
UCSCTL4 |= SELA_0; //ACLK from XT1

一开始是用原来官方例程里的判断条件,发现程序始终跳不出do while循环,于是把条件改成判断xt1lfoffg发现也有同样的问题,但如果改成判断dcoffg就可以顺利运行,而且循环内P4.7口的灯亮,说明xt1的故障失效位始终为1。

更奇怪的是,我用CCS V6进行debug,resume之后进入死循环,suspend之后再按resume可以跳出循环;同时单步调试的时候没有任何问题。但明显程序脱机运行的时候是无法跳出循环的,这是为什么呢?

灰小子:

先用示波器量一下XT1,看是否真的没有起震

Zehui Luo:

回复 灰小子:

示波器怎么量XT1? 是接在晶振两脚测吗?

因为ACLK在XT1失效的时候会设为REFOCLK,这个频率约等于32.768kHz和XT1的频率差不多,所以也无法判断到底有没有接上XT1

另外接XT1会比REFOCLK更准,这个说法是对的吗?

user4835494:

回复 Zehui Luo:

XT1失效的原因有找到吗?我最近使用msp4305438a时XT1LFOFFG错误标志不能清除

赞(0)
未经允许不得转载:TI中文支持网 » msp430f5529lp XT1故障失效
分享到: 更多 (0)