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:使用外部16 MHz时钟失败

Guru**** 2609895 points
Other Parts Discussed in Thread: MSP430FR5969, MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/636842/msp430fr5969-using-external-16-mhz-clock-fails

部件号:MSP430FR5969
主题中讨论的其他部件: MSP430FR5994

我正在尝试配置MSP430FR5969以使用驱动HFXIN引脚的外部16MHz时钟振荡器。   但是,我无法成功配置时钟系统以使用此时钟。   时钟源似乎默认为内部MODCLK (MODOSC),因为我的计时器代码由4.8MHz源驱动,而不是16MHz源驱动。   如果发生无法清除的HFXT时钟故障,则会出现此故障安全默认值,如数据表中所述。   我已经探测了PCB,时钟看起来很稳定,没有过冲,50 % 占空比等。  我正在寻找可能出错的建议。

下面是配置MSP430FR5969以使用16MHz分机时钟的代码:

/*
用于MSP430FR5969的初始化,具有16MHz外部振荡器,驱动HFXIN引脚
*/
void hfxtClockInit_5MHz时钟(void){
/*设置外部引脚作为HFXT */使用
PJOUT = 0x00;
// DS表6-61,xtal操作为PJSEL1.n=0 PJSEL0.n=1,n=6,7
PJSEL1 = 0x00;
PJSEL0 || BIT6 | BIT7;
__DELAY周期(1.6万UL);
CSCTL0_H = CSOKEY >> 8;//解锁CS寄存器
CSCTL1_L = 0b0万;// DCO 1MHz (但未使用DCO)
CSCTL2 = SESL__HFXTCLK | SELM__HFXTCLK;//设置SMCLK和MCLK源= HFXT
CSCTL3 = DIVs__1| DIVM__1;//将所有分隔线设置为1
// 16MHz是HFFREQ_n位的临界情况?,请参见SLAU367中的表3-1
CSCTL4 || HFFREQ_3| HFXTBYPASS; //设置时钟输入频率范围
//检查并清除故障寄存器
做
{
CSCTL5 &=~(LFXTOFFG | HFXTOFFG); //清除XT1和XT2故障标志
SFRIFG1 &=~OFIFG;
}同时(SFRIFG1&OFIFG); //测试振荡器故障标志
CSCTL0_H = 0;//锁定CS寄存器
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您已将LFXT和HFFREQ的ACLK配置为"大于16 MHz"。

    您是否可以将WFP 3.4 或PJ.0配置为输出SMCLK?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我遇到了完全相同的问题,有什么解决方案?

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

    您好Wade!

    在TI资源管理器中 ,您将找到一个名为“msp430fr59xx_cs_04.c”的示例代码,该代码显示了在XT2 HF引脚上使用晶体的示例。 请参阅此示例代码以及 用户指南的3.3 部分 ,以了解需要修改哪些命令和寄存器以满足您的特定要求。

    此致,

    Matt Calvo

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

    我看了这个例子...我的设计使用的是MSP430fr5994,只有一个16MHz外部时钟振荡器...没有32KHz低频率时钟。 该示例使用LFxCLK,并将DCO设置为8MHz。 这不是我想要的。

    我想将所有时钟设置为16MHz (SMCLK,MCLK),我不想使用DCO。

    当我运行此代码时,时钟以4.8MHz的速度运行。

    是否有办法禁用DCO并将所有内容与外部时钟振荡器绑定? 一

    以下是时钟设置代码(不能正常工作):

       //设置外部16MHz时钟时出现问题,无法正常工作
       //时钟系统设置
       CSCTL0_H = CSOKEY >> 8;                 //解锁CS寄存器
       CSCTL1_L = 0;                          //??? 未使用DCO
       CSCTL2 = SESL__HFXTCLK | SELM__HFXTCLK;//设置SMCLK和MCLK源= HFXT
       CSCTL3 = DIVs__1| DIVM__1;            //将所有分隔线设置为1
       CSCTL4 || HFFREQ_2 | HFXTBYPASS;       //设置时钟输入频率范围

       CSCTL5 &=~(LFXTOFFG | HFXTOFFG);      //清除XT1和XT2故障标志
       SFRIFG1 &=~OFIFG;
       CSCTL0_H = 0;                          //锁定CS寄存器


    我现在只是使用DCO进行开发,但这不是我想要的:

    // DCO代码,不想使用它...外部时钟初始化不工作

    //时钟系统设置
       CSCTL0_H = CSOKEY >> 8;                                               //解锁CS寄存器
       CSCTL1 = DCORSEL | DCOFsel_4;                                                      //将DCO设置为16MHz
       CSCTL2 =拉美_ VLOCLK | SESS__DCOCLK | SELM__DCOCLK;// SET SMCLK = MCLK = DCO,ACLK = VLOCLK
       CSCTL3 = DIVA__1 | DIVs__1 | DIVM__1;                                               //设置所有分隔线
       CSCTL0_H = 0;                                                              //锁定CS寄存器

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

    是的,我知道您的实施与示例代码不是完全匹配,这只是一个很好的参考,供您从开始。 您只需删除初始化和实现LFXTAL的代码,并将MCLK和SMCLK的源代码从DCO更改为HFXTCLK (这在CSCTL2寄存器中完成)。

    现在,我想让大家尝试运行我建议的示例代码,只需删除低频晶体代码和探头3.4 ,这是由HFXTAL提供的SMCLK。 一旦您确保它工作正常并看到输出正确的16MHz信号,我们就可以确定它在您的实施中无法正常工作的原因。

    -无光泽
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    检查CSCTL4的"HFXTOFF"位。 事实上,我建议您更深入地了解CSCTL4的每一个细节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Wade,

    Mike有一个很好的观点,在示例代码中设置了一些您在代码中没有设置的位;您还设置了一些不应该针对CSCTL4设置的位。 这就是我将示例代码作为参考的原因。 无论您使用的是MSP430FR5969还是MSP430FR5994,每个都有一个HFXTAL示例,可以指导您正确初始化高频晶体操作。

    祝您好运!

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

    在解决CSCTL4寄存器中的问题后,是否有任何更新?

    此致,

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

    如果您对此线程有任何其他问题,请告知我们,以便我们可以清除这些问题并相应地记录帖子。 感谢您的帮助!

    此致,

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

    我将继续并记录此线程,因为我们已经有一段时间没有收到回复。 感谢您的支持,如果出现任何其他问题,请随时发布新帖子!

    此致,

    Matt Calvo