0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用HRPWM的注意事项

星星科技指导员 来源:ti 作者:Ke, Shaoxing 2023-03-14 09:39 次阅读

随着新能源领域的发展, 在数字电源控制系统中要求功率密度高且转换效率高。其中,整机功率密度的提升,就需要提高开关频率, 大部分现有产品的开关频率在50k~200kHz。然而, 由于SiC/GaN器件的大面积推广与使用, 开关频率已经提升到500kHz,甚至1MHz。当系统的开关频率超过200kHz时,此时PWM脉宽的调节精度会变低, 这就需要使用高精度模式的PWM调制。我们把用于扩展传统ePWM模块的时间精度的模块, 称之为高精度PWM(High resolution PWM)。本文将对C2000片上HRPWM模块的工作原理、使用方法和注意事项进行详细讨论,并以实际案例进行展示。此外,HRPWM模块也可以作DAC输出用来实现模拟信号的观测。

1.高精度PWM的工作原理 (HRPWM)

1.1 高精度PWM的MEP技术

C2000支持占空比、相移、死区和周期的高精度控制。HRPWM是在普通PWM模块上采用微边沿定位 (MEP, micro-edge positioner) 技术实现的。简单来说, 就是将一个计数周期再拆分为很多个小的MEP步长, 如下图所示。 其中,MEP最小步长是150ps。

poYBAGQP0CuAQxcfAADzn64r098772.png

图1 HRPWM的微边沿定位MEP示意图

计算举例:如下图所示(开关频率为1MHz),控制精度是由PWM的“计数器值”和“比较值”的来决定。F280013x的CPU频率为120MHz,假设EPWM模块时钟为120MHz, 此时EPWM单个计数周期为8.3 ns,MEP步长为150 ps。如此, 可将每一个计数周期再细分为8.3 ns / 150 ps = 55. 56份。如图中单边向上计数模式下, 开关频率为1MHz,则三角波载波周期为1 us, 计数周期TBPRD等于120。如果想实现10.15%的占空比,则边沿时间的控制应当是 10.15 * 8.3 ns = 84.245 ns。此时, 设定CMPA = 10 (83 ns),剩下的1.245ns(不足单个计数周期)应当由HRPWM模块来实现, 也就是CMPA上再加上1.245 ns = 1245 ps = 150 ps * 8.3 » 8个MEP步长。

pYYBAGQP0CuAECHoAAA_7GSO8PU616.png

图2 单边计数模式下的载波波形

其中,PWM分辨率的计算公式,如图3所示。

poYBAGQP0CyAEQYtAACaFLU0Leg525.png

图3 PWM的分辨率计算公式

图4为不同开关频率下的PWM和HRPWM的分辨率。如下图,当开关频率>250k,或者所要求的PWM分辨率>(9-10 bit)时,系统则需要使用HRPWM模块。

pYYBAGQP0C2AOJZHAADQMppp0Wk385.png

图4 PWM和HRPWM的分辨率算例表

1.2 高精度PWM的相关寄存器

高精度PWM相关的寄存器,如CMPAHR/CMPBHR、TBPHSHR、TBPRDHR、DBREDHR和DBFEDHR,以及HRPWM的时钟输入与配置,如图5和图6所示。HRPWM高精度寄存器作用位置是在AQ子模块之后,由此不会影响AQ执行边沿动作。

poYBAGQP0C2Aa6PfAAEugfWe2F0846.png

图5 HRPWM的相关的寄存器

pYYBAGQP0C6APnYBAAJIvyqIqRA600.png

图6 HRPWM的相关的寄存器作用位置

pYYBAGQP0C-ALdvzAADS1QGuGVA263.png

图7 HRPWM的时钟输入与配置

其中,需要注意的是CMPAHR寄存器只会影响Channel A,它跟CMPA没有任何必然关系;CMPBHR寄存器只会影响Channel B,它跟CMPB没有任何必然关系。同时, CMPAHR和CMPBHR分别可以作用在上升沿、下降沿和上升/下降沿。如下图寄存器的说明可知, 如果仅配置CMPAHR寄存器值, 而Channel B上通过死区模块由PWMxA极性翻转而来, Channel B 上则不会产生高精度的PWM波形。若需要Channel A和Channel B都需要高精度模式, 此时需要将CMPAHR 与CMPBHR赋予相同的值,从而产生正确的PWM波形,如图8所示。

poYBAGQP0C-AI-onAAIrgR9Yr5Q696.png

图8 HRPWM的CMPAHR/CMPBHR寄存器说明

