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**** 2455360 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1495239/mspm0c1104-specific-pwm-output-pins-are-not-output

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

工具与软件:

尊敬的专家:

我的客户正在使用 MSPM0C1104SDYYR (16引脚)开发 LED 灯

它们需要7个 PWM 输出、因此可以按如下方式对其进行设置。 但是、TIMG14的 PA24和 PA25不是输出。

我附加了 SysConfig 文件。

您能检查一下我们在设置中是否遗漏了任何内容吗?

e2e.ti.com/.../empty_5F00_mspm0c1104.zip

谢谢

此致

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

    你好、Robin、

    首先、检查您是否在代码中"启动计时器"、因为我发现您没有在 SysConfig 中启动计时器。  

    其次、检查您是否在代码中设置占空比、因为我发现 SysConfig 中的占空比为0。 在此模式下、您使用中心对齐、设置500会使占空比变为0。 有关不同对齐方法的信息、请参阅可从 TI.com 下载的技术参考手册。

    由于初始值较低、同时占空比为0、因此输出始终为零。 我 (__LW_AT__您知道、占空比表示在整个周期中的高级 logic1)宽度所占的比例。  

    我在我这边尝试了以下配置、PA24和 PA25可以正常输出 PWM。

    有关 PWM 生成的更多详细信息、请了解 TRM。  

    此致、

    Janz Bai

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

    尊敬的 Janz:

    感谢您的答复。

    它们使用 SW 设置占空比并启动 PWM 输出、如下所示。

    长 Sys_All P.wmDuty (uint16_t Duty)

    #if defined (DEV_PWM)
    uint32_t DUTY_CYCLE_COUNT;

    Duty_cycle_count = 1000 -(1000*占空比)/100;
    DL_TimerG_setCaptureCompareValue (PWM_0_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_0_INDEX);
    DL_TimerG_setCaptureCompareValue (PWM_0_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_1_INDEX);
    DL_TimerG_setCaptureCompareValue (PWM_0_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_2_INDEX);
    DL_TimerG_setCaptureCompareValue (PWM_0_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_3_INDEX);
    DL_TimerA_setCaptureCompareValue (PWM_1_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_0_INDEX);
    DL_TimerA_setCaptureCompareValue (PWM_1_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_1_INDEX);
    DL_TimerA_setCaptureCompareValue (PWM_1_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_2_INDEX);
    #else
    uint32_t DUTY_CYCLE_COUNT;

    Duty_cycle_count = 1000 -(1000*占空比)/100;
    DL_TimerG_setCaptureCompareValue (PWM_0_INST、DUTY_CYCLE_COUNT、DL_TIMER_CC_0_INDEX);
    #endif
    返回 E_OK;
    }

    */./...........
    *功能名称: Sys_Pwm 304.
    *描述:启动 PWM 计时器
    *输入:无
    *输出:无
    *返回:错误/确定
    香港特别行政区政府在香港特别行政区的工作 /
    Long Sys_Pwm 4.200(空)

    #if defined (DEV_PWM)
    DL_TimerG_startCounter (PWM_0_INST);
    DL_TimerA_startCounter (PWM_1_INST);
    #else
    DL_TimerG_startCounter (PWM_0_INST);
    #endif
    返回 E_OK;
    }

    其他 PWM 通道正常输出、但只有 PA24和 PA25引脚无法正常工作。

    我们将按照您的指南再次向您提问。

    谢谢

    B.R.

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

    你好、Robin、

    我今天不在办公室,我会很快回复你,

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

    你好、Robin、

    我想你可以尝试一步一步地做一些测试:
    请勿模仿您的代码、仅使 TIMERG14和 PA24 PA25以固定占空比输出 PWM。 如果它无法正常工作、您 MCU 上的 PA24 PA25可能由于某种原因而损坏、您需要更换另一个芯片。 如果可行、您可以逐步添加其他函数、以检查代码逻辑是否存在问题。

    此致、

    Janz Bai