各位专家、您好!
我的客户正在使用 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月之前回答我的问题,我将不胜感激。
此致、
还不错