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:MSP430F5529尝试生成一个5MHz 方波以用作其它设备的时钟脉冲

Guru**** 2024750 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/700360/ccs-msp430f5529-trying-to-generate-a-5-mhz-square-wave-to-serve-as-a-clock-pulse-for-other-equipment

主题中讨论的其他器件:MSP430F5529

工具/软件:Code Composer Studio

您好!

我对微控制器编程经验不多、这是我第一次使用 MSP430F5529。

我需要生成频率为5MHz 的方波、作为我正在使用的另一台设备的时钟脉冲。 我已将 MCLK 设置为25MHz、并已提高电压以适应该时钟频率。 但是、当我运行以下代码时

for (;;){

       P2OUT ^= 0x01;


   }

P2.0仅在1.61MHz 的频率上被切换。 是否有办法更快地迭代此循环? 大概在该速度增加之后,我可以使用__delay_cylces()来设置延迟,以实现精确的频率。

请尽可能帮助我。 如果有任何建议或建议、我将不胜感激。

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

    您好、William、

    除了提高 VCC 电压、您是否将 VCORE 更改为适当的设置?

    有几个因素会以这种方式影响 GPIO 切换的速度。 例如、器件更改 GPIO 寄存器上的输出需要大约一微秒的时间。 此外、在切换之前、您将在无限循环周围使用多个时钟周期。  如果在手动更改 GPIO 输出时有中断发生、则可以进一步引入延迟。  这个无限循环也会绑定您的整个系统。

    下面是一些更好的选项、因为它们不需要 CPU 干预即可完成:

    • 将 SMCLK 设置为所需的输出频率(MCLCK 可能需要多个频率才能使其正常工作)并在其专用引脚上输出 SMLCK。
    • 使用计时器外设以所需的输出频率自动切换计时器输出。 您仍需要使 MCLK 或 SMLCK 成为您想要输出的倍数、计时器也会为您提供进一步的分频选项。 例如、如果您以10MHz 运行计时器、请在向上计数模式切换输出模式下使用计时器、您将获得5MHz 输出。