工具/软件:
我尝试仅从互补通道输出 PWM。 我发现在未启用相应通道的情况下、只有互补通道 2 才能输出 PWM、而互补 0 和 1 则无法。
例如、LGPT2 互补通道 2 可以从 DIO25:

但 LGPT2 互补通道 1 不能。 DIO2 仅在以下各项运行时设置为高电平:

如果 LGPT2 通道 1 和互补通道 1 均被启用、则两者都可以输出 PWM:

这是对硬件的限制吗? 还是 PWM 驱动器中的错误?
此致、
Shuyang
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.
工具/软件:
我尝试仅从互补通道输出 PWM。 我发现在未启用相应通道的情况下、只有互补通道 2 才能输出 PWM、而互补 0 和 1 则无法。
例如、LGPT2 互补通道 2 可以从 DIO25:

但 LGPT2 互补通道 1 不能。 DIO2 仅在以下各项运行时设置为高电平:

如果 LGPT2 通道 1 和互补通道 1 均被启用、则两者都可以输出 PWM:

这是对硬件的限制吗? 还是 PWM 驱动器中的错误?
此致、
Shuyang
尊敬的 Shuyang:
这可能是 PWM 驱动器中的问题(功能缺失)。 PWM 驱动器还使用 LGPT 驱动器、因此问题也可能是由该驱动器引起的。
以下是一些相关帖子:
(+) CC2340R5:一个具有 2 个不同频率 PWM 输出的 LGPTimer? -蓝牙论坛 — Bluetooth︎ — TI E2E 支持论坛
(+) CC2340R5:如何使用一个 LPGT 在不同的通道上发送 3 个 PWM 输出 — 蓝牙论坛- Bluetooth︎ — TI E2E 支持论坛
您是否已经了解了 PWM 和 LGPT 驱动程序?
如果需要、我可以在接下来的 2-4 个工作日内更深入地了解这一点。
谢谢、
Toby
尊敬的 Toby:
我找到了此问题的根本原因。 PWMTimerLPF3_getPwmChannelNo() 不检查 表示互补通道状态的 hwAttrs->channelConfig[x].npin:

因此、如果在未启用相应通道的情况下启用互补通道、则 PWMTimerLPF3_getPwmChannelNo() 将 无条件返回 LGPTimerLPF3_CH_NO_2:

我尝试了以下修复方法、它可以正常工作:

您是否可以帮助查看此修复程序是否正确并将此修复程序添加到未来的 SDK 中? 谢谢。
此致、
Shuyang