下面的实例是一个采用非对称(即增加计数)高有效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波形。
图7-36 单PWM简单降压逆变器
图7-37 简单降压逆变器的PWM波形
对ePWM1模块的配置,除了需要使能和选择合适的MEP以外,与通常非高分辨率情况几乎一样。
实例代码由两个主要部分组成:
●初始化代码(执行一次)。
●运行时代码(通常在中断服务程序中执行)。
下面是HRPWM降压逆变器的初始化代码。首先配置常规PWM,然后设置HRPWM资源。假定MEP步大小为150ps,未使用SFO库。
下面给出HRPWM降压逆变器的汇编语言运行时代码。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。