MSP430讨论区
返回
登录/注册
430单片机OFIFG晶振出错标志位清不掉
楼主
芳草萋萋 于 2013-02-21 21:21:19
430单片机OFIFG晶振出错标志位清不掉
[FACE=宋体][SIZE=9pt]我买的是msp430F5438的开发板,发现设置外部晶振时钟时晶振出错标志老是清不掉,一打开XT1晶振出错标志位OFIFG就自动置位,百死不得其解!我找了好多代码,包括教程,以及TI的。以下是TI官方代码,但仍然跳不出循环:[/FACE][/SIZE][P][/P][P][FACE=宋体][SIZE=12px]P7SEL |= 0x03; // Select XT1[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL6 &= ~(XT1OFF); // XT1 On[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL6 |= XCAP_3; // Internal load cap[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px]
[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] // Loop until XT1,XT2 & DCO stabilizes[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] do[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] {[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] // Clear XT2,XT1,DCO fault flags[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] SFRIFG1 &= ~OFIFG; // Clear fault flags[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] }while (SFRIFG1&OFIFG); // Test oscillator fault flag[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px]
[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL6 &= ~(XT1DRIVE_3); // Xtal is now stable, reduce drive[/FACE][/SIZE][/P][P][/P][P][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] 缘何?缘何啊?[/FACE][/SIZE][/P]
回复
1楼
DC 于 2013-02-25 10:51:41
[P]应该重点检查一下晶振负载电容的配置,在这里你软件已有配置过内部的电容了。再检查外部配置电容是否用上了。如果重复软硬件都做配置了,电容无过可能导致晶振荡源无法起振。[/P][P]另外调试时,建议调试时试着用“跳过”这部分的方式来做调试看。[/P]
回复
2楼
yzwhhgz_09 于 2013-03-05 16:06:52
注意下FLL的参考时钟源。
回复
1
电脑版
Page created in 0.1572 seconds width 3 queries.