【应用笔记】TAE32G5800 HRPWM Burst Mode 使用详解
1 HRPWM Burst Mode 简介
Burst Mode 使输出交替地进入 IDLE 状态和 RUN 状态,从而跳过一些开关周期,其中周期和占空比可编程。
Burst Mode 常用于轻载运行的电源转换器中,减少了输出变化次数以及相关的开关损耗,从而显著提高转换器效率。在 Burst Mode 运行时,会在空闲周期(长度等于几个计数周期)后输出一个或几个脉冲,空闲周期内不会生成任何输出脉冲。
2 HRPWM Burst Mode 初始化步骤
如图 2.1 所示,比较器的输出 Vout 为高时,比较器内部的迟滞回路开启,这使得负端输入的 DAC 电平与正端输入的电压差值,需超过迟滞电压才能触发比较器的翻转。而在 Vout 为低电平时,因迟滞回路不开启,故 DAC 电压值下降到与 Vcurrent 持平时,即可引发 CMP 翻转到高电平。
(1)在使用 Burst Mode 之前,必须使能定时单元计数器(HRPWM_MCR1.CENx 置 1)。
Burst Mode 通过 HRPWM_BMCR.BME 使能。
(2)通过配置HRPWM_BMCR.BMOM,
Burst Mode可以选择在连续模式或单发模式下运行。
配置 HRPWM_BMCR.BMOM = 1 使能连续模式,对 HRPWM_BMCR.BMEXIT 写 1 终止 Burst Mode
运行之前,都会保持突发模式运行状态。
(3)Burst Mode 计数器可由多个时钟源提供时钟,通过 HRPWM_BMCR.BMCLK 来选择时
钟来源。
(4)空闲周期和运行周期的持续时间由突发模式计数器和 2 个寄存器来定义。
HRPWM_BMCMP 寄存器定义了定时单元处于空闲状态的持续时间,即空闲周期。HRPWM_BMPER
寄存器定义总突发模式周期,即空闲周期与运行周期之和。初始突发模式触发事件之后,
空闲周期长度为 BMCMPR+1,总突发周期为 BMPER+1 。
图 2.1 CMP 比较器单边迟滞示意图
根据上面的原理,可以这样简单理解 CMP 迟滞:如果一个芯片有欠压关断,就会有阈值(阈值可以理解为临界值)电压,低于这个阈值电压芯片就会自动停止运行(也就是关断),高于这个阈值,芯片就会重新启动。如果阈值电压为 10,则电压为 10 时芯片关断,电压为 10.1 时芯片启动,这 0.1 的波动很小,噪声干扰都可能造成这种小的波动,于是在这个阈值附近芯片会不断的启停。迟滞电压就是解决这一问题的,如果设置迟滞电压为 5,则电压为 10 时芯片关断,电压为 15 时芯片启动,10~15 这个范围保持原来的电平状态,这样就解决了不断的波动不断的启停。
如上所述,分析一下 CMP 翻转的波形,如下图 2.2 所示:
图 2.2 CMP 翻转波形分段描述
分析比较器的输出波形,我们需要分段讨论。如图 2.2 所示,以下为比较器输出各段信号的详细描述。此时,DAC 接比较器的负端,Vcurrent 接比较器的正端。Vcontrol 电压值超过迟滞电压。
① 此时 DAC 的电压值小于 Vcurrent,因此比较器输出电平为高。迟滞为 Enable 的状态。
② 此时 DAC 的电压值大于 Vcurrent,但是仍在迟滞区间内,因此比较器的输出依然为高。
③ 此时 DAC 的电压值大于 Vcurrent,并超过迟滞区间,因此比较器开始翻转,输出电平为低。迟滞变为 Disable 状态。此时电路环路上的尖峰脉冲,使得 Vcurrent 快速上升,并在与 DAC 电平相等时使得 CMP 再次翻转到高电平。
④ 此时 Vcurrent 大于 DAC 电压,CMP 维持高电平,迟滞为 Enable 状态。
⑤ 此时 Vcurrent 再次小于 DAC 电压,但仍在迟滞区间内,因此 CMP 维持高电平。
⑥ 此时 Vcurrent 小于 DAC 电压,并超过迟滞区间,因此 CMP 翻转到低电平。迟滞 Disable。
⑦ 此时 Vcurrent 的值与 DAC 相等,触发比较器翻转到高电平,迟滞 Enable。而后 Vcurrent 的值小于 DAC 电压,但因仍在迟滞区间内,因此比较器不翻转,维持高电平。
⑧ 此时 Vcurrent 的值大于 DAC 电压,因此比较器维持高电平状态。
3 功能描述
正端(CMPx_INP)和负端(CMPx_INM)比较,如果正端电压大于负端电压,就会从 CMP 的引脚输出高电平,如果正端电压小于负端电压,则会输出低电平。输出高电平还是低电平可以在 CMPx_CR 配置 OPOL [12]这个位来选择。
CMP 迟滞可以通过 CMPx_CR 的 HYST[5 : 4 ]寄存器来配置,共有三种迟滞选择:低迟滞(10mV),中迟滞(20mV),高迟滞(30mV)。
如果 CMP 使能了迟滞,在 CMP 输出的时候会作用在其下降沿。举个例子:比如 CMP 使能了 20mV 的迟滞,那 CMP 的输出会在下降沿 20mV 处生效。
4 例程解析
4.1 CMP 迟滞例程介绍
下面通过一个例程实现 CMP 迟滞功能。例程具体功能是:DAC0 和 DAC3 作为负端,DAC0 电压输入为 1.65V,DAC3 电压输入为 3V,CMP0 和 CMP3 作为正端输入,CMP0 和 CMP3 的输出结果作为外部事件 Event0 和 Event3 的输入使其打开或关闭 HRPWM 的输出,CMP0 使能了10mV 迟滞,CMP3 使能了 20mV 迟滞。对比 CMP0 和 CMP3 无迟滞和使能迟滞后 HRPWM 的输出情况。
4.2 代码分析
配置 DAC0 电压输入为 1.65V,DAC3 电压输入为 3V,使能 DAC0 和 DAC3,具体见代码清单 4.1。
代码清单 4.1 DAC 配置
LL_DAC_Init(DAC);
DAC->CR[0] |= DAC_CR_PEN|DAC_CR_OEN;
DAC->WDR[0] = OVER_CURRENT_VAL0; //写入 DAC0 对应通道的数据(2048)
DAC->CR[3] |= DAC_CR_PEN;
DAC->WDR[3] = OVER_CURRENT_VAL3; //写入 DAC3 对应通道的数据(3724)
使能 CMP0 和 CMP3,CMP0 配置 10mV 迟滞,CMP3 配置 20mV 迟滞,具体见 代码清单 4.2。
LL_CMP_Init(CMP);
CMP->CR[0] |= CMP_CR_INM_Msk| //负端 DAC0
CMP_CR_HYST_0 | //10mv 迟滞
CMP_CR_PEN; //CMP0 使能
CMP->CR[3] |= CMP_CR_INM_Msk | //负端 DAC3
CMP_CR_HYST_1 | //20mv 迟滞
CMP_CR_PEN; //CMP3 使能
HRPWM 输出配置,DAC0 负端与 CMP0 正端(PA7)的比较结果作为 Event0 的输入,DAC3 负端与 CMP3 正端(PC4)的比较结果作为 Event3 的输入,具体见代码清单 4.3。
Instance->PWM[3].SETAR = HRPWM_OUTPUT_SET_CMPA |
HRPWM_OUTPUT_SET_MSTCMPA;
Instance->PWM[3].CLRAR = HRPWM_OUTPUT_CLEAR_CMPB |
HRPWM_OUTPUT_CLEAR_MSTCMPB |
HRPWM_OUTPUT_CLEAR_EXTEVNT0| //Event0 关波
HRPWM_OUTPUT_CLEAR_EXTEVNT3 ; //Event3 关波
Instance->PWM[3].SETBR = HRPWM_OUTPUT_SET_CMPC |
HRPWM_OUTPUT_SET_MSTCMPC ;
Instance->PWM[3].CLRBR = HRPWM_OUTPUT_CLEAR_CMPD|
HRPWM_OUTPUT_CLEAR_MSTCMPD |
HRPWM_OUTPUT_CLEAR_EXTEVNT3 | //Event3 关波
HRPWM_OUTPUT_CLEAR_EXTEVNT0; //Event0 关波
Instance->Common.EECR0 |= HRPWM_EEVSRC_COMP_OUT |
HRPWM_EVENTPOL_HIGH; //PA7 接 VCC 产生 event0 事件,关波
Instance->PWM[3].EEFR1 |= HRPWM_EEVASEL_SOURCE_EEVENT0 ;
Instance->Common.EECR0 |= HRPWM_EECR0_EE3SRC_0 |
HRPWM_EECR0_EE3POL; //PC4 接 GND 产生 event3 事件,关波
Instance->PWM[3].EEFR1 |= HRPWM_EEVASEL_SOURCE_EEVENT3 ;
运行上述代码,通过逻辑分析仪查看 HRPWM 的输出情况。
CMP0 无迟滞:DAC0 写入 1.65V,CMP0 的输入引脚 PA7 电压高于 1.65V 就会关波,低于 1.65V,HRPWM 有波形输出,如下图所示:
图 5.1 CMP0 输入 1.64V
图 5.2 CMP0 输入 1.66V
CMP0 使能 10mV 迟滞:DAC0 写入 1.65V,CMP0 迟滞 10mv,迟滞是作用在下降沿,那当 CMP0 的输入引脚 PA7 电压高于 1.64V 就会关波,低于 1.64V,HRPWM 有波形输出,如下图所示:
图 5.3 CMP0 输入 1.63V
图 5.4 CMP0 输入 1.64V
CMP3 无迟滞:DAC3 写入 3V,CMP3 的输入引脚 PC4 电压高于 3V 就会关波,低于 3V,HRPWM 有波形输出,如下图所示:
图 5.5 CMP3 输入 2.9V
图 5.6 CMP3 输入 3.1V
CMP3 使能 20mV 迟滞:DAC3 写入 3V,CMP3 迟滞 20mv,迟滞是作用在下降沿,那当 CMP3 的输入引脚 PC4 电压高于 2.98V 就会关波,低于 2.98V,HRPWM 有波形输出,如下图所示:
图 5.7 CMP3 输入 2.9V
图 5.8 CMP3 输入 2.98V