HRPWM应用实例

4.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模式为非对称,增加计数)。

●分辨率为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