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

晶振失效?

我使用了MSP430F247芯片,电源3.3V,正常;晶振能起振,从示波器可以看到8MHz的输出信号(直接从XIN2,XOUT2引脚测量). 但在软件中OFIFG却始终无法清除。不知这是什么原因?

    DCOCTL  =   0;
    BCSCTL1&=  ~XT2OFF;
    BCSCTL3 =   XT2S_2;
       while(IFG1 & OFIFG)             《—————–始终在这里循环
    {
        IFG1 &= ~OFIFG;
        DelayUs(50);
    }
    BCSCTL2 =   SELM_2  |       //  XT2CLK -> MCLK  = 8MHz
                DIVS_3  |       //  XT2CLK -> SMCLK = 1MHz
                SELS    ; 

Shen JianHua1:

8MHz的晶振信号其振荡幅度有2.2V

Hardy Hu:

Hi, Jianhua,

 你好!请参考XT2配置例程如下:

#include <msp430.h>

volatile unsigned int i;

int main(void){ WDTCTL = WDTPW + WDTHOLD; // Stop WDT

P5DIR |= 0x10; // P5.4= output direction P5SEL |= 0x10; // P5.4= MCLK option select P1DIR |= 0x02; // P1.1 = output direction

BCSCTL1 &= ~XT2OFF; // Activate XT2 high freq xtal BCSCTL3 |= XT2S_2; // 3 ?16MHz crystal or resonator

do { IFG1 &= ~OFIFG; // Clear OSCFault flag for (i = 0xFF; i > 0; i–); // Time for flag to set } while (IFG1 & OFIFG); // OSCFault flag still set?

BCSCTL2 |= SELM_2; // MCLK = XT2 HF XTAL (safe)

for (;;) // Infinite loop { P1OUT |= 0x02; // P1.1 = 1 P1OUT &= ~0x02; // P1.1 = 0 }

}

同时检查系统的电源是否稳定。

Regards,

Hardy

Shen JianHua1:

回复 Hardy Hu:

你所给的代码与我的也没什么实质的差异啊。 电源很稳定,在开始的时候就说明了

Shen JianHua1:

回复 Shen JianHua1:

麻烦你回复问题时稍微用点心

Hardy Hu:

回复 Shen JianHua1:

1.建议你先用我提供的代码进行试验,因为这个代码是验证过可行的。

2.MCU出问题,不仅仅体现在软件上,硬件是基础,其问题同样可能造成运行结果不对。

3.电源是硬件中至关重要的第一步,电源的稳定不仅是其静态电压稳定, 还包括动态情况下稳定性,例如负载变化时的稳定性,上电,下电的单调平滑和快速。

4.你给出的代码只有一段,不能排除是否是由于前面的代码造成的MCU运行出错,比如看门狗没有关。

5.MCU的每个模块均有详细的使用手册,里面的寄存器配置方式讲解非常清楚,同时也需要注意自己的语句(特别是位操作时)是否能够达到预期的执行结果。

Delta:

回复 Shen JianHua1:

有一些在测量时的小建议:

1,使用引脚输出振荡器信号的功能,看各信号的频率和占空比是否正常;

2,XT2的振幅大概有多少?假如电源因为接地或其他耦合问题,具有共模噪声的话,普通示波器是观察不到的,而噪声的幅值如果和振荡幅值大小相当,就会耦合到振荡电路中,这个也是普通示波器观察不准确的。

Shen JianHua1:

回复 Delta:

1. 频率与占空比都很正常,是比较完善的正弦波,8MHz,偏差与抖动都很小,大概10多Hz

2. 振幅在2.2V左右,也很稳定

Shen JianHua1:

回复 Hardy Hu:

1. 这个我知道,我也曾测试过,一样的,不能通过

2. 这个有可能。在保证原来的芯片焊接可靠的基础上, 晶振检测不能通过;然后换了一块147,就能正常工作了。代码没有任何变化。难道是芯片的问题?

3. 电源都测试过,没有问题

4.代码可以保证没有问题的,前面只有一句,就是关闭看门狗.后面就是开中断,进入低功耗1

5. 就这么一小段代码,也没涉及其他寄存器

Xue Gang Sun:

楼主,问题解决了吗,怎样解决的?

我也遇到类似问题了,2%~20%的废品率!

我的标题是:

MSP430F4152擦除INFO区出现错误:全部FLASH读出为0x7fff.包括程序区和INFO区.

最终也定位到 : Osc. Fault Interrupt Flag 震荡失败标志不能清除

http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/p/138726/391410.aspx#391410

或者加我腾讯, ②⑨③⑥⑦⑤③④④〇.

赞(0)
未经允许不得转载:TI中文支持网 » 晶振失效?
分享到: 更多 (0)