FDM320RV335作为高性能浮点DSP芯片,其内置的增强型PWM模块(ePWM)支持高精度占空比动态调整,广泛应用于电机控制、光伏逆变器等领域。本文结合硬件设计与调试经验,阐述基于该芯片的ePWM占空比实时变化控制方法。
ePWM模块结构与占空比控制原理
FDM320RV335的ePWM模块(结构如图1所示)包含7个子模块:时基模块(TB)、计数比较模块(CC)、动作模块(AQ)、死区模块(DB)、PWM斩波模块(PC)、事件触发模块(ET)和错误处理模块(TZ)。

图1 ePWM模块内部结构框图
占空比控制是通过时基模块生成时钟信号,计数比较模块根据预设值调整占空比,动作模块控制输出电平切换。
时基模块(TB):负责生成PWM周期基准,通过设置周期寄存器(TBPRD)和时钟分频参数(HSPCLKDIV、CLKDIV)确定PWM频率。
计数比较模块(CC):将时基计数器(TBCTR)与比较寄存器(CMPA/CMPB)值比较,触发占空比调整。
动作模块(AQ):根据计数器状态(如TBCTR=0或TBCTR=TBPRD)和预设动作(置高、置低、翻转),控制PWM输出电平。
例如,系统时钟为150MHz,TB模块选择UP模式,时钟分频参数HSPCLKDIV=2、CLKDIV=0,其频率与占空比计算方式如下:
频率计算:
= /(2*(TBPRD+1));
其中, 为系统时钟(150MHz),TBPRD为时基周期寄存器值。
占空比计算:
Duty=CMPA/TBPRD×100%;
通过动态更新CMPA值即可实现占空比实时调整。
实现步骤
工程创建
使用中科本原公司RV系统处理器集成开发环境(IDE)CodeCanvas新建一个工程,并编写main.c文件。在main函数中,首先进行必要的硬件初始化,包括系统时钟配置、GPIO配置。然后,对epwm模块进行初始化,包括配置时钟模块、计数比较模块和动作模块等。最后进行工程编译、调试阶段。CodeCanvas工程创建及调试使用如图2、图3所示。

图2 新建工程

图3 编译与调试工程
软件配置步骤
占空比的实时变化主要通过动态调整比较寄存器的值来实现。可以在一个循环中,根据实际需要动态计算比较寄存器的值,并将其写入相应的寄存器。这样,随着循环的不断执行,epwm信号的占空比也会实时发生变化。以下是一个简单的示例代码:

调试与验证
硬件调试
首先,使用CodeCanvas调试器将代码下载到开发板上,并通过示波器观察epwm信号的输出。调整示波器的设置,以便能够清晰地看到epwm信号的频率和占空比。然后,观察ePWM频率、占空比是否符合设计要求。图4为调试使用的硬件板卡,图5为测试结果。
常见问题及解决办法
· epwm波形不稳定或失真:检查板卡电源、地以及测试线是否正常。 · epwm波形频率异常:检查硬件板卡晶振及软件代码时钟配置是否正确。 · 波形占空比异常:检查软件代码epwm寄存器配置是否正确(可通过CodeCanvas寄存器视图查看对应寄存器的值是否与配置一致)。

图4 板卡调试

图5 EPWM1A输出波形
结论与优化建议
FDM320RV335的ePWM模块通过灵活的软件配置和硬件支持,实现了ePWM占空比实时变化控制。在实际应用中,可进一步优化性能:
算法优化:引入自适应算法,根据实际应用场景动态调整PWM参数。
多模块协同:结合其他模块(如ADC、通信模块)实现更复杂的功能和控制策略。
全部0条评论
快来发表一下你的评论吧 !