TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F 6723 外部晶振 32K 不起振的原因

各位,请教一下 MSP430F 6723  外部晶振 32K 不起振的原因? 

我下载了DCO 实验程序 ,LED灯可以闪烁,证明MSP430F6723是可以工作的。(MSP430F673X_TA0_02.c              Timer0_A0, Toggle P1.0, CCR0 Up Mode ISR, DCO SMCLK)

但是下载 (MSP430F673X_TA0_04.c       //       Timer0_A0, Toggle P1.0, Overflow ISR, 32kHz ACLK )   仿真时一直在    do
    {
        UCSCTL7 &= ~(XT2OFFG | XT1LFOFFG | DCOFFG);
        // Clear XT2,XT1,DCO fault flags
        SFRIFG1 &= ~OFIFG;                   // Clear fault flags
    } while (SFRIFG1 & OFIFG);               // Test oscillator fault flag

循环,跑不出来, 晶振一直不起振,

请问一下接32K 晶振时要注意哪些问题吗?(我的硬件电路接21引脚和22引脚直接接32K的晶振没有加其它的东西)

盼复!

Bruce Wei:

你好!

试试在无源晶体振荡器两个引脚上增加22pF的负载电容。

jian li79:

回复 Bruce Wei:

你好,刚才试过了,也是没有输出功能! 软件上是否要设置其它的东西,官方例程测试可以的吗?如下:

#include <msp430.h>

void main(void){    WDTCTL = WDTPW | WDTHOLD;                // Stop WDT

    // Setup P1.0 output    P3DIR |= BIT7;                           // Set P1.0 to output direction    P3OUT &= ~BIT7;                          // Clear P1.0

    // Setup LFXT1    UCSCTL6 &= ~(XT1OFF);                    // XT1 On    UCSCTL6 |= XCAP_3;                       // Internal load cap       // Loop until XT1 fault flag is cleared    do    {        UCSCTL7 &= ~(XT2OFFG | XT1LFOFFG | DCOFFG);        // Clear XT2,XT1,DCO fault flags        SFRIFG1 &= ~OFIFG;                   // Clear fault flags            } while (SFRIFG1 & OFIFG);               // Test oscillator fault flag

    // Setup TA0    TA0CTL = TASSEL_1 | MC_2 | TACLR | TAIE; // ACLK, cont. mode, clear TAR                                             // Enable interrupt

    __bis_SR_register(LPM3_bits | GIE);      // Enter LPM3, enable interrupts    __no_operation();                        // For debugger}

// Timer0_A1 Interrupt Vector (TAIV) handler#pragma vector=TIMER0_A1_VECTOR__interrupt void TIMER0_A1_ISR(void){    switch (__even_in_range(TA0IV, 14))    {        case  TA0IV_NONE: break;             // No interrupt        case  TA0IV_TA0CCR1: break;          // TA0CCR1_CCIFG        case  TA0IV_TA0CCR2: break;          // TA0CCR2_CCIFG        case  6: break;                      // Reserved        case  8: break;                      // Reserved        case 10: break;                      // Reserved        case 12: break;                      // Reserved        case TA0IV_TA0IFG:                   // TA0IFG            P3OUT ^= BIT7;                   // Toggle P1.0            break;        default: break;    }}

求解,已经调试几天了,却没有进展!

感谢!

Bruce Wei:

回复 jian li79:

楼主试试这个例程MSP430F673X_UCS_6,用示波器看看是否有32.768khz稳定方波输出。

user242210:

遇到同样的问题,

    {        UCSCTL7 &= ~(XT2OFFG | XT1LFOFFG | DCOFFG);        // Clear XT2,XT1,DCO fault flags        SFRIFG1 &= ~OFIFG;                   // Clear fault flags    } while (SFRIFG1 & OFIFG);               // Test oscillator fault flag

清除OFIFG应该加一段延时,因为震荡失败标志需要500-1000ms才起作用。加了延时后确认了晶振不振,在这里死循环了。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F 6723 外部晶振 32K 不起振的原因
分享到: 更多 (0)