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.

[参考译文] MSP430F5529:引脚上的 MSP430F5529时钟输出

Guru**** 2797825 points

Other Parts Discussed in Thread: MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/740588/msp430f5529-msp430f5529-clock-output-at-pin

器件型号:MSP430F5529

大家好、

我在控制器的 XT2引脚上连接了4MHz 晶体、在 XT1上连接了32.768kHz 晶体、并进行了相应配置。 如果我使用这个4MHz 晶振配置 SMCLK/MCLK、输出为1MHz。

void crystal_intialization (void)

P5SEL |= BIT4 + BIT4;//32.768kHz 晶体打开  
P5SEL |= BIT2 + BIT3;//4MHz 晶体打开

void clock_source_selection (void)

UCSCTL4 = SELS _5;//针对 SMCLK 4MHz 的 XT2CLK 源
UCSCTL5 = DIVS_0;
P2DIR |= BIT2;
P2SEL |= BIT2;

UCSCTL4 |= SELA_0;//XT1CLK 源用于 ACLK 32.768kHz
UCSCTL5 = DIVPA_0 + DIV_0;
P1DIR |= BIT0;
P1SEL |= BIT0;

UCSCTL4 |= SELM_5;//XT2CLK 源为 SMCLK 4MHz
UCSCTL5 = DIVM_0;
P7DIR |= BIT7;
P7SEL |= BIT7;

如果我使用示波器在 P7.7上看到、它显示的脉冲为1MHz 而非4MHz。 我找不到解决办法。

但是、如果我将全部三个时钟源配置为32.768kHz、那么所有这三个引脚(P7.7、P1.0和 P2.2)都具有完美的32.768KHz 信号。

所有测试均使用 MSP430F5529开发板完成。

此致、

Rajesh M.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UCSCTL5 |= DIVS_0;
    UCSCTL5 |= DIVPA_0 + DIV_0;
    UCSCTL5 = DIVM_0;
    并检查以下各项的值:DIVS_0、DIVPA_0 + DIVA_0、DIVM_0。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在进行建议的更改后、结果与1MHz 输出相同。  晶体引脚上的输出完美地显示4MHz 的另一点、这意味着晶体正常工作。

    此致、

    Rajesh

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

    无 XT2故障?
    如果 XT2尚不稳定、将选择 DCOCLKDIV。

    这是我的理解。
    我稍后会检查它。

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

    请参阅以下代码示例、了解如何将 XT2作为 MCLK 或 SMCLK 的时钟源并输出上述时钟。 请参阅示例 MSP430F55xx_USC_08.c。

    dev.ti.com/.../
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    //循环直到 XT1、XT2和 DCO 稳定-在本例中,循环直到 XT2稳定
    ,执行
    {
    UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);
    //清除 XT2、XT1、DCO 故障标志
    SFRIFG1 &=~OFIFG; //清除故障标志
    } while (SFRIFG1&OFIFG); //测试振荡器故障标志 

    您有答案!
    当然、您也需要等待 XT1稳定!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jace、
    我缺乏寄存器编程级别的知识。
    我还有其他职责、我没有时间在 driverlib 级别检查问题。

    毫无疑问、Rajesh 知道如何处理它。
    谢谢!
    固定的!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jace:

    我复制了您建议的代码示例、并检查了 P7.7的输出频率。 但1MHz 时的结果相同。 大约30分钟后、我再次按相同的方式进行检查、频率在1MHz 时相同。

    ----------------------------------------------------------------------

    #include

    int main (空)

     WDTCTL = WDTPW + WDTHOLD;         //停止看门狗计时器

     P2DIR |= BIT2;               // SMCLK 设置为引脚

     P2SEL |= BIT2;               

     P7DIR |= BIT7;               // MCLK 设置为引脚

     P7SEL |= BIT7;

     P5SEL |= BIT2+BIT3;            //端口选择 XT2

     UCSCTL6 &=~XT2OFF;            //启用 XT2

     UCSCTL3 |= SELREF_2;            // FLLref = REFO

                          //由于未使用 LFXT1,

                          //使用 LFXT1提供 FLL 可能会导致

                          // XT1OFFG 标志置1

     UCSCTL4 |= SE拉美 经济体系2;             // ACLK=REFO、SMCLK=DCO、MCLK=DCO

     //循环直到 XT1、XT2和 DCO 稳定-在本例中循环直到 XT2稳定

     操作

     {

      UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);

                          //清除 XT2、XT1、DCO 故障标志

      SFRIFG1 &=~OFIFG;            //清除故障标志

     } while (SFRIFG1&OFIFG);          //测试振荡器故障标志

     UCSCTL6 &=~XT2DRIVE0;           //根据减少 XT2驱动

                          //预期频率

     UCSCTL4 |= SELs_5 + SELM_5;        // SMCLK=MCLK=XT2

     while (1);                 //循环就地

    ----------------------------------------------------------------------

    此致、

    Rajesh Maurya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    XT2驱动减少应该根据晶振技术规格来完成。
    您能否注释掉 Decrease XT2 drive 语句?
    测量 P7.7频率时请检查 XT2标志。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jash、
    借助您的示例代码、我可以获得4MHz 频率。 实际上、今天我错过了设置调试器模式、因为这是旧代码正在运行。

    感谢您的支持。 现在、我将在项目文件中实现所需的更改。

    此致、
    Rajesh Maurya