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/MSP432P401R:GPIO 切换频率至 Timer32

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/758552/ccs-msp432p401r-gpio-toggle-frequency-to-timer32

器件型号:MSP432P401R

工具/软件:Code Composer Studio

大家好、  

我的目标是在引脚 P6.7上生成频率为500kHz 的输出。 但是、在多次尝试更改某些参数后、我只能获得大约268kHz 的最大频率。 如何纠正这一点?

 这是我在一年的休息后第一次回到 MSP432、因此我感到很生锈;我尝试查看数据表和手册、但仍被卡住。 (以及我在此处发布的第一篇文章)

e2e.ti.com/.../gpiowithtimer32.txt

任何见解都将不胜感激。  

此致、  

Jenna

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

    中断速率为500k/秒、每个中断(切换)产生半个周期、即250kHz。 这就是我在示波器上看到的内容。

    如果您的目标是生成500kHz 方波、我注意到 P6.7也可以输出 TA2.4、这可能是比软件生成的信号更稳定的信号。 [参考数据表(SLAS826G)表6-77]

    [编辑:在我后面发生的情况是、您描述的是从源文件中的500k 增加中断速率、而不是成功。 我无法准确地告诉您 ISR 需要多长时间、但超过48个时钟不会让我感到意外。 优化器无法对它执行太多操作。 我仍然认为 TA2.4是您的最佳选择。]

    [编辑:实际上,我可以告诉您 ISR 需要多长时间:48000k/(268k*2)或大约90个时钟。]

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

    下面是一个 PWM 示例:

    此外、需要记住的是、IO 切换会产生额外的时钟周期。  见 表5.25.2。

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

    是的、当 TIMER0_FREQ 设置为500k 时、我将立即达到250kHz 左右、这会像您提到的那样以半个周期显示每次切换。 但是、如果我将 TIMER0_FREQ 设置为1M、一半将是所需的500k、但我只能在示波器上看到268k。  

    我不确定我是否完全遵循了 TA2.4或 ISR 时间。 我在数据表中看到了您所讨论的内容、但不确定在进一步阅读后如何实现。 如何输出 TA2.4?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您看前面文章中附加的示例、您将从 P2.4上的 TA0.1移动到 P6.7上的 TA2.4。 这意味着在 PWM 定义中、您使用捕获-比较寄存器4而不是1 (第68行)。 设置为主要输出功能的 GPIO 位于端口6引脚7上、而不是端口2引脚4 (第89行)上。 计时器基址将更改为 TIMER_A2_BASE (第97行和第127行)。

    此致、
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有道理。 PWM 路由是一种很好的方法。 我刚才修改了您提到的内容、然后更改了一些时钟、以便在保持技术参考文档参数的同时、实现我想要的500kHz 输出。 感谢您的快速回复和所有帮助!