This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5969:在将 HFXT 外部时钟输入 MSP430FR4969评估板时出现问题

Guru**** 2478765 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1293857/msp430fr5969-having-an-issue-with-inputting-a-hfxt-external-clock-into-msp430fr4969-eval-board

器件型号:MSP430FR5969

您好!

我复制了 code composer 中的一个文件、该文件的标题为 msp430fr59xx_cs_05.c、该文件在 LFXT 输入端采用外部32.768kHz 时钟。

我唯一修改的是从 LFXT 更改为 HFXT、如下面的代码所示。 我仍然无法在输出上看到正确的时钟(I routed SMCLK)。 我注入 HFXT 输入的输入时钟似乎根本不会影响输出。 您能告诉我可能做错了什么吗?

谢谢!



#包含

int main (空)
{
 WDTCTL = WDTPW | WDTHOLD;                //停止 WDT

 //配置 GPIO
 P1DIR |= BIT2 | BIT3;                    // P1.2和 P1.3输出
 P1SEL0 |= BIT2 | BIT3;                   // P1.2和 P1.3选项选择
 PJSEL0 |= BIT6;                         //表示 HFCLK
 PJSEL1 &=~BIT6;                       //表示 HFCLK

 P3DIR |= BIT4;
 P3SEL0 |= BIT4;                          //输出 SMCLK
 P3SEL1 |= BIT4;


 //禁用 GPIO 上电默认高阻抗模式以激活
 //先前配置的端口设置
 PM5CTL0 &=~μ A LOCKLPM5;

 CSCTL0_H = CSKEY >> 8;                   //解锁 CS 寄存器
 CSCTL1 = DCOFSEL_6;                      //将 DCO 设置为8MHz
 CSCTL2 = SELM__VLOCLK | SELS__HFXTCLK | SELM__DCOCLK;//设置 ACLK = VLO;SMCLK = HFXTCLK
 CSCTL3 = DIVA_8 | DIVS__1 | DIVM__8;    //设置所有分频器
 CSCTL0_H = 0;


 CSCTL4 = HFXTBYPASS | HFXTOFF;

  正确
  {
    CSCTL5 &=~HFXTOFFG;      //清除 XT1和 XT2故障标志
    SFRIFG1 &=~OFIFG;
  —while (SFRIFG1&OFIFG);                  //测试振荡器的故障标志



  //现在 osc 正在运行,请启用故障中断
  SFRIE1 |= OFIE;

  _ bis_SR_register (LPM0_bits);            //在 LPM0中等待故障标志
  ___ no_operation();
 }

 #if defined (__TI_Compiler_version__)|| defined (__IAR_SYSTEMS_ICC__)
 #pragma vector=UNMI_vector
 __interrupt void UNMI_ISR (void)
 #Elif 已定义(_ GNU _)
 void __attribute__((interrupt (UNMI_vector))) UNMI_ISR (void)
 #else
 #错误编译器不受支持!
 #endif
 {
  正确
  {
    //在下面的行中设置一个断点以观察从 LFMODOSC 运行的 XT1
    //在晶振故障期间命中断点时
    CSCTL5 &=~HFXTOFFG;                   //清除 XT1故障标志
    SFRIFG1 &=~OFIFG;
    P1OUT |= BIT0;
    __delay_cycles (25000);                 //再次设置标志的时间
  —while (SFRIFG1&OFIFG);                  //测试振荡器的故障标志

  P1OUT &=~BIT0;


 }






  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Matty:

    如果我正确理解您的描述、您修改了示例代码、将32.678kHz 晶振与 HFXT 结合使用?

    如果是、HFXT 支持从-24MHz 而不是32kHz 的晶体和谐振器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用的是8MHZ HFXT 时钟输入(抱歉、我不能清除)。

    我好像在画行时发现了我的问题:CSCTL0_H = 0;

    一旦我把它删除了、它就能正常工作。

    谢谢!