Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3682

MSP430F6723外部32K晶振不起振问题

$
0
0

试了例程里面所有关于UCS的程序,用示波器测量32K外部晶振都没有方波输出!

以MSP430F673X_UCS_6程序为例

int main(void)
{
WDTCTL = WDT_ADLY_1000;     // WDT 1000ms, ACLK, interval timer
SFRIE1 |= WDTIE;     // Enable WDT interrupt

// Setup P1.0 output, J1.3 ACLK
P1DIR |= BIT0;     // Set P1.0 to output direction
P1OUT &= ~BIT0;     // Clear P1.0
PJDIR |= BIT3;     // ACLK set out to pin
PJSEL |= BIT3;     // PJ.3 for debugging purposes.

// Setup LFXT1
UCSCTL6 &= ~(XT1OFF);     // XT1 On
UCSCTL6 |= XCAP_3;      // Internal load cap

// Loop until XT1, XT2 & DCO stabilizes
do
{
UCSCTL7 &= ~(XT2OFFG | XT1LFOFFG | DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG;      // Clear fault flags
} while (SFRIFG1 & OFIFG);      // Test oscillator fault flag
UCSCTL6 &= ~(XT1DRIVE_3);      // XT1 stable, reduce drive strength

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

// Watchdog Timer interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector = WDT_VECTOR
__interrupt void watchdog_timer(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(WDT_VECTOR))) watchdog_timer (void)
#else
#error Compiler not supported!
#endif
{
P1OUT ^= BIT0;       // Toggle P1.0 using exclusive-OR

程序进不了WDT中断,示波器量外部晶振没有输出波形:

匹配电容XCAP_3  ~   XCAP_0都试过,没有作用;

换新的晶振,没有作用(晶振在4系列单片机的板子上均起振);

把WDT定时器WDT_ADLY_1000换成WDT_MDLY_xx,可以进入中断。

这是不是说明外部晶振没有起振?PCB布板应该没有问题,晶振用的是圆柱晶振DT-26的,没有接外部电容。谁遇到过或者知道的麻烦指导一下,谢谢!


Viewing all articles
Browse latest Browse all 3682

Trending Articles