1.3 高精度PWM的CMPAHR/CMPBHR寄存器计算

以F28004x/F28003x为例,CMPAHR的算例及计算过程如下图9所示。分别针对不同CMPAHR和CMPBHR上升沿REP (Rising Edge Position) 、下降沿FEP (Falling Edge Position) 和上升/下降沿BEP (Both Edge Position) 的作用示例。

pYYBAGQP0DCANfqrAAGcM_VjiTE308.png

图9 HRPWM的CMPAHR算例

CMPAHR和CMPBHR上升沿REP作用示例, 如图10:

poYBAGQP0DGARWLXAAGqGkWEpAU054.png

图10

CMPAHR和CMPBHR下降沿FEP作用示例,如图11:

pYYBAGQP0DGAREqJAAGnNOdlr9U663.png

图11

CMPAHR和CMPBHR上升/下降沿BEP作用示例,如图12:

poYBAGQP0DKAZcdKAAHoKjkEWvI158.png

图12

1.4 创建和配置高精度PWM的工程项目

1)创建Driverlib的工程项目

Step1:添加 "Include" Files: #include "sfo_v8.h" 以及所对应的库文件SFO_lib

Step2:声明Variable Declarations:

uint16_t status = SFO_INCOMPLETE;

uint32_t MEP_ScaleFactor = 0; //scale factor value

volatile uint32_t ePWM[(PWM_CH + 1)] = {0, EPWM1_BASE, EPWM2_BASE};

Step3:缩放因子初始化MEP_ScaleFactor Initialization:

while(status == SFO_INCOMPLETE)

{

status = SFO();

if(status == SFO_ERROR)

{

//

// SFO function returns 2 if an error occurs & # of MEP

// steps/coarse step exceeds maximum of 255.

//

error();

}

}

Step4:增加用户代码并配置对应的寄存器如CMPAHR

void main ()

{

int status;

// User code

// ePWM1, 2, 3, 4 are running in HRPWM mode

// The status variable returns 1 once a new MEP_ScaleFactor has been

// calculated by the MEP Calibration Module running SFO

// diagnostics.

status = SFO ();

for(;;)

{

if(test_ctr < 256)
{
HRPWM_setCounterCompareValue(ePWM[1], HRPWM_COUNTER_COMPARE_A, (0x2000 + test_ctr));
test_ctr++;

}
else
{
test_ctr = 0;
}

if(status == SFO_ERROR)

{

//

// SFO function returns 2 if an error occurs & # of

// MEP steps/coarse step exceeds maximum of 255.

//

error();

}

}

}

2)Bit-field按寄存器创建的工程

Step1:添加 "Include" Files: #include "sfo_v8.h"以及所对应的库文件SFO_lib

Step2:声明Variable Declarations:

Uint16 status = SFO_INCOMPLETE;

int MEP_ScaleFactor = 0; //scale factor value

volatile struct EPWM_REGS *ePWM[] = {0, &EPwm1Regs, &EPwm2Regs};

Step3:缩放因子初始化MEP_ScaleFactor Initialization:

同上。

Step4:增加用户代码并配置对应的寄存器如CMPAHR

同上。

1.5 测试工程与PWM波形

pYYBAGQP0DOAJ0jTAABLxhPwQtI247.png

poYBAGQP0DOAdl5MAACWWob43xA166.png

2. 高精度PWM的注意事项

2.1 高精度PWM的Dead Band半个TBCLK计数周期生效

如下Note提示, 死区的高精度模式控制仅在半个TBCLK计数周期生效, 如下计算公式可知, 若CPU主频直接分频给到EPWM时钟,即TBCLK 为100MHz,也就是10ns, 此时DBREDHR和DBFEDHR寄存器仅在5ns计数周期生效, 这也是为了进一步保证高精度死区的生成。

pYYBAGQP0DSAAuvSAACtmt9YWVs172.png

poYBAGQP0DSALCmYAADHnEdZH44432.png

pYYBAGQP0DSAZz6mAABqxP0hFOk111.png

poYBAGQP0DWAMgwoAAEcwoVWsAE888.png

2.2 高精度PWM的Dead Band高精度仅在双边计数Up-Down模式生效

如下Note提示, 死区的高精度模式控制仅在Up-Down计数模式下生效, 这主要是由于HRPWM的Duty占空比高精度模式控制限制所造成的。HRPWM在前三拍和后三拍是无效的,此时若想生成0%占空比可由普通PWM生成。硬件上不允许单边计数模式下实现占空比的高精度模式控制。

