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.

[参考译文] MSPM0G3107:PWM 启动信号滑动

Guru**** 2782445 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/1573913/mspm0g3107-pwm-startup-signal-blip

器件型号:MSPM0G3107
Thread 中讨论的其他器件:MSPM0G3507SysConfig

工具/软件:

您好:

我正在使用 PWM 外设来控制某些 LED。 在上电期间、我希望 LED 熄灭、直到软件发生特定事件、然后将 LED 设置为特定的 PWM。 我观察到一种特定的行为、即上电期间出现嘟嘟声、在这种情况下、LED 会亮起、然后进入预期的熄灭状态。 我一直在混乱 PWM 的配置方式、看看是否可以解决该问题、但运气不好。

下面是我所指的突厥的示波器截图。

这是什么原因造成的,我如何才能使它不发生? 我附加了一个示例项目、可以在其中重新创建问题。


e2e.ti.com/.../pwm_5F00_led_5F00_driver_5F00_LP_5F00_MSPM0G3507_5F00_nortos_5F00_gcc.zip

另外还有一个问题:

  • 在配置 PWM 外设时、“initial value“属性有什么作用? 我一直迷惑它,没有看到任何明显的差异的输出。
  • 要使 PWM 外设以关闭状态引导、我必须反转通道。 为什么会这样? 如果通道未反相、0 计数占空比会输出高电平信号。

提前感谢您!!

Adan Pantoja.

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

    尊敬的 Adan:

    我目前无法在我自己的测试中重新创建此问题、但将继续进行研究。

    关于您的其他问题:

    • 初始值配置适用于在计数器被禁用时需要默认 CCP 输出值的情况。
    • 您能解释一下让 PWM 在关闭状态下引导是什么意思吗?

    此致、
    Brian

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

    您好、Brian、

    如果该评估板有所帮助、我使用的是 LP-MSPM03507 评估板、并在上面重现了该评估板。

    当计数器禁用时需要默认 CCP 输出值时、初始值配置适用于。

    那么、如果我将其设置为“低电平“、我应该会看到信号在低电平状态下启动?  

    您能否说明让 PWM 在关闭状态下启动是什么意思?

    我的 LED 为高电平有效、 因此我期望 PWM 输出在等待事件发生时保持低电平。 由于滑动、在通电期间、LED 将快速亮起一秒钟、然后熄灭。 我不希望出现这种情况。 是在进入预期状态之前、将 PWM 设置为输出高电平一秒。 如上面的屏幕截图所示、我将计数器值设置为 0、这意味着我期望 PWM 为 0%。

    希望这是有道理的。 如果您仍然感到困惑、请告诉我。

    谢谢、

    Adan

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

    对于中心对齐的 PWM、比较值 0 可提供 100%。 (SysConfig 甚至会告诉您这一点。) 它在 0 时设为高电平(向上)、在 0 时设为低电平(向下)、因此它实际上始终为高电平。 (我没有看到“唇“,只有一个总是高。

    您是否希望改用边沿对齐 PWM?

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

    尊敬的 Adan:

    那么、如果我将其设置为“低电平“、我应该会看到信号启动处于低电平状态吗?  [/报价]

    是的、在设置 CTRCTL.EN 位之前、信号将处于低电平。

    我相信我已经重新创造了你所看到的嘴唇。 要确认、此事件是否在随附的示例 SysConfig 文件中使用的设置下针对每个 PWM 周期重复?

    如果是、此异常是由于 向上和向下的 CCP 输出操作尝试在同一比较值下执行相反的操作而引起的。 在反相 PWM 的情况下、CCP 输出向上使信号成为低电平、CCP 输出向下使信号成为高电平。 要删除唇型、可使用 以下 DriverLib 函数强制 CCP 输出为低电平或高电平:

     DL_Timer_overrideCCPOut (GPTIMER_Regs *gptimer、DL_TIMER_FORCE_OUT
      DL_TIMER_FORCE_CMPL_OUT outComp、DL_TIMER_CC_INDEX ccIndex)
    此致、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Brian、

    否、这个异常不会在每个 PWM 周期中重复发生。 它仅在启动时发生。 在下面的示波器捕获中、黄色信号是 PWM、绿色信号是我需要切换的 GPIO、以显示上电后的程序执行情况。  

     

    我认为、唇型只是信号反相和使用中心对齐 PWM 的副作用。 这很可能无法减轻。 此时、我认为最好使用边沿对齐 PWM 并避免这种骤降。

    使用中心对齐与边沿对齐的整个目的是重复使用驱动器来控制 LED。 此驱动程序在不同芯片上使用中心对齐的 16 位 PWM、因此计数范围为 0 - 32767(其中 0 个计数= 0% PWM 和 32767 = 100% PWM)。 能够将 TI 配置为模拟相同的行为是理想的做法、这就是为什么信号发生反转等。 但事实并非如此。 切换到边缘对齐不是什么大问题、我可以让它发挥作用。

    我确实尝试了 DL_Timer_ovverrideCCPOut 但好像它在启用时禁用整个 PWM 外设。 对 DL_TimerA_setCaptureCompareValue 的调用对输出没有影响。

    谢谢、

    Adan Pantoja.