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.

[参考译文] MSP430F5359:XT2晶振的 SMCLK

Guru**** 2526700 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/695421/msp430f5359-smclk-from-xt2-crystal

器件型号:MSP430F5359

大家好、男孩、

我有 XT2晶振110592MHz、但未连接 XT1晶振

端口 P3.4的 SMCLK 功能被激活和使用。 SMCLK 的分压器稳定为4。 其他分频器1 (ACLK 来源于 REFO、MCLK 来源于 DCOCLK)。

FLL 被 REFO 阻抗,DCO 在预期区域工作,SMCLK 源被选为"XT2,否则为 DCOCLKDIV"。

DCOFFG 和 XT2OFFG 故障标志为零、示波器显示 XT2晶振正在工作。

我遇到了奇怪的问题。

 在输出端口 P3.4/SMCLK 上,我有 DCOCLKDIV/4 ,而不是 XT2/4。

 我试过很多设置,但没有找到任何可用的组合。

如果 XT2/16被用作 FLL 的基准源- SELREF = 5 (XT2)。 FLLREFDIV=5 (=1/16)、FLLD=3 (DCOdivider =8)、FLLN=1 -预分频器=2;

 SMCLK 来源于 DCOCLK -我在 SMCLK 引脚上有所需的结果。

因此,我看到 XT2正在根据需要运行,没有故障标志处于活动状态,但我不能直接将 XT2用作源 SMCLK。

 我缺少什么?

。  

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

    您好 Stefan、

    您可以尝试使用下面随附的 XT2代码示例吗? 您现在是否在 P3.4上测量 XT2? 如果是、请将您的代码与示例代码进行比较、以查看是否缺少任何内容。 在代码示例中、DCO 最初为 MCLK 和 SMCLK 提供源、但在一切稳定后、它们从 DCO 切换到 XT2。

    /*-版权所有-、BSD_EX
    *版权所有(c) 2012、德州仪器(TI)公司
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    *
    ***
    *
    * MSP430代码示例免责声明
    *
    * MSP430代码示例是自包含的低级程序
    ,通常*以
    高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认
    值*寄存器值和时钟配置等设置、
    并且在组合多个示例中的代码时必须*小心以避免潜在的副作用
    *。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware
    *了解外设配置的 API 函数库方法。
    *
    *--/版权--*
    //*********
    // MSP430F665x 演示- XT2源自 SMCLK
    //
    说明:此程序演示如何使用 XT2作为 SMCLK 的来源。 在
    这种情况下、XT1未//连接。
    //
    //默认情况下,LFXT1由以下模块请求:
    // - FLL
    // - ACLK
    //如果不使用 LFXT1并且用户不更改源模块,
    //它会导致 XT1xxOFIFG 标志被置位,因为它一直在寻找
    //对于 LFXT1。 如果 LFXT1
    //被置位、OFIFG、全局振荡器故障标志将一直被置位。 因此、如果
    不使用 LFXT1、确保 LFXT1不再使用//非常重要。
    // MCLK = SMCLK = XT2
    //
    // MSP430F665x
    // --------
    // /|\| |
    // || |
    // ---|RST |
    // | XT2IN|-
    // | | HF XTAL (455kHz - 16MHz)
    // | XT2OUT|-
    // | |
    // | P3.4|->SMCLK = XT2
    //
    P. Thanigai
    // Texas Instruments Inc.
    // 2012年10月
    //使用 IAR 嵌入式工作平台构建版本:5.40和 CCS v5.2
    //*********
    #include 
    
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
    
    P3DIR |= BIT4; // SMCLK 设置为引脚
    P3SEL |= BIT4;
    
    P7SEL |= BIT2|BIT3; //端口选择 XT2
    
    UCSCTL6 &=~XT2OFF; //启用 XT2
    UCSCTL3 |= SELREF_2; // FLLref = REFO
    //由于未使用 LFXT1,
    //使用 LFXT1提供 FLL 可能会导致
    // XT1OFFG 标志置位
    UCSCTL4 |= SELA_2; // ACLK=REFO、SMCLK=DCO、MCLK=DCO
    
    //循环直到 XT1、XT2和 DCO 稳定-在本例中循环直到 XT2稳定
    为止执行
    {
    UCSCTL7 &=~(XT2OFFG | XT1LFOFFG | XT1HFOFFG | DCOFFG);
    //清除 XT2、XT1、DCO 故障标志
    SFRIFG1 &=~OFIFG; //清除故障标志
    } while (SFRIFG1&OFIFG); //测试振荡器故障标志
    
    UCSCTL6 &=~XT2DRIVE0; //根据减少 XT2驱动
    //预期频率
    UCSCTL4 |= SELs_5 | SELM_5; // SMCLK=MCLK=XT2
    
    while (1); //循环就地
    }
    
    

    此致、

    James

    MSP 客户应用

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、James、
    请您回复、
    我将在星期一尝试。 初始外观-
    SFRIFG1&OFIFG
    此寄存器对我来说未知... 很遗憾。 我正在从430f2619迁移、现在家庭指南要厚得多... :-)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复、James、
    我将在周一试一下。
    while (SFRIFG1&OFIFG)
    这个寄存器对我来说是未知的、我是从 f2619迁移的...而且家庭手册很有问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Yo 的回复、James、

    可能 (SFRIFG1&OFIFG)

    是我缺少的东西。  

    我正在从430f2619迁移、SFRIFG 对我而言未知。 这本家庭手册要厚得多:-)。

    我将在周一试一下。

    此致。

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

    已确认、
    需要检查和清除寄存器 SFRIFG1中的标志 OFIFG。
    在调试器中- SFRIFG.OFIFG 的手动稳定不会停止 P34SMCLK 到输出 XT2。
    UCSCTL7中 XT2OFFG 的手动稳定会导致 SFRIFG1.OFIFG 升高、SMCLK 切换到 DCOCLKDIV。在这种状态下、UCSCTL7.XT2OFFG 的清零不足以切换回 XT2。 也需要清除 SFRIFG1.OFIFG。

    再次感谢、James!