理论教育 HRPWM应用实例详解

HRPWM应用实例详解

时间:2023-06-15 理论教育 版权反馈
【摘要】://用于HRPWM头文件的宏定义#define HR_Disable 0x0#define HR_REP 0x1 //上升沿位置#define HR_FEP 0x2 //下降沿位置#define HR_BEP 0x3 //双沿位置#define HR_CMP 0x0 //CMPAHR控制#define HR_PHS 0x1 //TBPHSHR控制#define HR_CTR_ZERO 0x0 //CTR=0事件#define HR_CTR_PRD 0x1 //CTR=周期事件#define HR_CTR_ZERO_PRD 0x2 //CTR=0或周期事件#define HR_NORM_B 0x0 //正常ePWMxB输出#define HR_INVERT_B 0x1 //ePWMxB为ePWMxA反相输出本例中对于SYSCLKOUT=60MHz,PWM要求:●PWM频率为600kHz。图7-36所示为采用单PWM简单降压逆变器的电路。首先配置常规PWM,然后设置HRPWM资源。假定MEP步大小为150ps,未使用SFO库。下面给出HRPWM降压逆变器的汇编语言运行时代码。

HRPWM应用实例详解

下面的实例是一个采用非对称(即增加计数)高有效PWM简单降压逆变器

首先初始化/配置代码,为便于理解给出其宏定义。假定MEP步大小为150ps,未使用SFO库。

//用于HRPWM头文件的宏定义

#define HR_Disable 0x0

#define HR_REP 0x1 //上升沿位置

#define HR_FEP 0x2 //下降沿位置

#define HR_BEP 0x3 //双沿位置

#define HR_CMP 0x0 //CMPAHR控制

#define HR_PHS 0x1 //TBPHSHR控制

#define HR_CTR_ZERO 0x0 //CTR=0事件

#define HR_CTR_PRD 0x1 //CTR=周期事件

#define HR_CTR_ZERO_PRD 0x2 //CTR=0或周期事件

#define HR_NORM_B 0x0 //正常ePWMxB输出

#define HR_INVERT_B 0x1 //ePWMxB为ePWMxA反相输出

本例中对于SYSCLKOUT=60MHz,PWM要求:

●PWM频率为600kHz(即TBPRD=100)。

●PWM模式为非对称,增加计数)。(www.daowen.com)

分辨率为12.7位(MEP步大小为150ps)。

图7-36所示为采用单PWM简单降压逆变器的电路。图7-37所示为简单降压逆变器的PWM波形。

978-7-111-57271-8-Chapter07-187.jpg

图7-36 单PWM简单降压逆变器

978-7-111-57271-8-Chapter07-188.jpg

图7-37 简单降压逆变器的PWM波形

对ePWM1模块的配置,除了需要使能和选择合适的MEP以外,与通常非高分辨率情况几乎一样。

实例代码由两个主要部分组成:

●初始化代码(执行一次)。

●运行时代码(通常在中断服务程序中执行)。

下面是HRPWM降压逆变器的初始化代码。首先配置常规PWM,然后设置HRPWM资源。假定MEP步大小为150ps,未使用SFO库。

978-7-111-57271-8-Chapter07-189.jpg

下面给出HRPWM降压逆变器的汇编语言运行时代码。

978-7-111-57271-8-Chapter07-190.jpg

978-7-111-57271-8-Chapter07-191.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