MSP430F149用32768HZ的晶振经常不起振。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
设置32768作为时钟,然后设置为ACLK输出,其他程序都屏蔽
main()
{
while(1);
}
在线仿真运行,如果无时钟输出时,查开晶振对应的寄存器标志,如果被置位说明外围电路可能有问题。
wang junzheng, 我查看了user guide, 如果晶振中途停振了,单片机MSP430F2xxx的LFXTI的LF有外部晶振失效保护措施,对应错误flag会置位,但是MSP430F1xx系列有LFXT1的HF失效保护,但是没有LFXT1的LF失效保护。你可以测试一下,具体测试方法如下:你将LFXT1的32768Hz作为ACLK源,从pin脚引出用示波器观察,晶振正常工作时为32768Hz,然后故意用示波器探头碰一下外部晶振,这样会导致晶振停振,后看示波器此时ACLK输出为多少,你就可以直观的看出,如果晶振停振,系统的ACLK究竟怎么样了。
如果检查了硬件的确不起振,考虑检查外部晶体的参数,目标是增大阻抗。
把时钟输出的参考代码片断:
// Description: Output buffered MCLK, SMCLK and ACLK.
// ACLK = LFXT1 = 32768, MCLK = DCO Max, SMCLK = XT2
// | P5.4|-->MCLK = DCO Max
// | P5.5|-->SMCLK = XT2
// | P5.6|-->ACLK = 32kHz
DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO
BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
BCSCTL2 |= SELS; // SMCLK = XT2
P5DIR |= 0x70; // P5.6,5,4 outputs
P5SEL |= 0x70; // P5.6,5,5 options
楼主可以参考官网的《MSP430 32kHz 晶体振荡器》应用笔记。
http://www.ti.com.cn/general/cn/docs/lit/getliterature.tsp?literatureNumber=zhca445b&fileType=pdf