poYBAGQP0DaAKlm7AABd1ievDe4230.png

pYYBAGQP0DaACxLYAACWphpsKbM289.png

2.3 Up-Down模式下高精度PWM的寄存器加载时刻仅Zero-Period生效

如下Note提示, 双边计数Up-Down模式下高精度控制影子寄存器加载仅在ZERO AND PERIOD生效, HRPWM模块在过周期处用于内部特殊逻辑计算而不进行加载。单边计数Up模式无此限制要求。此外单边Down模式下是不支持高精度HRPWM操作。

poYBAGQP0DeAF4H5AAMHGcEd5oo276.png

3.结论

高精度模式的控制实现与普通PWM配置有差异,总结来说有以下几点:1.CMPAHR负责Channel A上的高精度控制, CMPBHR负责Channel B上的高精度控制;2. HRPWM寄存器的生效时刻需要注意;3. 死区和占空比高精度实现的模式会对计数方式有要求;4. 单独某一个Channel A上实现高精度会造成另外Channel B上的影响,不过仅±1 TBCLK;5. HRPWM高精度模式控制最高分辨率150ps, 可实现占空比Duty、死区DBREDHR和DBFEDHR、相移TBPHSHR和周期值TBPRDHR的高精度模式控制。以上不限于为高精度模式的使用与注意事项。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    182

    文章

    16554

    浏览量

    244766
  • SiC
    SiC
    +关注

    关注

    27

    文章

    2439

    浏览量

    61405
  • GaN
    GaN
    +关注

    关注

    19

    文章

    1766

    浏览量

    67998
收藏 人收藏

    评论

    相关推荐

    胆机使用的注意事项

    胆机使用的注意事项:胆机使用的注意事项 我是初哥, 现在对胆机感兴趣, 但听说胆机使用麻烦, 请问有什么需要注意的?湖南吉首火车站 范增不必担心, 胆机的使用方法
    发表于 11-29 17:09 46次下载

    LCM使用注意事项

    LCM使用注意事项 1. 安装   LCD模块的安装是用PCB上的安
    发表于 04-16 21:38 1334次阅读

    电池组的设计加工注意事项

    电池组的设计加工注意事项 电池组设计注意事项: 1、功率要求 2、体积空
    发表于 11-05 08:47 1376次阅读

    硒鼓注意事项

    硒鼓注意事项     1、避免在高湿、高温、高寒环
    发表于 12-28 15:47 1130次阅读

    傲龙微晶屏的使用技巧和注意事项

    傲龙微晶屏的使用技巧和注意事项
    发表于 02-10 10:03 585次阅读

    钽电解应用注意事项

    钽电解应用注意事项 使用电压---------------------------------------------------------------------------------------------------------------------电容器
    发表于 03-31 15:54 557次阅读

    浅谈PCB板设计注意事项

    在设计PCB板时应注意的一些基本事项:相关PCB设计参数详解以及相关注意事项
    发表于 05-09 16:05 3364次阅读

    航拍技巧操作及注意事项交流分享

    航拍技巧操作及注意事项交流分享
    发表于 01-15 16:03 0次下载

    工控机使用有哪些注意事项

    工控机使用有哪些注意事项
    发表于 10-29 15:01 1057次阅读

    EMI走线注意事项合集

    EMI走线注意事项合集
    发表于 12-20 15:57 67次下载

    使用注意事项

    使用注意事项
    发表于 03-17 20:14 0次下载
    使用<b class='flag-5'>注意事项</b>

    使用HRPWM注意事项

    C2000支持占空比、相移、死区和周期的高精度控制。HRPWM是在普通PWM模块上采用微边沿定位 (MEP, micro-edge positioner) 技术实现的。简单来说, 就是将一个计数周期再拆分为很多个小的MEP步长, 如下图所示。 其中,MEP最小步长是150ps。
    的头像 发表于 03-26 09:14 906次阅读
    使用<b class='flag-5'>HRPWM</b>的<b class='flag-5'>注意事项</b>

    使用注意事项

    使用注意事项
    发表于 07-07 19:04 0次下载
    使用<b class='flag-5'>注意事项</b>

    中8位MCU EEPROM使用注意事项

    中颖8位MCU EEPROM使用注意事项
    的头像 发表于 09-27 15:34 507次阅读
    中8位MCU EEPROM使用<b class='flag-5'>注意事项</b>

    展频IC布板注意事项

    展频IC布板注意事项
    发表于 04-14 10:12 4次下载