MSP430F6系列单片机晶振不起振问题
我用MSP430F6单片机外部晶振XT1和XT2,现在晶振无法起振。大家帮忙看看配置是否有问题程序如下:voidInit_Clk(){P7SEL|=0x0f;//开启XT...
我用MSP430F6单片机外部晶振XT1和XT2 ,现在晶振无法起振。大家帮忙看看配置是否有问题
程序如下:
void Init_Clk()
{
P7SEL |=0x0f; //开启XT1,XT2 P7.3,P7.2对应XT2 P7.1,P7.0对应XT1
UCSCTL6 |= XCAP_3 + XT1DRIVE_0 + XT2DRIVE_1;
UCSCTL6 &= ~(XT1OFF + XT2OFF );
//打开XT1,XT2,全选外部晶振;XT2CLK = 8~16M;配置XT1的电容;XT1在低频模式
// UCSCTL3 |= SELREF__REFOCLK; //FLL 参考时钟选择REFOCLK // UCSCTL3默认FLL 参考时钟 XT1CLK
UCSCTL4 |= SELS_5 + SELM_5; //MCLK=XT2CLK,SMCLK=XT2CLK,UCSCTL4 默认ACLK=XT1CLK 时钟源发生错误,ACLK会自动选择REFOCLK
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while(SFRIFG1&OFIFG); // Test oscillator fault flag
}
程序打断点,在上面的while循环的不能退出 展开
程序如下:
void Init_Clk()
{
P7SEL |=0x0f; //开启XT1,XT2 P7.3,P7.2对应XT2 P7.1,P7.0对应XT1
UCSCTL6 |= XCAP_3 + XT1DRIVE_0 + XT2DRIVE_1;
UCSCTL6 &= ~(XT1OFF + XT2OFF );
//打开XT1,XT2,全选外部晶振;XT2CLK = 8~16M;配置XT1的电容;XT1在低频模式
// UCSCTL3 |= SELREF__REFOCLK; //FLL 参考时钟选择REFOCLK // UCSCTL3默认FLL 参考时钟 XT1CLK
UCSCTL4 |= SELS_5 + SELM_5; //MCLK=XT2CLK,SMCLK=XT2CLK,UCSCTL4 默认ACLK=XT1CLK 时钟源发生错误,ACLK会自动选择REFOCLK
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while(SFRIFG1&OFIFG); // Test oscillator fault flag
}
程序打断点,在上面的while循环的不能退出 展开
3个回答
展开全部
晶振不起振与程序无关,你看看是不是晶振电路的电容有毛病。换电容试试。
追问
这种无源晶振怎么测试啊? 在引脚可以观察波形吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查下配置的电容,改用PF
更多追问追答
追问
32768Hz的电容我用了两个22PF,我上面程序的配置没有问题吧
追答
我没用过这个单片机。我是做晶振的。32.768标配电容是12PF,22pF有可能会停振,具体得测量。
你程序的说明内有句配置电容,是多少呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议看看TI官方的程序以及demo板的设计。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询