我使用了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
或者加我腾讯, ②⑨③⑥⑦⑤③④④〇.