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.

[参考译文] CCS/MSP430FR5730:MSP430FR5730

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/864389/ccs-msp430fr5730-msp430fr5730

器件型号:MSP430FR5730

工具/软件:Code Composer Studio

尊敬的同事:

我们开发了自己的基于 MSP430FR5730 MCU 的电路板。 我们不使用外部振荡器、而是使用 DCO。

当尝试配置 DCO 时、它无法正常工作。 实际上、我们一直在尝试简化时钟初始化过程、并使用 TI 资源浏览器中的示例。 它们都不能按预期工作。

作为参考、我们使用了以下 代码示例:

  

问题是、我们得到的实际时钟频率减少了8倍。 所有分频器都设置为1、但这并不起作用。

我们使用 CCS 版本:8.2.0.00007来编译和编译工程。

您能不能告诉您可能出了什么问题?

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

    您好、Alexander、

    这很奇怪。  根据您参考的示例、DCO、MCLK、SMCLK、ACLK 应以8MHz 的频率运行。

    当您使用与您看到的1MHz 完全相同的示例代码时?

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

    尊敬的 Dennis:

    感谢您的回复。 是的、如果我使用此示例、我将看到1MHz 频率。 这非常奇怪。

    事实上、我已经尝试过不同的情况、其中包含 DCORSEL 和 DCOFSEL 的所有不同参数、不同的分频器没有什么帮助。

    我的频率始终比预期低8倍。 我还决定尝试基于 driverlib 示例的新项目、结果相同。

    这是初始化 DCO 时钟的代码的一部分、我现在正在使用此代码来获取24MHz 频率:

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

    CSCTL0_H = 0xA5;
    CSCTL1 |= DCORSEL+ DCOFSEL0 + DCOFSEL1;//设置最大值 DCO 设置
    CSCTL2 = SELA_3 + SELM_3 + SELM_3;//设置 ACLK = MCLK = DCO
    CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0;//设置所有分频器000b (即1)

    //要检查我使用 GPIO 的实际频率,请参阅下面的

    //将 P1.5设置为 GPIO

    P1SEL0 &=~BIT4;
    P1SEL1 &=~BIT4;
    P1DIR |= BIT5;

    while (1)

    P1OUT ^= BIT5;//切换 P1.5

    这会在引脚上提供~1.5MHz 的频率(请参阅所附 示的示图)、即我的实际频率为3MHz、而不是24MHz

    请告知您可能出了什么问题?

    谢谢、此致、

    亚历山大

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

    您好、Alexander、

    我不相信您在软件中切换的引脚的频率。  根据编译器生成的指令,执行 while ()循环可能需要几个时钟周期,并且似乎以低于预期的速率切换 IO 引脚。  我建议配置具有备用功能的 IO 引脚之一以输出 ACLK、SMCLK 或 MCLK。  这样、您就可以精确测量时钟频率。

    我接下来要做的是使用调试器、启动代码并让其运行一秒钟、然后停止并检查时钟配置寄存器。  将这些寄存器中的值与预期结果进行比较(有关寄存器定义、请参阅数据表)。  请告诉我您发现的内容。

    还有 一个可能 相关的勘误表。  参见 CS12。

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

    尊敬的 Dennis:

    感谢你的帮助! 我尝试使用 P2.0端口作为 ACLK 的输出、它按预期工作、最后得到8MHz 频率。

    谢谢、此致、

    亚历山大