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

5739 XT1不起振

在XIN XOUT上接了4M的晶振.按下面配置

  PJSEL0 |= BIT4+BIT5;      // Enable xin xout

  CSCTL0_H = 0xA5;
  CSCTL1 |= DCOFSEL0 + DCOFSEL1;             // Set max. DCO setting    8MHZ
  CSCTL2 = SELA_0 + SELS_3 + SELM_3;        // set ACLK = XT1; MCLK = DCO
  CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0;        // set all dividers  CSCTL4 |= XT1DRIVE_0;  CSCTL4 &= ~XT1OFF;

do
  {
    CSCTL5 &= ~XT1OFFG;
                                            // Clear XT1 fault flag
    SFRIFG1 &= ~OFIFG;  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

这是例程里面的..

但是不起振,一直出现XT1OFG…

但是置位了XT1BYPASS位以后却通过了,但BYPASS位不是旁路么,旁路了晶振就直接变成了时钟源???按理说不应该置位啊;;;

Leon Yan:

之前做过一个4MHZ外置晶振的例子,

请看下面代码:

#include "msp430fr5739.h"

unsigned int tt = 0;unsigned char RXData = 0;unsigned char TXData = 0;unsigned char check = 0;void main(void){ WDTCTL = WDTPW + WDTHOLD; // stop watchdog

// XT1 Setup

PJSEL0 |= BIT4 + BIT5;

CSCTL0_H = 0xA5; CSCTL1 |= DCOFSEL1 | DCOFSEL0; // Set max. DCO setting CSCTL2 = SELA_0 + SELS_0 + SELM_0; // set ACLK = XT1; MCLK = DCO CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0; // set all dividers

CSCTL4 |= XT1DRIVE_0 | XTS; CSCTL4 &= ~XT1OFF;

do { CSCTL5 &= ~XT1OFFG; // Clear XT1 fault flag SFRIFG1 &= ~OFIFG; }while (SFRIFG1&OFIFG); // Test oscillator fault flag

// Configure UART 0 UCA0CTL1 |= UCSWRST;

// Configure UART pins P2SEL1 |= BIT0 + BIT1; P2SEL0 &= ~(BIT0 + BIT1); UCA0CTL1 = UCSSEL_1; UCA0BR0 = 6; UCA0BR1 = 0; UCA0MCTLW |= (0x00 << 8) | 0x02 | UCOS16;

UCA0CTL1 &= ~UCSWRST;

while(1) { while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x50; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x55; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x38; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x50; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x51; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x52; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x53; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x54; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = 0x55; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = '\r'; for(tt=0;tt<1000;tt++);

while (!(UCA0IFG&UCTXIFG)); while(UCA0STATW & UCBUSY); UCA0TXBUF = '\n'; for(tt=0;tt<1000;tt++); }}

赞(0)
未经允许不得转载:TI中文支持网 » 5739 XT1不起振
分享到: 更多 (0)