各位专家、您好!
我的客户正在使用 MSP430FR2153构建产品。
他们正在考虑通过以下方式使用 XT1。
1.加电后立即激活 XT1时钟(启动振荡)
2.使用 REFO 作为 ACLK、MCLK 和 SCLK 的源、直到 XT1时钟振荡稳定。
3.当输出的 XT1时钟稳定时、将 ACLK、MCLK 和 SCLK 源切换到 XT1。
请在这里向我介绍以下问题。
Q1:我是否正确理解了在激活模式下可以启用 XT1、通过清除 XT1AUTOOFF、LPM0~4?
Q2:换句话说、我是否正确理解了清除 XT1AUTOOFF 将启动 XT1振荡、即使它未用于任何内部系统功能?
Q3:是否有一个寄存器来检查 XT1当前是否振荡(换句话说、有效)?
Q4:如果在清零 OFIFG 后没有置1 (通过下面代码的第88行)、这是否意味着 XT1绝对稳定?
它们在程序中增加了一个1.5秒的等待时间、以等待 XT1稳定振荡。 原因是退出下面代码的第88行需要80ms、而示波器需要大约1.2s 来稳定振荡。
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
CSCTL3 |= SELREF__REFOCLK; // Set REFO as FLL reference source
CSCTL4 |= SELA__REFOCLK; // Set ACLK = REFO = 32768Hz
CSCTL7 &= ~(XT1AUTOOFF); // Clear XT1 and DCO fault flag
P2SEL1 |= BIT6 | BIT7; // P2.6~P2.7: crystal pins
do
{
CSCTL7 &= ~(XT1OFFG | DCOFFG); // Clear XT1 and DCO fault flag
SFRIFG1 &= ~OFIFG;
} while (SFRIFG1 & OFIFG); // Test oscillator fault flag
// Port Configuration all un-used pins to output low
P1OUT = 0x00; P2OUT = 0x00;
P3OUT = 0x00; P4OUT = 0x00;
P5OUT = 0x00; P6OUT = 0x00;
P1DIR = 0xff; P2DIR = 0xff;
P3DIR = 0xff; P4DIR = 0xff;
P5DIR = 0xff; P6DIR = 0xff;
PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
// to activate previously configured port settings
while(1)
{
// P1OUT ^= BIT0; // Toggle P1.2 using exclusive-OR
__delay_cycles(1000000); // Delay for 10000000*(1/MCLK)=1.25s
}
}
基本软件已经完成、开发接近高潮。 很抱歉,但如果能在2015年11月之前回答我的问题,我将不胜感激。
此致、
还不错


