使用HRPWM的注意事项

发布时间:2023-10-20  

摘要

本文引用地址:

随着新能源领域的发展, 在数字电源控制系统中要求功率密度高且转换效率高。其中,整机功率密度的提升,就需要提高开关频率, 大部分现有产品的开关频率在50k~200kHz。然而, 由于SiC/GaN器件的大面积推广与使用, 开关频率已经提升到500kHz,甚至1MHz。当系统的开关频率超过200kHz时,此时PWM脉宽的调节精度会变低, 这就需要使用高精度模式的PWM调制。我们把用于扩展传统ePWM模块的时间精度的模块, 称之为高精度PWM(High resolution PWM)。本文将对C2000

片上模块的工作原理、使用方法和注意事项进行详细讨论,并以实际案例进行展示。此外,模块也可以作DAC输出用来实现模拟信号的观测。

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

1.1 高精度PWM的MEP技术

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

pastedimage1678694396068v1.png-640x480.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步长。

pastedimage1678694436770v2.png-640x480.png

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

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

pastedimage1678694447496v3.png-640x480.png

图3 PWM的分辨率计算公式

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

pastedimage1678694459330v4.png-640x480.png

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

1.2 高精度PWM的相关寄存器

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

pastedimage1678694473706v5.png-640x480.png

图5 HRPWM的相关的寄存器

pastedimage1678694488991v6.png-640x480.png

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

pastedimage1678694503338v7.png-640x480.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所示。

pastedimage1678694519448v8.png-640x480.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) 的作用示例。

pastedimage1678694534186v9.png-640x480.png

图9 HRPWM的CMPAHR算例

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

pastedimage1678694548775v10.png-640x480.png

图10

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

pastedimage1678694561155v11.png-640x480.png

图11

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

pastedimage1678694574082v12.png-640x480.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波形

pastedimage1678694603020v13.png-640x480.png


pastedimage1678694608421v14.png-640x480.png

2. 高精度PWM的注意事项

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

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

pastedimage1678694624089v15.png-640x480.png

pastedimage1678694628258v16.png-640x480.png



pastedimage1678694633147v17.png-640x480.png


pastedimage1678694717354v21.png-640x480.png

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

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

pastedimage1678694740023v23.png-640x480.png

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

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

pastedimage1678694757001v24.png-640x480.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的高精度模式控制。以上不限于为高精度模式的使用与注意事项。

文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    绝缘摇表的使用方法和注意事项;摇表又称,其用途是测试线路或设备的绝缘状况。使用方法及注意事项如下: (1) 首先选用与被测元件电压等级相适应的摇表,对于500v及以下的线路或电气设备,应使用500v......
    字万能表为例,简单介绍其使用方法和注意事项。 (1)数字万能表的使用方法 a使用前,应认真阅读有关的使用说明书,熟悉开关、量程开关、插孔、特殊插口的作用. b将电源开关置于on位置。 c交直......
    电动机综合保护器的使用方法和注意事项;  电动机综合保护器是电气控制系统中的一个重要部件,主要用于保护电动机免受损坏和故障。   电动机综合保护器采用先进的实时采样技术、配以MCU微处......
    数字钳形表使用方法和注意事项;数字钳形表是一种用于测量正在运行的线路的电流大小的仪表,可在不断电的情况下测量电流。是专门测量交流大电流的仪器。 根据其结构及用途分为式和电磁系两种。 常用......
    万用表的使用方法和安全注意事项;又称三用表,是一种多量程、多用途的仪表,可以用它来测量交流、直流电压,直流电流和电阻,有的还可以测量交流电流、电感、和电平等。由于万用表具有灵敏度高、量程多、用途广以及使用......
    为什么不能用万用表测量绝缘电阻?兆欧表的使用方法和注意事项;为什么不能用测量绝缘电阻? 如果用万用表测量设备的绝缘电阻,测得的是低电压下的绝缘电阻值,不能......
    雷达物位计的接线方法和注意事项;雷达物位计利用雷达原理及采用大规模集成电路进行连续性测量,具有测距远、精度高等特点,在石化、轻工、环保、冶金、水利、粮食等行业应用广泛。其雷......
    场清理和设备状态检查的内容和要求; 操作设备必须使用的工器具; 设备运行的主要工艺参数; 常见故障的原因及方法; 开车的操作程序和注意事项; 润滑的方式和要求; 点检、维护的具体要求; 停车的程序和注意事项......
    软件版本以获取最新的功能和性能优化。同时备份重要数据以防意外丢失。 专业培训 :对操作人员进行专业培训,确保他们熟悉控制箱的操作方法和注意事项......
    专用插孔,黑表笔插入负极插孔即可。 指针式万用表是比较精密的仪器,如果使用不当,不仅造成直流电流的测量不准确且极易损坏。但是,只要我们掌握指针式万用表的使用方法和注意事项,谨慎从事,那么......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>