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.

[参考译文] TMDSCNCD28379D:生成450KHz PWM 正弦波

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1221294/tmdscncd28379d-generating-450khz-pwm-sine-wave

器件型号:TMDSCNCD28379D
主题中讨论的其他器件:controlSUITEC2000WARE

大家好、TI 团队、在我的一个产品中、我想使用 ePWM 模块生成400kHz 正 弦波、其中至少有20个载波数据点、将根据0至360度的正弦表进行调制。 想知道是否可以使用 C2000系列微控制器 、因为20个数据点的载波频率约为8MHz? 如果可行的话、您是否可以提供此类示例的任何应用说明?

谢谢!

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

    尊敬的 Vishal:

    此帖子讨论了如何使用28379D 器件生成 sPWM。

    以下是一些可为您提供帮助的线程:  

    1. https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/779876/ccs-tms320f28379d-pulse-width-modulation---spwm

    2. https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/532896/sine-wave-modulated-pwm

    此外、我们还拥有 controlSUITE、它具有此方面的示例。

    www.ti.com/.../CONTROLSUITE

    此致!

    Ryan Ma

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

    您好,Ryan,感谢您的建议。 我将介绍所提供的示例。

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

    Ryan、您好、我尝试创建正弦查找表、在每次载波频率(8MHz)中断时加载 ePWM 的 COMPA/COMPB 寄存器、不过、在 ISR 中更新寄存器时、微控制器似乎会卡住。  

    当计时器处于向上计数模式且载波频率为8MHz (PWM 频率)时、对于200MHz 时钟、计时器周期寄存器值为25。 不确定控制器是否能够以这样更快的速率处理中断以及处理其他应用程序逻辑。

    您能否指导有没有更好的方法来实现它、可以使用 DMA 或其他模块?

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

    尊敬的 Vishal:

    您如何更新 ePWM 的 CMPA/CMPB 寄存器? 如果使用 DriverLib、ISR 中的延迟可能会更长、我建议对寄存器进行如下操作:

    HWREGH (EPWM1_BASE+ EPWM_O_CMPA + 0x1U)= PWM1_CMPA_VAL;

    另请注意、F28379D 上的 ePWM 时钟以100MHz 的频率运行(有一个分频器将 SYSCLK/2分频)。 您可以使用 HRPWM 实现所需的8MHz 切换频率。  

    生成正弦波调制 PWM 的另一种方法是使用我们的数字电源 SDK 中提供的 RAMPGEN 库。 您可以配置基频以生成斜坡信号、然后该信号将传递到正弦函数中并动态生成正弦值。

    您使用的是高频值、因此我建议使用 HRPWM 以获得最大分辨率

    此致、

    彼得

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

    尊敬的 Vishal:

    除了彼得的回应:

    是的、这可以用 DMA 实现。 下面是一个 e2e 主题、讨论您正在描述的想法。  

    1. https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/696482/cc3200-pwm-signal-generate-by-dma-data-example-code-applying

    请参阅此内容、我们的 PWM 示例中还有使用 DMA 的 C2000WARE 示例  

    C:\ti\c2000\C2000Ware_ \driverlib\ \examples\ePWM\ePWM_ex_9_dma.c

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

    Ryan 和 Peter、感谢您的答复。 我将尝试使用建议的方法来生成 SPWM。 我正在使用 Driverlib 更新 PWM 占空比、这可能是原因所在、因此将转向硬件寄存器操作。

    目前、您可以关闭该线程、如果需要任何帮助、我们将重新连接。

    谢谢。

    Vishal