主题中讨论的其他器件:controlSUITE、 C2000WARE
大家好、TI 团队、在我的一个产品中、我想使用 ePWM 模块生成400kHz 正 弦波、其中至少有20个载波数据点、将根据0至360度的正弦表进行调制。 想知道是否可以使用 C2000系列微控制器 、因为20个数据点的载波频率约为8MHz? 如果可行的话、您是否可以提供此类示例的任何应用说明?
谢谢!
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.
大家好、TI 团队、在我的一个产品中、我想使用 ePWM 模块生成400kHz 正 弦波、其中至少有20个载波数据点、将根据0至360度的正弦表进行调制。 想知道是否可以使用 C2000系列微控制器 、因为20个数据点的载波频率约为8MHz? 如果可行的话、您是否可以提供此类示例的任何应用说明?
谢谢!
尊敬的 Vishal:
此帖子讨论了如何使用28379D 器件生成 sPWM。
以下是一些可为您提供帮助的线程:
此外、我们还拥有 controlSUITE、它具有此方面的示例。
此致!
Ryan Ma
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 主题、讨论您正在描述的想法。
请参阅此内容、我们的 PWM 示例中还有使用 DMA 的 C2000WARE 示例
C:\ti\c2000\C2000Ware_ \driverlib\ \examples\ePWM\ePWM_ex_9_dma.c