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.

[参考译文] MSPM0C1104:在我的项目中添加了计时器 PWM、但无法正常工作

Guru**** 2465890 points
Other Parts Discussed in Thread: SYSCONFIG, MSPM0C1104

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1470580/mspm0c1104-add-timer-pwm-in-my-project-but-not-working

器件型号:MSPM0C1104
主题中讨论的其他器件:SysConfig

工具与软件:

您好、我在.syscfg 中添加计时器 PWM 设置、并 为 PWM 通道0设置 PA2引脚(如图所示)。

添加了一个函数

我添加  

DL_TimerG_startCounter (PWM_0_INST);

加载到.c 文件中、但没有发生任何情况

运行项目时如何控制风扇速度?

您能给我一些建议吗、谢谢。

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

    您好!

    您能否共享 SysConfig 文件和代码? 它可以加速找到原因。

    此致、

    Zoey

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

    因为项目属于我的公司、所以很难与您分享。

    我想在不同级以不同速度控制 PWM 风扇、我已经阅读了这里的示例。

    https://dev.ti.com/tirex4-desktop/content/mspm0_academy_2_01_01_00/_build_mspm0_academy_2_01_01_00/source/msp_m0/msp_m0_timer_pwm_training/msp_m0_timer_pwm_training.html

    我正在 EVM 上尝试此示例、让 PWM 风扇以不同的速度运行(看起来效果不错)、但我不知道如何将 PWM 风扇控制添加到我的项目中。

    也许你可以告诉我在新项目中添加 PWM 风扇控制功能的步骤。

    谢谢你。

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

    尊敬的 Cecilia:

    我不确定风扇是否与 PWM 的属性有关。

    要更改 PWM 的特性、您可以在 SysConfig 中更改频率和占空比:

     在您的自项目中添加 PWM 的步骤、您可以在 SysConfig 文件中添加 TIMER-PWM、并在代码示例之后更改准函数。

    此致、

    Zoey

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

    我更改了占空比、但它不起作用。  
    然后、我更改了 PWM_EDGE_SLEEP 示例的.syscfg (请参阅随附的.tar)、并将其刷写到我们的定制板中。

    e2e.ti.com/.../timx_5F00_timer_5F00_mode_5F00_pwm_5F00_edge_5F00_sleep_5F00_LP_5F00_MSPM0C1104_5F00_nortos_5F00_gcc.tar

    但没有发生什么…

     我们使用的 MCU 就像这个

    以下是我们的 PWM 风扇(4线)设计

    我尝试了 PWM 的这两项设置、但都失败了。  

    [默认值]

    [根据我们的设计]

    我该怎么办?

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

    您好!

    您以前是否基于 Launchpad 开发过它?

    我只是想确定原因是否是硬件的。

    如果您使用 SDK 中的演示代码、则软件似乎没问题、可以正常输出 PWM。

    此致、

    Zoey

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

    您以前是否基于 Launchpad 开发过它?
    >从不。

    我只是想确定原因是否是硬件的。

    >我无法判断硬件是否正常

    现在、我尝试在 EVM 上运行基本示例"开箱即用"、但出现了此错误。

      

    我使用 USB 电缆连接 EVM、EVM 的设置与此类似


    在开始运行 PWM 示例之前、我可能应该正常运行该示例。 (SAD)

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

    您好!

    否、不需要使用开箱即用的代码示例。 请将 ……\ti\mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0C1104\driverlib\timx_timer_mode_pwm_edge_sleep 导入到您的工程中、并将其下载到您的自硬件以了解它是否可以输出 PWM。

    顺便说一下、您能否分享一下您自己电路板的原理图?

    此致、

    Zoey

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

    可以从"Create New Project"下载 PWM_EDGE_SLEEP 吗?



    我仅将 MCU 布局更改为 WQFN-20 (RUK)  

    然后、这里是我们的板原理图

    MCU 实现

    PD (连接到 FAN_PWM 和 FAN_TACH)


     HW RD 的引脚表


    此致、
    Cecilia

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

    是的、还可以。 但就绿色而言、我们建议下载并直接导入 SDK。 可以避免设置环境。

    请尝试一下。 希望它能为您节省时间并成功输出 PWM。

    此致、

    Zoey

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

    因此、下载代码示例之后、您在 MCU 中看不到任何 PWM、对吧?

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

    我如何确定?

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

    您能否请连接 示波器以检查 GPIO 是否已切换?

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

    我   手头没有示波器。 有没有其他方法可以 肯定?

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

    您可以使用数字万用表来测试此引脚的平均电压

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

    感谢你的帮助。


    讨论完 HW RD 和更改 HW 的布局后、现在我可以设置 PWM 占空比以控制风扇的速度。
    但我想通过读取 FAN_TACH 引脚(连接到 PA2)来了解风扇的当前速度。
    这是我的设置和代码。

    我尝试按如下方式读取 FAN_Tach 的值、

    fanTach = DL_GPIO_readPins (GPIO_TACH_PORT、GPIO_TACH_PIN_1_PIN);

    但无论占空比如何、FANTach 的值始终为0x04。

    如何正确读取 FAN_TACH (PA2)值?

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

    您好!
    我不建议您在 GPIOA 中断中使用延迟。
    您需要考虑 GPIOA 中断触发频率。
    通常、GPIOA 作为风扇速度反馈输入、中断频率约为50 ~ 5kHz。
    并且在中断中添加5s 延迟、这会导致中断字异常。
    GPIOA 中断应该会更新引脚状态、您需要在 main while 中添加频率过程。
    此致、
    Zoey

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

    好的、我看到了。  
    GPIOA_IRQHandler 中写入的代码只是测试代码、用于识别 IRQ 是否已触发以及风扇速度是否可以更改。

    现在我知道风扇转速(rpm)由 TACH 引脚(PA2)每秒脉冲数计算得出。
    您能给我一个每秒脉冲计数的示例吗?


    我还需要 根据 热传感器的值更改风扇速度。
    您能给我举几个例子吗?

    谢谢你。

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

    您可以更改 PWM 的占空比来更改风扇速度。

    目前、我们没有该代码示例。

    它应该由客户自己编写。